commit 81aba0c9b74f5111724ca7dfae116aecaa5cb8af Author: jia <1451658316@qq.com> Date: Sat Nov 18 10:47:46 2023 +0800 first commit diff --git a/api/config.js b/api/config.js new file mode 100644 index 0000000..93fcd12 --- /dev/null +++ b/api/config.js @@ -0,0 +1,6 @@ +import oahttp from "@/utils/oahttp.js"; + +/** + * 获取配置信息 + */ +export const getConfig = (data) => oahttp.get('/index/config', data, { noAuth:true }, true) diff --git a/api/file.js b/api/file.js new file mode 100644 index 0000000..61c335e --- /dev/null +++ b/api/file.js @@ -0,0 +1,50 @@ +import { + HTTP_REQUEST_URL_THREE, + HEADER, + TOKENNAME, +} from '@/config/app'; +import { + Toast +} from '../libs/uniApi'; +// import { checkLogin } from '../libs/login'; +import store from '../store'; + +function toLogin() { + store.commit("LOGOUT"); + uni.showToast({ + title: '璇风櫥褰', + icon: 'none', + duration: 1000 + }); +} + +function upLoad(url, data) { + let Url = HTTP_REQUEST_URL_THREE, + header = {} + if (store.state.app.token) header[TOKENNAME] = store.state.app.token; + return new Promise((reslove, reject) => { + uni.uploadFile({ + url: Url + '/api' + url, + filePath: data.filePath, + name: data.name, + success: (uploadFileRes) => { + uploadFileRes.data = JSON.parse(uploadFileRes.data) + if (uploadFileRes.data.code == 1) reslove(uploadFileRes.data) + else Toast('缃戠粶閿欒') + }, + fail: (err) => { + Toast('缃戠粶閿欒') + } + }) + }); +} + +export const upLoadImage = (data) => { + return upLoad('/upload/image', data) +} + +export const VIDEO_URL = HTTP_REQUEST_URL_THREE + '/api/upload/video' +export const FILE_URL = HTTP_REQUEST_URL_THREE + '/api/home_index/upload' +// im鏂囦欢涓婁紶 +// export const VIDEO_URL_IM = HTTP_REQUEST_URL_THREE + '/api/upload/video' +export const FILE_URL_IM = HTTP_REQUEST_URL_THREE + '/common/im/sendFileMsg' \ No newline at end of file diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..6c38943 --- /dev/null +++ b/api/index.js @@ -0,0 +1,28 @@ +// let Token = localStorage.getItem("token") +let Token = uni.getStorageSync("token") +let request = (METHOD, URL, DATA) => { + return new Promise((reslove, reject) => { + uni.request({ + url: 'https://ceshi-im.lihaink.cn/' + URL, + method: METHOD, + data: { + ...DATA + }, + header: { + 'content-type': 'application/json', + "Authorization": Token || "" + + }, + success: function(res) { + reslove(res) + }, + fail: function(err) { + reject(err) + }, + + }); + }) +} + + +export default request; \ No newline at end of file diff --git a/api/oa.js b/api/oa.js new file mode 100644 index 0000000..353886b --- /dev/null +++ b/api/oa.js @@ -0,0 +1,12 @@ +import oahttp from "@/utils/oahttp.js"; + + +export const lists = (data) => oahttp.get('/logistic/lists', data) +//璇︽儏 +export const detail = (data) => oahttp.get('/logistic/detail', data) +//鎻愬彇鍟嗗搧 +export const takeGoods = (data) => oahttp.post('/logistic/takeGoods', data) + +//瀹屾垚閰嶉 +export const delivery = (data) => oahttp.post('/logistic/delivery', data) + diff --git a/api/oaApi.js b/api/oaApi.js new file mode 100644 index 0000000..ca79bff --- /dev/null +++ b/api/oaApi.js @@ -0,0 +1,60 @@ +import oahttp from "@/utils/oahttp.js"; + +/** + * 鑾峰彇浠e姙浜嬮」 宸插鐞嗕簨椤 + */ +export const getIndexListAPI = (data) => oahttp.get('/index/list', data) + +/** + * 鑾峰彇浠诲姟鍒楄〃 + */ +export const getTaskListAPI = (data) => oahttp.get('/task/list', data) + +/** + * 鑾峰彇鎴戠殑浠诲姟 + */ +export const getMyTaskListAPI = (data) => oahttp.get('/task/datalist', data) + +/** + * 鑾峰彇浠诲姟璇︽儏 + */ +export const getTaskDetailsAPI = (data) => oahttp.get('/task/read', data) +/** + * 鎴戝彂璧风殑瀹℃壒 + */ +export const getApproveMyListAPI = (data) => oahttp.get('/approve/my_list', data) +/** + * 鎴戝鎵圭殑 + */ +export const getHandleListAPI = (data) => oahttp.get('/approve/handle_list', data) +/** + * 鎶勯佺粰鎴戠殑 + */ +export const getCopyOfMyListAPI = (data) => oahttp.get('/approve/copy', data) +/* + * 寰呭姙浜嬮」 + */ +export const getApproveListAPI = (data) => oahttp.get('/approve/list', data) +/** + * 鑾峰彇涓汉涓績鏁版嵁 + */ +export const getUserIndexAPI = (data) => oahttp.get('/user/index', data) +/** + * 淇濆瓨涓汉淇℃伅淇敼 + */ +export const PostUserPerSubmitAPI = (data) => oahttp.post('/home_index/edit_personal', data) +/** + * 鑾峰彇瀹℃牳娴佺▼ + * index/get_flow?type=1 + */ +export const getFlowAPI = (data) => oahttp.get('/index/get_flow', data) +/** + * 鑾峰彇瀹℃牳姝ラ浜哄憳 + */ +export const getFlowUsersAPI = (data) => oahttp.get('/index/get_flow_users', data, { noVerify: true }) +/** 鑾峰彇閮ㄩ棬鏍戝舰鑺傜偣鍒楄〃 */ +export const getDepartmentTreeAPI = () => oahttp.get('/index/get_department_tree') +/** 鑾峰彇鏌愪釜閮ㄩ棬鐨勫憳宸 */ +export const getEmployeeAPI = (data) => oahttp.get('/index/get_employee', data) +/** 鍙戣捣瀹℃壒 */ +export const PostApproveAddAPI = (data) => oahttp.post('/approve/add', data) diff --git a/api/oaUser.js b/api/oaUser.js new file mode 100644 index 0000000..3ac68de --- /dev/null +++ b/api/oaUser.js @@ -0,0 +1,27 @@ +import oahttp from "@/utils/oahttp.js"; + +/** + * 鐧诲綍 + */ +export const loginAccount = (data, onReLogin = false) => oahttp.post('/login/login', data, { noAuth: true, onReLogin: onReLogin }) + +/** + * cesi + */ +export const test = (data) => oahttp.post('/index/config', data, { noAuth: true }) + +/** + * 涓汉涓績 + */ +export const userCenter = (data) => oahttp.get('/user/center', data) + +/** + * 涓汉淇℃伅 + */ +export const userInfo = (data) => oahttp.get('/home_index/userinfo', data) + +/** + * 淇敼瀵嗙爜 + */ +export const changePassword = (data) => oahttp.post('/home_index/edit_password', data) + diff --git a/api/pubic.js b/api/pubic.js new file mode 100644 index 0000000..4533f7f --- /dev/null +++ b/api/pubic.js @@ -0,0 +1,17 @@ +import request from '@/utils/request.js' +export function commonAuth(data) { + return request.post( + "auth", data, { + noAuth: true + } + ); +} +/** + * 灏忕▼搴忕敤鎴风櫥褰 + * @param data object 灏忕▼搴忕敤鎴风櫥闄嗕俊鎭 + */ +export function login(data) { + return request.post("auth/mp", data, { + noAuth: true + }); +} diff --git a/api/upload.js b/api/upload.js new file mode 100644 index 0000000..dc41137 --- /dev/null +++ b/api/upload.js @@ -0,0 +1,65 @@ +// import base from "@/config/baseUrl"; +// let baseUrl = 'https://ceshi.excellentkk.cn/api'; +import store from '../store'; +import { HTTP_REQUEST_URL_TWO, HTTP_REQUEST_URL_THREE, HEADER } from '@/config/app'; +let header = HEADER; + if (store.state.app.token){ + header.token = store.state.app.token; + } +function uploads(src, type) { + return new Promise((resolve, reject) => { + // console.log('涓婁紶', type === 'img' ? '鍥剧墖' : '瑙嗛', '锛', src) + let a = uni.uploadFile({ + // url: base.baseUrl + '/upload?token=', + url: HTTP_REQUEST_URL_TWO + '/api' + '/upload?token=', + filePath: src, + name: 'file', + success: (res) => { + let data = JSON.parse(res.data) + if (data.code != 1) { + uni.$u.toast(data.msg) + return false + } else { + resolve(data.data.url) // 杩斿洖绾夸笂鍦板潃 + } + }, + fail: (err) => { + reject(err) + console.log('upload-涓婁紶澶辫触', err) + } + }); + }) +} + +function oaUploads(src, type) { + return new Promise((resolve, reject) => { + // console.log('涓婁紶', type === 'img' ? '鍥剧墖' : '瑙嗛', '锛', src) + + let a = uni.uploadFile({ + url: HTTP_REQUEST_URL_THREE + '/api/common/upload', + filePath: src, + name: 'file', + header: header, + success: (res) => { + + let data = JSON.parse(res.data) + if (data.code == 0) { + resolve(data.data) // 杩斿洖绾夸笂鍦板潃 + } else { + uni.$u.toast(data.msg) + return false + } + }, + fail: (err) => { + reject(err) + console.log('upload-涓婁紶澶辫触', err) + } + }); + }) +} + + +export { + uploads, + oaUploads +} diff --git a/api/user.js b/api/user.js new file mode 100644 index 0000000..fca43c1 --- /dev/null +++ b/api/user.js @@ -0,0 +1,743 @@ +import request from "@/utils/request.js"; +import Cache from '@/utils/cache' +import http from "@/utils/http.js"; +/** + * 鑾峰彇鍚庡彴璐﹀彿瀵嗙爜 + */ +export const getBackstageAPI = (data) => http.get('/User/get_backstage', data) +// 鑾峰彇宸插綍鍏ュ叕鍙 +export const getEnterListMsgAPI = (data) => http.get('/enter/list', data) +// 褰曞叆鍏徃 +export const postEntercompanyAPI = (data) => request.post('entercompany', data) +// 鑾峰彇鍦板潃 +export const getSiteAPI = (data) => http.get('/User/index', data) +export const getShimingAPI = (data) => http.get('/User/get_shiming', data) +export const postRealnameAPI = (data) => http.post('/User/realname', data) +/** + * 鑾峰彇鐢ㄦ埛淇℃伅 + * + */ +export function getUserInfo() { + return request.get('user'); +} +/** + * 澶村儚 + * + */ +export function editAvatar(data) { + return request.post('user/change/info', data); +} + +// 淇敼鏄电О +export function updateInfo(data) { + return request.post('user/change/avatar', data); +} +/** + * h5鐢ㄦ埛鐧诲綍 + * @param data object 鐢ㄦ埛璐﹀彿瀵嗙爜 + */ +export function loginH5(data) { + return request.post("auth/login", data, { + noAuth: true + }); +} +/** + * h5鐢ㄦ埛鎵嬫満鍙风櫥褰 + * @param data object 鐢ㄦ埛鎵嬫満鍙 涔熷彧鑳 + */ +export function loginMobile(data) { + return request.post("auth/smslogin", data, { + noAuth: true + }); +} +/** + * h5鐢ㄦ埛鎵嬫満鍙风櫥褰 + * @param data object 鐢ㄦ埛鎵嬫満鍙 涔熷彧鑳 + */ +export function loginMpPhone(data) { + return request.post("auth/mp_phone", data, { + noAuth: true + }); +} +/** + * 楠岃瘉鐮乲ey + */ +export function getCodeApi() { + return request.get("verify_code", {}, { + noAuth: true + }); +} + +/** + * h5鐢ㄦ埛鍙戦侀獙璇佺爜 + * @param data object 鐢ㄦ埛鎵嬫満鍙 + */ +export function registerVerify(data) { + return request.post("auth/verify", data, { + noAuth: true + }); +} +/** + * h5鐢ㄦ埛鎵嬫満鍙锋敞鍐 + * @param data object 鐢ㄦ埛鎵嬫満鍙 楠岃瘉鐮 瀵嗙爜 + */ +export function register(data) { + return request.post("auth/register", data, { + noAuth: true + }); +} + +/** + * 鐢ㄦ埛鎵嬫満鍙蜂慨鏀瑰瘑鐮 + * @param data object 鐢ㄦ埛鎵嬫満鍙 楠岃瘉鐮 瀵嗙爜 + */ +export function registerReset(data) { + return request.post("/register/reset", data, { + noAuth: true + }); +} +/** + * 鐢ㄦ埛鎵嬫満鍙峰繕璁板瘑鐮 + */ +export function registerForget(data) { + return request.post("user/change_pwd", data, { + noAuth: true + }); +} +/** + * 鑾峰彇鐢ㄦ埛涓績鑿滃崟 + * + */ +export function getMenuList() { + return request.get("common/menus", {}, { + noAuth: true + }); +} +/* + * 绛惧埌鐢ㄦ埛淇℃伅 + * */ +export function getSignUser() { + return request.get("user/sign/info"); +} + +/** + * 鑾峰彇绛惧埌閰嶇疆 + * + */ +export function getSignConfig() { + return request.get('sign/config') +} +/** + * 鑾峰彇绛惧埌鍒楄〃 + * @param object data + */ +export function getSignList(data) { + return request.get('user/sign/lst', data); +} +/** + * 鐢ㄦ埛绛惧埌 + */ +export function setSignIntegral() { + return request.post('user/sign/create') +} + +/** + * 绛惧埌鍒楄〃(骞存湀) + * @param object data + * + */ +export function getSignMonthList(data) { + return request.get('user/sign/month', data) +} +/** + * 娲诲姩鐘舵 + * + */ +export function userActivity() { + return request.get('user/activity'); +} +/* + * 璧勯噾鏄庣粏锛坱ypes|0=鍏ㄩ儴,1=娑堣垂,2=鍏呭,3=杩斾剑锛 + * */ +export function getCommissionInfo(q, types) { + return request.get("user/bill", q); +} +/* + * 鎻愮幇鍒楄〃 + * */ +export function extractLst(data) { + return request.get("user/extract/lst", data); +} +/* + * 绉垎璁板綍 + * */ +export function getIntegralList(data) { + return request.get("user/integral/lst", data); +} + +/** + * 鑾峰彇鍒嗛攢娴锋姤鍥剧墖 + * + */ +export function spreadBanner() { + //#ifdef H5 + return request.get('user/spread_image', { + type: 'wechat' + }); + //#endif + //#ifdef MP + return request.get('user/spread_image', { + type: 'routine' + }); + //#endif +} +/** + * + * 鑾峰彇鎺ㄥ箍鐢ㄦ埛涓绾у拰浜岀骇 + * @param object data + */ +export function spreadPeople(data) { + return request.get('user/spread_list', data); +} +/** + * + * 鎺ㄥ箍浣i噾/鎻愮幇鎬诲拰 + * @param int type + */ +export function spreadCount(type) { + return request.get('spread/count/' + type); +} +/* + * 鎺ㄥ箍鏁版嵁 + * */ +export function getSpreadInfo() { + return request.get("/commission"); +} + +/** + * + * 鎺ㄥ箍璁㈠崟 + * @param object data + */ +export function spreadOrder(data) { + return request.get('user/spread_order', data); +} + +/* + * 鑾峰彇鎺ㄥ箍浜烘帓琛 + * */ +export function getRankList(data) { + return request.get("user/spread_top", data); +} + +/* + * 鑾峰彇浣i噾鎺掑悕 + * */ +export function getBrokerageRank(q) { + return request.get("user/brokerage_top", q); +} + +/** + * 鎻愮幇鐢宠 + * @param object data + */ +export function extractCash(data) { + return request.post('user/extract/create', data) +} + +/** + * 鎻愮幇閾惰/鎻愮幇鏈浣庨噾棰 + * + */ +export function extractBank() { + return request.get('user/extract/banklst'); +} + +/** + * 浼氬憳绛夌骇鍒楄〃 + * + */ +export function userLevelGrade() { + return request.get('user/level/grade'); +} + +/** + * 鑾峰彇鏌愪釜绛夌骇浠诲姟 + * @param int id 浠诲姟id + */ +export function userLevelTask(id) { + return request.get('user/level/task/' + id); +} + +/** + * 妫鏌ョ敤鎴锋槸鍚﹀彲浠ユ垚涓轰細鍛 + * + */ +export function userLevelDetection() { + return request.get('user/level/detection'); +} + +/** + * + * 鍦板潃鍒楄〃 + * @param object data + */ +export function getAddressList(data) { + return request.get('user/address/lst', data); +} + +/** + * 璁剧疆榛樿鍦板潃 + * @param int id + */ +export function setAddressDefault(id) { + return request.post('user/address/update/' + id) +} + +/** + * 淇敼 娣诲姞鍦板潃 + * @param object data + */ +export function editAddress(data) { + return request.post('user/address/create', data); +} + +/** + * 鍒犻櫎鍦板潃 + * @param int id + * + */ +export function delAddress(id) { + return request.post('user/address/delete/' + id) +} + +/** + * 鑾峰彇鍗曚釜鍦板潃 + * @param int id + */ +export function getAddressDetail(id) { + return request.get('user/address/detail/' + id); +} + +/** + * 淇敼鐢ㄦ埛淇℃伅 + * @param object + */ +export function userEdit(data) { + return request.post('user/edit', data); +} + +/* + * 閫鍑虹櫥褰 + * */ +export function getLogout() { + return request.post("logout"); +} + +/** + * 浣i噾杞叆 + * + */ +export function rechargeBrokerage(data) { + return request.post('user/recharge/brokerage', data) +} + +/** + * 灏忕▼搴忓厖鍊 + * + */ +export function rechargeRoutine(data) { + return request.post('recharge/routine', data) +} +/* + * 鍏紬鍙峰厖鍊 + * */ +export function rechargeWechat(data) { + return request.post("user/recharge", data); +} +/** + * 鑾峰彇榛樿鍦板潃 + * + */ +export function getAddressDefault() { + return request.get('address/default'); +} + +/** + * 鍏呭奸噾棰濋夋嫨 + */ +export function getRechargeApi() { + return request.get("common/recharge_quota"); +} + +/** + * 鐧婚檰璁板綍 + */ +export function setVisit(data) { + return request.post('user/set_visit', { + ...data + }, { + noAuth: true + }); +} + +/** + * 瀹㈡湇鍒楄〃 + */ +export function serviceList(data) { + return request.get("service/list", data); +} + +/** + * 瀹㈡湇鍒楄〃 + */ +export function serviceLogin(key, data) { + return request.post("service/scan_login/" + key, data); +} + +/** + * 瀹㈡湇鑾峰彇瀹㈡埛鍒楄〃 + */ +export function serviceUserList(mer_id, data) { + return request.get("service/user_list/" + mer_id, data); +} + +/** + * 鐢ㄦ埛鑾峰彇鑱婂ぉ璁板綍璇︽儏 + */ +export function getChatRecord(to_uid, data) { + return request.get("service/history/" + to_uid, data); +} + +/** + * 瀹㈡湇鑾峰彇鑱婂ぉ璁板綍璇︽儏 + */ +export function getMerHistory(userid, mer_id, data) { + return request.get("service/mer_history/" + mer_id + '/' + userid, data); +} + +/** + * 闈欓粯缁戝畾鎺ㄥ箍浜 + * @param {Object} puid + */ +export function spread(puid) { + Cache.set("spread", puid || 0); + return request.post("user/spread", { + spread_spid: puid + }); +} + +/** + * 鍙嶉绫诲瀷 + */ +export function feedbackType() { + return request.get("common/feedback_type"); +} + +/** + * 鎻愪氦鍙嶉 + */ +export function feedback(data) { + return request.post("user/feedback", { + ...data + }); +} + +/** + * 鍙嶉鍒楄〃 + */ +export function feedbackList(data) { + return request.get("user/feedback/list", data); +} + +/** + * 鍙嶉鍒楄〃 + */ +export function feedbackDetail(id) { + return request.get("user/feedback/detail/" + id); +} + +/** + * 娴忚璁板綍 + */ +export function historyList(data) { + return request.get("user/history", data); +} + +/** + * 鍒犻櫎娴忚璁板綍 + */ +export function historyDelete(id) { + return request.post("user/history/delete/" + id); +} +/** + * 鎵归噺鍒犻櫎娴忚璁板綍 + */ +export function historyBatchDelete(data) { + return request.post("user/history/batch/delete", data); +} +/** + * 鎵归噺鏀惰棌娴忚璁板綍 + */ +export function historyBatchCollect(data) { + return request.post("user/relation/batch/create", data); +} +/** + * 浣i噾璁板綍 + */ +export function brokerage_list(data) { + return request.get("user/brokerage_list", data); +} + +/** + * 浣i噾鏁版嵁 + */ +export function spreadInfo(data) { + return request.get("user/spread_info", data); +} + +// 鍥剧墖楠岃瘉鐮 +export function getCaptcha() { + return request.get('captcha', {}, { + noAuth: true + }); +} + +// 鐢ㄦ埛璐︽埛鍒楄〃 +export function userAcc() { + return request.get('user/account', {}, { + noAuth: true + }); +} +// 鍒涘缓鍙戠エ +export function invoiceSave(data) { + return request.post('user/receipt/create', data); +} +// 缂栬緫鍙戠エ +export function invoiceUpdate(id, data) { + return request.post('user/receipt/update/' + id, data); +} +// 鑾峰彇榛樿鍙戠エ +export function invoiceDefault(id) { + return request.post('user/receipt/is_default/' + id); +} +// 鍙戠エ鎶ご--鍒楄〃 +export function invoice(data) { + return request.get('user/receipt/lst', data); +} +// 鍙戠エ鎶ご--鍒犻櫎 +export function invoiceDelete(id) { + return request.post('user/receipt/delete/' + id); +} +// 鍙戠エ--璇︽儏 +export function invoiceDetail(id) { + return request.get('user/receipt/detail/' + id); +} + +/** + * 鏂扮増鍒嗕韩娴锋姤淇℃伅鑾峰彇 + * + */ +export function spreadMsg(data) { + return request.get('user/v2/spread_image', data); +} + +/** + * 鍥剧墖閾炬帴杞琤ase64 + * + */ +export function imgToBase(data) { + return request.post('common/base64', data); +} +/** + * 鑾峰彇鍗忚 + * + */ +export function getAgreementApi(key) { + return request.get('agreement/' + key, {}, { + noAuth: true + }); +} +/** + * 鑾峰彇鍗忚 + * + */ +export function getIntegralInfo() { + return request.get('user/integral/info'); +} +/** + * 鑾峰彇搴楅摵鍒楄〃 + * + */ +export function getStoreList(data) { + return request.get('user/services', data); +} + +/* + 鑾峰彇浣i噾璇存槑 +*/ + +export function commissionDescription() { + return request.get('agreement/sys_extension_agree') +} +/* + 鑾峰彇鐢ㄦ埛鍒嗛攢绛夌骇淇℃伅 +*/ + +export function getBrokerageInfo() { + return request.get('user/brokerage/info') +} +/* + 鑾峰彇鐢ㄦ埛鍒嗛攢绛夌骇琛ㄦ牸鏁版嵁 +*/ + +export function getBrokerageGrade() { + return request.get('user/brokerage/all') +} +/* + 鍒嗛攢鍛樺崌绾ф彁閱 +*/ + +export function brokerageNotice(data) { + return request.get(`user/brokerage/notice`, data) +} +/* + 鍙d护瑙f瀽 +*/ + +export function pwdResolution(data) { + return request.get(`command/copy?key=${data}`) +} +/* + 鑾峰彇浣i噾璇存槑 +*/ + +export function getInstructions(key) { + return request.get(`agreement/${key}`) +} +/* + 浼氬憳淇℃伅 +*/ + +export function memberInfo() { + return request.get('user/member/info') +} +/** + * 鎴愰暱鍊艰褰 + * @param object data + * + */ +export function growthValueRecord(data) { + return request.get('user/member/log', data) +} + +/** + * 鍗忚瑙勫垯鍒楄〃 + * @param object data + * + */ +export function cacheLst() { + return request.get('agreement_lst', {}, { + noAuth: true + }) +} + +/** + * 鍗忚瑙勫垯鍒楄〃瀵瑰簲鐨勬暟鎹 + * @param object data + * + */ +export function cacheInfo(key) { + return request.get(`agreement/${key}`, {}, { + noAuth: true + }) +} +/** + * 娉ㄩ攢璐︽埛 + * @param object data + * + */ +export function userOut(data) { + return request.post(`user/cancel`, data) +} +/** + * 鑾峰彇鑱婂ぉ鐢ㄦ埛淇℃伅 + * @param object data + * + */ +export function serviceUser(merId, uid) { + return request.get(`service/user/${merId}/${uid}`) +} +/** + * 淇濆瓨鑱婂ぉ鐢ㄦ埛澶囨敞 + * @param object data + * + */ +export function serviceSaveMark(merId, uid, mark) { + return request.post(`service/mark/${merId}/${uid}`, { + mark + }) +} +/** + * 鑾峰彇浼氬憳鍗$被鍨 + * @param object data + * + */ +export function memberCard() { + return request.get(`svip/pay_lst`) +} +/** + * 寮閫氫粯璐逛細鍛--鏀粯 + * @param object data + * + */ +export function memberCardCreate(id, data) { + return request.post(`svip/pay/${id}`, data) +} +/** + * 浠樿垂浼氬憳鏉冪泭 + * @param object data + * + */ +export function memberEquity() { + return request.get(`svip/user_info`, {}, { + noAuth: true + }) +} +/** + * 浠樿垂浼氬憳浼樻儬鍒 + * @param object data + * + */ +export function memberCouponLst() { + return request.get(`svip/coupon_lst`, {}, { + noAuth: true + }) +} +/** + * 浠樿垂浼氬憳浼樻儬鍒--棰嗗彇 + * @param object data + * + */ +export function receiveMemberCoupon(id) { + return request.post(`svip/coupon_receive/${id}`) +} +/** + * 浠樿垂浼氬憳--浼氬憳鍟嗗搧 + * @param object data + * + */ +export function groomList(data) { + return request.get(`svip/product_lst`, data, { + noAuth: true + }) +} + +/** + * 瀹㈡湇鑱婂ぉ--鎾ゅ洖娑堟伅 + * @param object data + * + */ +export function chatReverstApi(id) { + return request.post(`service/recall/${id}`) +} diff --git a/components/a-map-walking.vue b/components/a-map-walking.vue new file mode 100644 index 0000000..25c3052 --- /dev/null +++ b/components/a-map-walking.vue @@ -0,0 +1,86 @@ + + + + + + + + \ No newline at end of file diff --git a/components/gb-popup/gb-popup.vue b/components/gb-popup/gb-popup.vue new file mode 100644 index 0000000..04701d5 --- /dev/null +++ b/components/gb-popup/gb-popup.vue @@ -0,0 +1,169 @@ + + + + + {{title}} + + + + + {{nName}} + + + + + {{lName}} + + + {{rName}} + + + + + + + + + + \ No newline at end of file diff --git a/components/index/detaila.vue b/components/index/detaila.vue new file mode 100644 index 0000000..22a5c6c --- /dev/null +++ b/components/index/detaila.vue @@ -0,0 +1,818 @@ + + + + + + + + + + 璁㈠崟淇℃伅 + + + + + + + + + + + + + + 璧风偣锛歿{lisobj.logistics.shop_address}} + + + + + 缁堢偣锛歿{lisobj.logistics.receiver_address}} + + + + + + + + + + + + 鎵爜鍙栬揣 + + + + + + + + + + 璁㈠崟鍙蜂俊鎭細 + + + 璁㈠崟缂栧彿锛歿{lisobj.logistics.order_sn}} + + + 鍟嗘埛鍚嶇О锛歿{lisobj.logistics.shop_name}} + + + + 搴楅摵鍦板潃锛歿{lisobj.logistics.shop_address}} + + + + 鑱旂郴鐢佃瘽锛歿{lisobj.logistics.shop_phone }} + + + + + + + + 鐗╂祦淇℃伅: + 鐢ㄦ埛鍚嶇О:{{lisobj.logistics.receiver_name}} + 鑱旂郴鏂瑰紡:{{lisobj.logistics.receiver_phone}} + 鑱旂郴鍦板潃:{{lisobj.logistics.receiver_address}} + 涓嬪崟鏃堕棿:{{lisobj.logistics.create_time}} + + + + + + + + + + + + + + 鍟嗗搧淇℃伅锛 + + + + + + + + + + + + + {{ items.goods_name }} + + + X{{ items.product_num}} + + + + + + + + + + 璇疯缁嗘牳瀵硅鍗曚俊鎭 鍏辫锛歿{ lisobj.product.length }}浠 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/index/detailb.vue b/components/index/detailb.vue new file mode 100644 index 0000000..316861a --- /dev/null +++ b/components/index/detailb.vue @@ -0,0 +1,720 @@ + + + + + + + + + 璁㈠崟淇℃伅 + + + + + + + {{lisobj.logistics.order_sn}} + + + + + + + + + + 鏀惰揣璇︽儏锛 + + + 鐢ㄦ埛鍚嶇О锛 {{ + lisobj.logistics.receiver_name + }} + + + 鑱旂郴鏂瑰紡锛 {{ + lisobj.logistics.receiver_phone + + }} + + + 鑱旂郴鍦板潃锛 {{ + lisobj.logistics.receiver_address + + }} + + + + + + + + + + + 鐗╂祦淇℃伅锛 + + + + + + {{i+1}} + + + + + + + + + + + + {{item.content}} + + + {{item.create_time}} + + + + + + + + + + + + + + + + + + 鍙栬揣鏃堕棿锛歿{lisobj.logistics.qh_time}} + + + + 鍙栬揣璇︽儏锛 + + + 鐢ㄦ埛鍚嶇О锛歿{lisobj.logistics.shop_name }} + + + 鑱旂郴鏂瑰紡锛歿{lisobj.logistics.shop_phone }} + + + 鑱旂郴鍦板潃锛歿{lisobj.logistics.shop_address }} + + + + + + + + + 鍟嗗搧淇℃伅锛 + {{ lisobj.product.length }}浠 + + + + + + + {{ items.goods_name }} + + X{{ items.product_num}} + + + + + + + + + + + + + 璐х墿閫佽揪 + + + + + + + + + + + + + + 楠戞墜瀹屾垚鍙栬揣 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/index/detailc.vue b/components/index/detailc.vue new file mode 100644 index 0000000..054b37a --- /dev/null +++ b/components/index/detailc.vue @@ -0,0 +1,471 @@ + + + + + + + + + 璁㈠崟淇℃伅 + + + + + + + + {{lisobj.logistics.order_sn}} + + + + + 鏀惰揣鏃堕棿锛歿{lisobj.logistics.qh_time}} + + + + 鏀惰揣璇︽儏锛 + + + + 鐢ㄦ埛鍚嶇О锛 {{ + lisobj.logistics.receiver_name + }} + + + 鑱旂郴鏂瑰紡锛 {{ + lisobj.logistics.receiver_phone + + }} + + + 鑱旂郴鍦板潃锛 {{ + lisobj.logistics.receiver_address + + }} + + + + + + + + + 鍙栬揣璇︽儏锛 + + + + + + 搴楅摵鍚嶇О锛歿{lisobj.logistics.shop_name }} + + + 搴椾富鍚嶇О锛歿{lisobj.logistics.shop_user }} + + + 鑱旂郴鏂瑰紡锛歿{lisobj.logistics.shop_phone }} + + + 鑱旂郴鍦板潃锛歿{lisobj.logistics.shop_address }} + + + + + + + + + + 鐗╂祦淇℃伅锛 + + + + + + {{i+1}} + + + + + + + + + + + + {{item.content}} + + + {{item.create_time}} + + + + + + + + + + 鍟嗗搧淇℃伅锛 + {{ lisobj.product.length }}浠 + + + + + {{ items.goods_name }} + + X{{ items.product_num}} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/index/index.vue b/components/index/index.vue new file mode 100644 index 0000000..f254efa --- /dev/null +++ b/components/index/index.vue @@ -0,0 +1,481 @@ + + + + + + + + 鎼滅储 + + + + + + + + + 鍟嗘埛鍚嶇О锛歿{item.shop_name}} + + 搴椾富濮撳悕锛歿{item.shop_user}} + 鑱旂郴鐢佃瘽锛歿{item.shop_phone}} + 鍟嗗鍦板潃锛歿{item.shop_address}} + 璁㈠崟缂栧彿锛歿{item.order_sn}} + + + + + + + + + 鍟嗗搧淇℃伅锛 + {{ item.products.length }}浠 + + + + + + + + + + + + + {{ items.goods_name }} + + + X{{ items.product_num}} + + + + + + + + + + + + + + 鎵爜鍙栬揣 + + + + + + + + + + + + + 鏆傛棤璁㈠崟淇℃伅 + + + + + + + + + 楠戞墜瀹屾垚鍙栬揣 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/index/index1.vue b/components/index/index1.vue new file mode 100644 index 0000000..06b0430 --- /dev/null +++ b/components/index/index1.vue @@ -0,0 +1,509 @@ + + + + + + + 鎼滅储 + + + + + + 鏀惰揣浜哄悕绉帮細{{item.receiver_name}} + + 鑱旂郴鐢佃瘽锛歿{item.receiver_phone}} + 鍟嗗鍦板潃锛歿{item.receiver_address}} + 璁㈠崟缂栧彿锛歿{item.order_sn}} + + + + + + + + 鍟嗗搧淇℃伅锛 + {{ item.products.length }}浠 + + + + + + + + + + + + {{ items.goods_name }} + + + X{{ items.product_num}} + + + + + + + + + + 璐х墿閫佽揪 + + + + + + + + + + + + + + 鏆傛棤璁㈠崟淇℃伅 + + + + + + + + + + + + + + + + 鐢ㄦ埛瀹屾垚鏀惰揣 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/index/indexg.vue b/components/index/indexg.vue new file mode 100644 index 0000000..fe3b326 --- /dev/null +++ b/components/index/indexg.vue @@ -0,0 +1,448 @@ + + + + + + + 鎼滅储 + + + + + + + + 鏀惰揣浜哄悕绉帮細{{item.receiver_name}} + 宸插彇娑 + + + + 鑱旂郴鐢佃瘽锛歿{item.receiver_phone}} + 鍟嗗鍦板潃锛歿{item.shop_address}} + 璁㈠崟缂栧彿锛歿{item.order_sn}} + + 鍙栬揣鏃堕棿锛歿{item.qh_time}} + + 閫佽揪鏃堕棿锛歿{item.ps_time}} + + + + + + + + + + + 鍟嗗搧淇℃伅锛 + {{ item.products.length }}浠 + + + + + + + + + + + + + + {{ items.goods_name }} + + + X{{ items.product_num}} + + + + + + + + + + 鏌ョ湅璇︽儏 + + + + + + + + + + + + + + 鏆傛棤璁㈠崟淇℃伅 + + + + + + + + + + \ No newline at end of file diff --git a/components/jyf-parser/jyf-parser.vue b/components/jyf-parser/jyf-parser.vue new file mode 100644 index 0000000..6294c26 --- /dev/null +++ b/components/jyf-parser/jyf-parser.vue @@ -0,0 +1,815 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/jyf-parser/libs/CssHandler.js b/components/jyf-parser/libs/CssHandler.js new file mode 100644 index 0000000..f286db3 --- /dev/null +++ b/components/jyf-parser/libs/CssHandler.js @@ -0,0 +1,111 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +/* + 瑙f瀽鍜屽尮閰 Css 鐨勯夋嫨鍣 + github锛歨ttps://github.com/jin-yufeng/Parser + docs锛歨ttps://jin-yufeng.github.io/Parser + author锛欽inYufeng + update锛2020/03/15 +*/ +var cfg = require('./config.js'); +class CssHandler { + constructor(tagStyle) { + var styles = Object.assign({}, cfg.userAgentStyles); + for (var item in tagStyle) + styles[item] = (styles[item] ? styles[item] + ';' : '') + tagStyle[item]; + this.styles = styles; + } + getStyle = data => this.styles = new CssParser(data, this.styles).parse(); + match(name, attrs) { + var tmp, matched = (tmp = this.styles[name]) ? tmp + ';' : ''; + if (attrs.class) { + var items = attrs.class.split(' '); + for (var i = 0, item; item = items[i]; i++) + if (tmp = this.styles['.' + item]) + matched += tmp + ';'; + } + if (tmp = this.styles['#' + attrs.id]) + matched += tmp + ';'; + return matched; + } +} +module.exports = CssHandler; +class CssParser { + constructor(data, init) { + this.data = data; + this.floor = 0; + this.i = 0; + this.list = []; + this.res = init; + this.state = this.Space; + } + parse() { + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + return this.res; + } + section = () => this.data.substring(this.start, this.i); + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + // 鐘舵佹満 + Space(c) { + if (c == '.' || c == '#' || this.isLetter(c)) { + this.start = this.i; + this.state = this.Name; + } else if (c == '/' && this.data[this.i + 1] == '*') + this.Comment(); + else if (!cfg.blankChar[c] && c != ';') + this.state = this.Ignore; + } + Comment() { + this.i = this.data.indexOf('*/', this.i) + 1; + if (!this.i) this.i = this.data.length; + this.state = this.Space; + } + Ignore(c) { + if (c == '{') this.floor++; + else if (c == '}' && !--this.floor) this.state = this.Space; + } + Name(c) { + if (cfg.blankChar[c]) { + this.list.push(this.section()); + this.state = this.NameSpace; + } else if (c == '{') { + this.list.push(this.section()); + this.Content(); + } else if (c == ',') { + this.list.push(this.section()); + this.Comma(); + } else if (!this.isLetter(c) && (c < '0' || c > '9') && c != '-' && c != '_') + this.state = this.Ignore; + } + NameSpace(c) { + if (c == '{') this.Content(); + else if (c == ',') this.Comma(); + else if (!cfg.blankChar[c]) this.state = this.Ignore; + } + Comma() { + while (cfg.blankChar[this.data[++this.i]]); + if (this.data[this.i] == '{') this.Content(); + else { + this.start = this.i--; + this.state = this.Name; + } + } + Content() { + this.start = ++this.i; + if ((this.i = this.data.indexOf('}', this.i)) == -1) this.i = this.data.length; + var content = this.section(); + for (var i = 0, item; item = this.list[i++];) + if (this.res[item]) this.res[item] += ';' + content; + else this.res[item] = content; + this.list = []; + this.state = this.Space; + } +} diff --git a/components/jyf-parser/libs/MpHtmlParser.js b/components/jyf-parser/libs/MpHtmlParser.js new file mode 100644 index 0000000..30c59e9 --- /dev/null +++ b/components/jyf-parser/libs/MpHtmlParser.js @@ -0,0 +1,586 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +/* + 灏 html 瑙f瀽涓洪傜敤浜庡皬绋嬪簭 rich-text 鐨 DOM 缁撴瀯 + github锛歨ttps://github.com/jin-yufeng/Parser + docs锛歨ttps://jin-yufeng.github.io/Parser + author锛欽inYufeng + update锛2020/04/13 +*/ +var cfg = require('./config.js'), + blankChar = cfg.blankChar, + CssHandler = require('./CssHandler.js'), + { + screenWidth, + system + } = wx.getSystemInfoSync(); +// #ifdef MP-BAIDU || MP-ALIPAY || MP-TOUTIAO +var entities = { + lt: '<', + gt: '>', + amp: '&', + quot: '"', + apos: "'", + nbsp: '\xA0', + ensp: '\u2002', + emsp: '\u2003', + ndash: '鈥', + mdash: '鈥', + middot: '路', + lsquo: '鈥', + rsquo: '鈥', + ldquo: '鈥', + rdquo: '鈥', + bull: '鈥', + hellip: '鈥', + permil: '鈥', + copy: '漏', + reg: '庐', + trade: '鈩', + times: '脳', + divide: '梅', + cent: '锟', + pound: '拢', + yen: '楼', + euro: '鈧', + sect: '搂' +}; +// #endif +var emoji; // emoji 琛ヤ竵鍖 https://jin-yufeng.github.io/Parser/#/instructions?id=emoji +class MpHtmlParser { + constructor(data, options = {}) { + this.attrs = {}; + this.compress = options.compress; + this.CssHandler = new CssHandler(options.tagStyle, screenWidth); + this.data = data; + this.domain = options.domain; + this.DOM = []; + this.i = this.start = this.audioNum = this.imgNum = this.videoNum = 0; + this.protocol = this.domain && this.domain.includes('://') ? this.domain.split('://')[0] : ''; + this.state = this.Text; + this.STACK = []; + this.useAnchor = options.useAnchor; + this.xml = options.xml; + } + parse() { + if (emoji) this.data = emoji.parseEmoji(this.data); + for (var c; c = this.data[this.i]; this.i++) + this.state(c); + if (this.state == this.Text) this.setText(); + while (this.STACK.length) this.popNode(this.STACK.pop()); + // #ifdef MP-BAIDU || MP-TOUTIAO + // 灏嗛《灞傛爣绛剧殑涓浜涙牱寮忔彁鍙栧嚭鏉ョ粰 rich-text + (function f(ns) { + for (var i = ns.length, n; n = ns[--i];) { + if (n.type == 'text') continue; + if (!n.c) { + var style = n.attrs.style; + if (style) { + var j, k, res; + if ((j = style.indexOf('display')) != -1) + res = style.substring(j, (k = style.indexOf(';', j)) == -1 ? style.length : k); + if ((j = style.indexOf('float')) != -1) + res += ';' + style.substring(j, (k = style.indexOf(';', j)) == -1 ? style.length : k); + n.attrs.contain = res; + } + } else f(n.children); + } + })(this.DOM); + // #endif + if (this.DOM.length) { + this.DOM[0].PoweredBy = 'Parser'; + if (this.title) this.DOM[0].title = this.title; + } + return this.DOM; + } + // 璁剧疆灞炴 + setAttr() { + var name = this.getName(this.attrName); + if (cfg.trustAttrs[name]) { + if (!this.attrVal) { + if (cfg.boolAttrs[name]) this.attrs[name] = 'T'; + } else if (name == 'src') this.attrs[name] = this.getUrl(this.attrVal.replace(/&/g, '&')); + else this.attrs[name] = this.attrVal; + } + this.attrVal = ''; + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } + } + // 璁剧疆鏂囨湰鑺傜偣 + setText() { + var back, text = this.section(); + if (!text) return; + text = (cfg.onText && cfg.onText(text, () => back = true)) || text; + if (back) { + this.data = this.data.substr(0, this.start) + text + this.data.substr(this.i); + let j = this.start + text.length; + for (this.i = this.start; this.i < j; this.i++) this.state(this.data[this.i]); + return; + } + if (!this.pre) { + // 鍚堝苟绌虹櫧绗 + var tmp = []; + for (let i = text.length, c; c = text[--i];) + if (!blankChar[c] || (!blankChar[tmp[0]] && (c = ' '))) tmp.unshift(c); + text = tmp.join(''); + if (text == ' ') return; + } + // 澶勭悊瀹炰綋 + var siblings = this.siblings(), + i = -1, + j, en; + while (1) { + if ((i = text.indexOf('&', i + 1)) == -1) break; + if ((j = text.indexOf(';', i + 2)) == -1) break; + if (text[i + 1] == '#') { + en = parseInt((text[i + 2] == 'x' ? '0' : '') + text.substring(i + 2, j)); + if (!isNaN(en)) text = text.substr(0, i) + String.fromCharCode(en) + text.substring(j + 1); + } else { + en = text.substring(i + 1, j); + // #ifdef MP-WEIXIN || MP-QQ || APP-PLUS + if (en == 'nbsp') text = text.substr(0, i) + '\xA0' + text.substr(j + 1); // 瑙e喅 澶辨晥 + else if (en != 'lt' && en != 'gt' && en != 'amp' && en != 'ensp' && en != 'emsp' && en != 'quot' && en != 'apos') { + i && siblings.push({ + type: 'text', + text: text.substr(0, i) + }) + siblings.push({ + type: 'text', + text: `&${en};`, + en: 1 + }) + text = text.substr(j + 1); + i = -1; + } + // #endif + // #ifdef MP-BAIDU || MP-ALIPAY || MP-TOUTIAO + if (entities[en]) text = text.substr(0, i) + entities[en] + text.substr(j + 1); + // #endif + } + } + text && siblings.push({ + type: 'text', + text + }) + } + // 璁剧疆鍏冪礌鑺傜偣 + setNode() { + var node = { + name: this.tagName.toLowerCase(), + attrs: this.attrs + }, + close = cfg.selfClosingTags[node.name] || (this.xml && this.data[this.i] == '/'); + this.attrs = {}; + if (!cfg.ignoreTags[node.name]) { + this.matchAttr(node); + if (!close) { + node.children = []; + if (node.name == 'pre' && cfg.highlight) { + this.remove(node); + this.pre = node.pre = true; + } + this.siblings().push(node); + this.STACK.push(node); + } else if (!cfg.filter || cfg.filter(node, this) != false) + this.siblings().push(node); + } else { + if (!close) this.remove(node); + else if (node.name == 'source') { + var parent = this.STACK[this.STACK.length - 1], + attrs = node.attrs; + if (parent && attrs.src) + if (parent.name == 'video' || parent.name == 'audio') + parent.attrs.source.push(attrs.src); + else { + var i, media = attrs.media; + if (parent.name == 'picture' && !parent.attrs.src && !(attrs.src.indexOf('.webp') && system.includes('iOS')) && + (!media || (media.includes('px') && + (((i = media.indexOf('min-width')) != -1 && (i = media.indexOf(':', i + 8)) != -1 && screenWidth > parseInt( + media.substr(i + 1))) || + ((i = media.indexOf('max-width')) != -1 && (i = media.indexOf(':', i + 8)) != -1 && screenWidth < parseInt( + media.substr(i + 1))))))) + parent.attrs.src = attrs.src; + } + } else if (node.name == 'base' && !this.domain) this.domain = node.attrs.href; + } + if (this.data[this.i] == '/') this.i++; + this.start = this.i + 1; + this.state = this.Text; + } + // 绉婚櫎鏍囩 + remove(node) { + var name = node.name, + j = this.i; + while (1) { + if ((this.i = this.data.indexOf('', this.i + 1)) == -1) { + if (name == 'pre' || name == 'svg') this.i = j; + else this.i = this.data.length; + return; + } + this.start = (this.i += 2); + while (!blankChar[this.data[this.i]] && !this.isClose()) this.i++; + if (this.getName(this.section()) == name) { + // 浠g爜鍧楅珮浜 + if (name == 'pre') { + this.data = this.data.substr(0, j + 1) + cfg.highlight(this.data.substring(j + 1, this.i - 5), node.attrs) + + this.data.substr(this.i - 5); + return this.i = j; + } else if (name == 'style') + this.CssHandler.getStyle(this.data.substring(j + 1, this.i - 7)); + else if (name == 'title') + this.title = this.data.substring(j + 1, this.i - 7); + if ((this.i = this.data.indexOf('>', this.i)) == -1) this.i = this.data.length; + // 澶勭悊 svg + if (name == 'svg') { + var src = this.data.substring(j, this.i + 1); + if (!node.attrs.xmlns) src = ' xmlns="http://www.w3.org/2000/svg"' + src; + var i = j; + while (this.data[j] != '<') j--; + src = this.data.substring(j, i) + src; + var parent = this.STACK[this.STACK.length - 1]; + if (node.attrs.width == '100%' && parent && (parent.attrs.style || '').includes('inline')) + parent.attrs.style = 'width:300px;max-width:100%;' + parent.attrs.style; + this.siblings().push({ + name: 'img', + attrs: { + src: 'data:image/svg+xml;utf8,' + src.replace(/#/g, '%23'), + ignore: 'T' + } + }) + } + return; + } + } + } + // 澶勭悊灞炴 + matchAttr(node) { + var attrs = node.attrs, + style = this.CssHandler.match(node.name, attrs, node) + (attrs.style || ''), + styleObj = {}; + if (attrs.id) { + if (this.compress & 1) attrs.id = void 0; + else if (this.useAnchor) this.bubble(); + } + if ((this.compress & 2) && attrs.class) attrs.class = void 0; + switch (node.name) { + case 'img': + if (attrs['data-src']) { + attrs.src = attrs.src || attrs['data-src']; + attrs['data-src'] = void 0; + } + if (attrs.src && !attrs.ignore) { + if (this.bubble()) attrs.i = (this.imgNum++).toString(); + else attrs.ignore = 'T'; + } + break; + case 'a': + case 'ad': + // #ifdef APP-PLUS + case 'iframe': + case 'embed': + // #endif + this.bubble(); + break; + case 'font': + if (attrs.color) { + styleObj['color'] = attrs.color; + attrs.color = void 0; + } + if (attrs.face) { + styleObj['font-family'] = attrs.face; + attrs.face = void 0; + } + if (attrs.size) { + var size = parseInt(attrs.size); + if (size < 1) size = 1; + else if (size > 7) size = 7; + var map = ['xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large']; + styleObj['font-size'] = map[size - 1]; + attrs.size = void 0; + } + break; + case 'video': + case 'audio': + if (!attrs.id) attrs.id = node.name + (++this[`${node.name}Num`]); + else this[`${node.name}Num`]++; + if (node.name == 'video') { + if (attrs.width) { + style = `width:${parseFloat(attrs.width) + (attrs.width.includes('%') ? '%' : 'px')};${style}`; + attrs.width = void 0; + } + if (attrs.height) { + style = `height:${parseFloat(attrs.height) + (attrs.height.includes('%') ? '%' : 'px')};${style}`; + attrs.height = void 0; + } + if (this.videoNum > 3) node.lazyLoad = true; + } + attrs.source = []; + if (attrs.src) attrs.source.push(attrs.src); + if (!attrs.controls && !attrs.autoplay) + console.warn(`瀛樺湪娌℃湁 controls 灞炴х殑 ${node.name} 鏍囩锛屽彲鑳藉鑷存棤娉曟挱鏀綻, node); + this.bubble(); + break; + case 'td': + case 'th': + if (attrs.colspan || attrs.rowspan) + for (var k = this.STACK.length, item; item = this.STACK[--k];) + if (item.name == 'table') { + item.c = void 0; + break; + } + } + if (attrs.align) { + styleObj['text-align'] = attrs.align; + attrs.align = void 0; + } + // 鍘嬬缉 style + var styles = style.replace(/"/g, '"').replace(/&/g, '&').split(';'); + style = ''; + for (var i = 0, len = styles.length; i < len; i++) { + var info = styles[i].split(':'); + if (info.length < 2) continue; + let key = info[0].trim().toLowerCase(), + value = info.slice(1).join(':').trim(); + if (value.includes('-webkit') || value.includes('-moz') || value.includes('-ms') || value.includes('-o') || value + .includes( + 'safe')) + style += `;${key}:${value}`; + else if (!styleObj[key] || value.includes('import') || !styleObj[key].includes('import')) + styleObj[key] = value; + } + if (node.name == 'img' && parseInt(styleObj.width || attrs.width) > screenWidth) + styleObj.height = 'auto'; + for (var key in styleObj) { + var value = styleObj[key]; + if (key.includes('flex') || key == 'order' || key == 'self-align') node.c = 1; + // 濉厖閾炬帴 + if (value.includes('url')) { + var j = value.indexOf('('); + if (j++ != -1) { + while (value[j] == '"' || value[j] == "'" || blankChar[value[j]]) j++; + value = value.substr(0, j) + this.getUrl(value.substr(j)); + } + } + // 杞崲 rpx + else if (value.includes('rpx')) + value = value.replace(/[0-9.]+\s*rpx/g, $ => parseFloat($) * screenWidth / 750 + 'px'); + else if (key == 'white-space' && value.includes('pre')) + this.pre = node.pre = true; + style += `;${key}:${value}`; + } + style = style.substr(1); + if (style) attrs.style = style; + } + // 鑺傜偣鍑烘爤澶勭悊 + popNode(node) { + // 绌虹櫧绗﹀鐞 + if (node.pre) { + node.pre = this.pre = void 0; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].pre) + this.pre = true; + } + if (node.name == 'head' || (cfg.filter && cfg.filter(node, this) == false)) + return this.siblings().pop(); + var attrs = node.attrs; + // 鏇挎崲涓浜涙爣绛惧悕 + if (node.name == 'picture') { + node.name = 'img'; + if (!attrs.src && (node.children[0] || '').name == 'img') + attrs.src = node.children[0].attrs.src; + if (attrs.src && !attrs.ignore) + attrs.i = (this.imgNum++).toString(); + return node.children = void 0; + } + if (cfg.blockTags[node.name]) node.name = 'div'; + else if (!cfg.trustTags[node.name]) node.name = 'span'; + // 澶勭悊鍒楄〃 + if (node.c) { + if (node.name == 'ul') { + var floor = 1; + for (let i = this.STACK.length; i--;) + if (this.STACK[i].name == 'ul') floor++; + if (floor != 1) + for (let i = node.children.length; i--;) + node.children[i].floor = floor; + } else if (node.name == 'ol') { + for (let i = 0, num = 1, child; child = node.children[i++];) + if (child.name == 'li') { + child.type = 'ol'; + child.num = ((num, type) => { + if (type == 'a') return String.fromCharCode(97 + (num - 1) % 26); + if (type == 'A') return String.fromCharCode(65 + (num - 1) % 26); + if (type == 'i' || type == 'I') { + num = (num - 1) % 99 + 1; + var one = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'], + ten = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'], + res = (ten[Math.floor(num / 10) - 1] || '') + (one[num % 10 - 1] || ''); + if (type == 'i') return res.toLowerCase(); + return res; + } + return num; + })(num++, attrs.type) + '.'; + } + } + } + // 澶勭悊琛ㄦ牸鐨勮竟妗 + if (node.name == 'table') { + var padding = attrs.cellpadding, + spacing = attrs.cellspacing, + border = attrs.border; + if (node.c) { + this.bubble(); + if (!padding) padding = 2; + if (!spacing) spacing = 2; + } + if (border) attrs.style = `border:${border}px solid gray;${attrs.style || ''}`; + if (spacing) attrs.style = `border-spacing:${spacing}px;${attrs.style || ''}`; + if (border || padding) + (function f(ns) { + for (var i = 0, n; n = ns[i]; i++) { + if (n.name == 'th' || n.name == 'td') { + if (border) n.attrs.style = `border:${border}px solid gray;${n.attrs.style}`; + if (padding) n.attrs.style = `padding:${padding}px;${n.attrs.style}`; + } else f(n.children || []); + } + })(node.children) + } + this.CssHandler.pop && this.CssHandler.pop(node); + // 鑷姩鍘嬬缉 + if (node.name == 'div' && !Object.keys(attrs).length) { + var siblings = this.siblings(); + if (node.children.length == 1 && node.children[0].name == 'div') + siblings[siblings.length - 1] = node.children[0]; + } + } + // 宸ュ叿鍑芥暟 + bubble() { + for (var i = this.STACK.length, item; item = this.STACK[--i];) { + if (cfg.richOnlyTags[item.name]) { + if (item.name == 'table' && !Object.hasOwnProperty.call(item, 'c')) item.c = 1; + return false; + } + item.c = 1; + } + return true; + } + getName = val => this.xml ? val : val.toLowerCase(); + getUrl(url) { + if (url[0] == '/') { + if (url[1] == '/') url = this.protocol + ':' + url; + else if (this.domain) url = this.domain + url; + } else if (this.domain && url.indexOf('data:') != 0 && !url.includes('://')) + url = this.domain + '/' + url; + return url; + } + isClose = () => this.data[this.i] == '>' || (this.data[this.i] == '/' && this.data[this.i + 1] == '>'); + section = () => this.data.substring(this.start, this.i); + siblings = () => this.STACK.length ? this.STACK[this.STACK.length - 1].children : this.DOM; + // 鐘舵佹満 + Text(c) { + if (c == '<') { + var next = this.data[this.i + 1], + isLetter = c => (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + if (isLetter(next)) { + this.setText(); + this.start = this.i + 1; + this.state = this.TagName; + } else if (next == '/') { + this.setText(); + if (isLetter(this.data[++this.i + 1])) { + this.start = this.i + 1; + this.state = this.EndTag; + } else + this.Comment(); + } else if (next == '!') { + this.setText(); + this.Comment(); + } + } + } + Comment() { + var key; + if (this.data.substring(this.i + 2, this.i + 4) == '--') key = '-->'; + else if (this.data.substring(this.i + 2, this.i + 9) == '[CDATA[') key = ']]>'; + else key = '>'; + if ((this.i = this.data.indexOf(key, this.i + 2)) == -1) this.i = this.data.length; + else this.i += key.length - 1; + this.start = this.i + 1; + this.state = this.Text; + } + TagName(c) { + if (blankChar[c]) { + this.tagName = this.section(); + while (blankChar[this.data[this.i]]) this.i++; + if (this.isClose()) this.setNode(); + else { + this.start = this.i; + this.state = this.AttrName; + } + } else if (this.isClose()) { + this.tagName = this.section(); + this.setNode(); + } + } + AttrName(c) { + var blank = blankChar[c]; + if (blank) { + this.attrName = this.section(); + c = this.data[this.i]; + } + if (c == '=') { + if (!blank) this.attrName = this.section(); + while (blankChar[this.data[++this.i]]); + this.start = this.i--; + this.state = this.AttrValue; + } else if (blank) this.setAttr(); + else if (this.isClose()) { + this.attrName = this.section(); + this.setAttr(); + } + } + AttrValue(c) { + if (c == '"' || c == "'") { + this.start++; + if ((this.i = this.data.indexOf(c, this.i + 1)) == -1) return this.i = this.data.length; + this.attrVal = this.section(); + this.i++; + } else { + for (; !blankChar[this.data[this.i]] && !this.isClose(); this.i++); + this.attrVal = this.section(); + } + this.setAttr(); + } + EndTag(c) { + if (blankChar[c] || c == '>' || c == '/') { + var name = this.getName(this.section()); + for (var i = this.STACK.length; i--;) + if (this.STACK[i].name == name) break; + if (i != -1) { + var node; + while ((node = this.STACK.pop()).name != name); + this.popNode(node); + } else if (name == 'p' || name == 'br') + this.siblings().push({ + name, + attrs: {} + }); + this.i = this.data.indexOf('>', this.i); + this.start = this.i + 1; + if (this.i == -1) this.i = this.data.length; + else this.state = this.Text; + } + } +} +module.exports = MpHtmlParser; diff --git a/components/jyf-parser/libs/config.js b/components/jyf-parser/libs/config.js new file mode 100644 index 0000000..c7985ad --- /dev/null +++ b/components/jyf-parser/libs/config.js @@ -0,0 +1,89 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +/* 閰嶇疆鏂囦欢 */ +// #ifdef MP-WEIXIN +const canIUse = wx.canIUse('editor'); // 楂樺熀纭搴撴爣璇嗭紝鐢ㄤ簬鍏煎 +// #endif +module.exports = { + // 杩囨护鍣ㄥ嚱鏁 + filter: null, + // 浠g爜楂樹寒鍑芥暟 + highlight: null, + // 鏂囨湰澶勭悊鍑芥暟 + onText: null, + blankChar: makeMap(' ,\xA0,\t,\r,\n,\f'), + // 鍧楃骇鏍囩锛屽皢琚浆涓 div + blockTags: makeMap('address,article,aside,body,caption,center,cite,footer,header,html,nav,section' + ( + // #ifdef MP-WEIXIN + canIUse ? '' : + // #endif + ',pre')), + // 灏嗚绉婚櫎鐨勬爣绛 + ignoreTags: makeMap( + 'area,base,basefont,canvas,command,frame,input,isindex,keygen,link,map,meta,param,script,source,style,svg,textarea,title,track,use,wbr' + // #ifdef MP-WEIXIN + + (canIUse ? ',rp' : '') + // #endif + // #ifndef APP-PLUS + + ',embed,iframe' + // #endif + ), + // 鍙兘琚 rich-text 鏄剧ず鐨勬爣绛 + richOnlyTags: makeMap('a,colgroup,fieldset,legend,picture,table' + // #ifdef MP-WEIXIN + + (canIUse ? ',bdi,bdo,caption,rt,ruby' : '') + // #endif + ), + // 鑷棴鍚堢殑鏍囩 + selfClosingTags: makeMap( + 'area,base,basefont,br,col,circle,ellipse,embed,frame,hr,img,input,isindex,keygen,line,link,meta,param,path,polygon,rect,source,track,use,wbr' + ), + // 淇′换鐨勫睘鎬 + trustAttrs: makeMap( + 'align,alt,app-id,author,autoplay,border,cellpadding,cellspacing,class,color,colspan,controls,data-src,dir,face,height,href,id,ignore,loop,media,muted,name,path,poster,rowspan,size,span,src,start,style,type,unit-id,width,xmlns' + ), + // bool 鍨嬬殑灞炴 + boolAttrs: makeMap('autoplay,controls,ignore,loop,muted'), + // 淇′换鐨勬爣绛 + trustTags: makeMap( + 'a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video' + // #ifdef MP-WEIXIN + + (canIUse ? ',bdi,bdo,caption,pre,rt,ruby' : '') + // #endif + // #ifdef APP-PLUS + + ',embed,iframe' + // #endif + ), + // 榛樿鐨勬爣绛炬牱寮 + userAgentStyles: { + address: 'font-style:italic', + big: 'display:inline;font-size:1.2em', + blockquote: 'background-color:#f6f6f6;border-left:3px solid #dbdbdb;color:#6c6c6c;padding:5px 0 5px 10px', + caption: 'display:table-caption;text-align:center', + center: 'text-align:center', + cite: 'font-style:italic', + dd: 'margin-left:40px', + img: 'max-width:100%', + mark: 'background-color:yellow', + picture: 'max-width:100%', + pre: 'font-family:monospace;white-space:pre;overflow:scroll', + s: 'text-decoration:line-through', + small: 'display:inline;font-size:0.8em', + u: 'text-decoration:underline' + } +} + +function makeMap(str) { + var map = {}, + list = str.split(','); + for (var i = list.length; i--;) + map[list[i]] = true; + return map; +} diff --git a/components/jyf-parser/libs/handler.sjs b/components/jyf-parser/libs/handler.sjs new file mode 100644 index 0000000..e8743fa --- /dev/null +++ b/components/jyf-parser/libs/handler.sjs @@ -0,0 +1,44 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +var inlineTags = { + abbr: 1, + b: 1, + big: 1, + code: 1, + del: 1, + em: 1, + i: 1, + ins: 1, + label: 1, + q: 1, + small: 1, + span: 1, + strong: 1 +} +export default { + // 浠庨《灞傛爣绛剧殑鏍峰紡涓彇鍑轰竴浜涚粰 rich-text + getStyle: function(style) { + if (style) { + var i, j, res = ''; + if ((i = style.indexOf('display')) != -1) + res = style.substring(i, (j = style.indexOf(';', i)) == -1 ? style.length : j); + if ((i = style.indexOf('float')) != -1) + res += ';' + style.substring(i, (j = style.indexOf(';', i)) == -1 ? style.length : j); + return res; + } + }, + getNode: function(item) { + return [item]; + }, + // 鏄惁閫氳繃 rich-text 鏄剧ず + useRichText: function(item) { + return !item.c && !inlineTags[item.name] && (item.attrs.style || '').indexOf('display:inline') == -1; + } +} diff --git a/components/jyf-parser/libs/handler.wxs b/components/jyf-parser/libs/handler.wxs new file mode 100644 index 0000000..afaf0bc --- /dev/null +++ b/components/jyf-parser/libs/handler.wxs @@ -0,0 +1,53 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +var inlineTags = { + abbr: 1, + b: 1, + big: 1, + code: 1, + del: 1, + em: 1, + i: 1, + ins: 1, + label: 1, + q: 1, + small: 1, + span: 1, + strong: 1 +} +module.exports = { + // 浠庨《灞傛爣绛剧殑鏍峰紡涓彇鍑轰竴浜涚粰 rich-text + getStyle: function(style) { + if (style) { + var i, j, res = ''; + if ((i = style.indexOf('display')) != -1) + res = style.substring(i, (j = style.indexOf(';', i)) == -1 ? style.length : j); + if ((i = style.indexOf('float')) != -1) + res += ';' + style.substring(i, (j = style.indexOf(';', i)) == -1 ? style.length : j); + return res; + } + }, + // 澶勭悊鎳掑姞杞 + getNode: function(item, imgLoad) { + if (!imgLoad && item.attrs.i != '0') { + var img = { + name: 'img', + attrs: JSON.parse(JSON.stringify(item.attrs)) + } + delete img.attrs.src; + img.attrs.style += ';width:20px;height:20px'; + return [img]; + } else return [item]; + }, + // 鏄惁閫氳繃 rich-text 鏄剧ず + useRichText: function(item) { + return !item.c && !inlineTags[item.name] && (item.attrs.style || '').indexOf('display:inline') == -1; + } +} diff --git a/components/jyf-parser/libs/trees.vue b/components/jyf-parser/libs/trees.vue new file mode 100644 index 0000000..c2ea476 --- /dev/null +++ b/components/jyf-parser/libs/trees.vue @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + {{n.text}} + \n + + + + + + + + + + + + + + + + + + + + + + + + {{n.num}} + + 鈻 + + 鈻 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/return/index.vue b/components/return/index.vue new file mode 100644 index 0000000..50282f4 --- /dev/null +++ b/components/return/index.vue @@ -0,0 +1,120 @@ + + + + + + {{name}} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/uni-popup/uni-popup.vue b/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..9daff62 --- /dev/null +++ b/components/uni-popup/uni-popup.vue @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/components/w-picker/areadata/areadata.js b/components/w-picker/areadata/areadata.js new file mode 100644 index 0000000..b07228c --- /dev/null +++ b/components/w-picker/areadata/areadata.js @@ -0,0 +1 @@ +const cityData=[{value:'110000',label:'鍖椾含甯',children:[{value:"110100",label:"鍖椾含甯",children:[{value:"110101",label:"涓滃煄鍖"},{value:"110102",label:"瑗垮煄鍖"},{value:"110105",label:"鏈濋槼鍖"},{value:"110106",label:"涓板彴鍖"},{value:"110107",label:"鐭虫櫙灞卞尯"},{value:"110108",label:"娴锋穩鍖"},{value:"110109",label:"闂ㄥご娌熷尯"},{value:"110111",label:"鎴垮北鍖"},{value:"110112",label:"閫氬窞鍖"},{value:"110113",label:"椤轰箟鍖"},{value:"110114",label:"鏄屽钩鍖"},{value:"110115",label:"澶у叴鍖"},{value:"110116",label:"鎬鏌斿尯"},{value:"110117",label:"骞宠胺鍖"},{value:"110118",label:"瀵嗕簯鍖"},{value:"110119",label:"寤跺簡鍖"}]}]},{value:'120000',label:'澶╂触甯',children:[{value:"120100",label:"澶╂触甯",children:[{value:"120101",label:"鍜屽钩鍖"},{value:"120102",label:"娌充笢鍖"},{value:"120103",label:"娌宠タ鍖"},{value:"120104",label:"鍗楀紑鍖"},{value:"120105",label:"娌冲寳鍖"},{value:"120106",label:"绾㈡ˉ鍖"},{value:"120110",label:"涓滀附鍖"},{value:"120111",label:"瑗块潚鍖"},{value:"120112",label:"娲ュ崡鍖"},{value:"120113",label:"鍖楄景鍖"},{value:"120114",label:"姝︽竻鍖"},{value:"120115",label:"瀹濆澔鍖"},{value:"120116",label:"婊ㄦ捣鏂板尯"},{value:"120117",label:"瀹佹渤鍖"},{value:"120118",label:"闈欐捣鍖"},{value:"120119",label:"钃熷窞鍖"}]}]},{value:'130000',label:'娌冲寳鐪',children:[{value:"130100",label:"鐭冲搴勫競",children:[{value:"130102",label:"闀垮畨鍖"},{value:"130104",label:"妗ヨタ鍖"},{value:"130105",label:"鏂板崕鍖"},{value:"130107",label:"浜曢檳鐭垮尯"},{value:"130108",label:"瑁曞崕鍖"},{value:"130109",label:"钘佸煄鍖"},{value:"130110",label:"楣挎硥鍖"},{value:"130111",label:"鏍惧煄鍖"},{value:"130121",label:"浜曢檳鍘"},{value:"130123",label:"姝e畾鍘"},{value:"130125",label:"琛屽攼鍘"},{value:"130126",label:"鐏靛鍘"},{value:"130127",label:"楂橀倯鍘"},{value:"130128",label:"娣辨辰鍘"},{value:"130129",label:"璧炵殗鍘"},{value:"130130",label:"鏃犳瀬鍘"},{value:"130131",label:"骞冲北鍘"},{value:"130132",label:"鍏冩皬鍘"},{value:"130133",label:"璧靛幙"},{value:"130181",label:"杈涢泦甯"},{value:"130183",label:"鏅嬪窞甯"},{value:"130184",label:"鏂颁箰甯"},{value:"130172",label:"鐭冲搴勫惊鐜寲宸ュ洯鍖"},{value:"130171",label:"鐭冲搴勯珮鏂版妧鏈骇涓氬紑鍙戝尯"}]},{value:"130200",label:"鍞愬北甯",children:[{value:"130202",label:"璺崡鍖"},{value:"130203",label:"璺寳鍖"},{value:"130204",label:"鍙ゅ喍鍖"},{value:"130205",label:"寮骞冲尯"},{value:"130207",label:"涓板崡鍖"},{value:"130208",label:"涓版鼎鍖"},{value:"130209",label:"鏇瑰鐢稿尯"},{value:"130223",label:"婊﹀幙"},{value:"130224",label:"婊﹀崡鍘"},{value:"130225",label:"涔愪涵鍘"},{value:"130227",label:"杩佽タ鍘"},{value:"130229",label:"鐜夌敯鍘"},{value:"130281",label:"閬靛寲甯"},{value:"130283",label:"杩佸畨甯"},{value:"130271",label:"鍞愬北甯傝姦鍙扮粡娴庢妧鏈紑鍙戝尯"},{value:"130272",label:"鍞愬北甯傛眽娌界鐞嗗尯"},{value:"130273",label:"鍞愬北楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"130274",label:"娌冲寳鍞愬北娴锋腐缁忔祹寮鍙戝尯"}]},{value:"130300",label:"绉︾殗宀涘競",children:[{value:"130302",label:"娴锋腐鍖"},{value:"130303",label:"灞辨捣鍏冲尯"},{value:"130304",label:"鍖楁埓娌冲尯"},{value:"130321",label:"闈掗緳婊℃棌鑷不鍘"},{value:"130322",label:"鏄岄粠鍘"},{value:"130306",label:"鎶氬畞鍖"},{value:"130324",label:"鍗㈤緳鍘"},{value:"130371",label:"绉︾殗宀涘競缁忔祹鎶鏈紑鍙戝尯"},{value:"130372",label:"鍖楁埓娌虫柊鍖"}]},{value:"130400",label:"閭兏甯",children:[{value:"130402",label:"閭北鍖"},{value:"130403",label:"涓涘彴鍖"},{value:"130404",label:"澶嶅叴鍖"},{value:"130406",label:"宄板嘲鐭垮尯"},{value:"130421",label:"閭兏鍘"},{value:"130423",label:"涓存汲鍘"},{value:"130424",label:"鎴愬畨鍘"},{value:"130425",label:"澶у悕鍘"},{value:"130426",label:"娑夊幙"},{value:"130427",label:"纾佸幙"},{value:"130407",label:"鑲ヤ埂鍖"},{value:"130408",label:"姘稿勾鍖"},{value:"130430",label:"閭卞幙"},{value:"130431",label:"楦℃辰鍘"},{value:"130432",label:"骞垮钩鍘"},{value:"130433",label:"棣嗛櫠鍘"},{value:"130434",label:"榄忓幙"},{value:"130435",label:"鏇插懆鍘"},{value:"130481",label:"姝﹀畨甯"},{value:"130471",label:"閭兏缁忔祹鎶鏈紑鍙戝尯"},{value:"130473",label:"閭兏鍐鍗楁柊鍖"}]},{value:"130500",label:"閭㈠彴甯",children:[{value:"130502",label:"妗ヤ笢鍖"},{value:"130503",label:"妗ヨタ鍖"},{value:"130521",label:"閭㈠彴鍘"},{value:"130522",label:"涓村煄鍘"},{value:"130523",label:"鍐呬笜鍘"},{value:"130524",label:"鏌忎埂鍘"},{value:"130525",label:"闅嗗哀鍘"},{value:"130526",label:"浠诲幙"},{value:"130527",label:"鍗楀拰鍘"},{value:"130528",label:"瀹佹檵鍘"},{value:"130529",label:"宸ㄩ箍鍘"},{value:"130530",label:"鏂版渤鍘"},{value:"130531",label:"骞垮畻鍘"},{value:"130532",label:"骞充埂鍘"},{value:"130533",label:"濞佸幙"},{value:"130534",label:"娓呮渤鍘"},{value:"130535",label:"涓磋タ鍘"},{value:"130581",label:"鍗楀甯"},{value:"130582",label:"娌欐渤甯"},{value:"130571",label:"娌冲寳閭㈠彴缁忔祹寮鍙戝尯"}]},{value:"130600",label:"淇濆畾甯",children:[{value:"130602",label:"绔炵鍖"},{value:"130606",label:"鑾叉睜鍖"},{value:"130607",label:"婊″煄鍖"},{value:"130608",label:"娓呰嫅鍖"},{value:"130623",label:"娑炴按鍘"},{value:"130624",label:"闃滃钩鍘"},{value:"130609",label:"寰愭按鍖"},{value:"130626",label:"瀹氬叴鍘"},{value:"130627",label:"鍞愬幙"},{value:"130628",label:"楂橀槼鍘"},{value:"130629",label:"瀹瑰煄鍘"},{value:"130630",label:"娑炴簮鍘"},{value:"130631",label:"鏈涢兘鍘"},{value:"130632",label:"瀹夋柊鍘"},{value:"130633",label:"鏄撳幙"},{value:"130634",label:"鏇查槼鍘"},{value:"130635",label:"锠″幙"},{value:"130636",label:"椤哄钩鍘"},{value:"130637",label:"鍗氶噹鍘"},{value:"130638",label:"闆勫幙"},{value:"130681",label:"娑垮窞甯"},{value:"130682",label:"瀹氬窞甯"},{value:"130683",label:"瀹夊浗甯"},{value:"130684",label:"楂樼搴楀競"},{value:"130671",label:"淇濆畾楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"130672",label:"淇濆畾鐧芥矡鏂板煄"}]},{value:"130700",label:"寮犲鍙e競",children:[{value:"130702",label:"妗ヤ笢鍖"},{value:"130703",label:"妗ヨタ鍖"},{value:"130705",label:"瀹e寲鍖"},{value:"130706",label:"涓嬭姳鍥尯"},{value:"130708",label:"涓囧叏鍖"},{value:"130709",label:"宕囩ぜ鍖"},{value:"130722",label:"寮犲寳鍘"},{value:"130723",label:"搴蜂繚鍘"},{value:"130724",label:"娌芥簮鍘"},{value:"130725",label:"灏氫箟鍘"},{value:"130726",label:"钄氬幙"},{value:"130727",label:"闃冲師鍘"},{value:"130728",label:"鎬瀹夊幙"},{value:"130730",label:"鎬鏉ュ幙"},{value:"130731",label:"娑块箍鍘"},{value:"130732",label:"璧ゅ煄鍘"},{value:"130733",label:"宕囩ぜ鍘"},{value:"130771",label:"寮犲鍙e競楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"130772",label:"寮犲鍙e競瀵熷寳绠$悊鍖"},{value:"130773",label:"寮犲鍙e競濉炲寳绠$悊鍖"}]},{value:"130800",label:"鎵垮痉甯",children:[{value:"130802",label:"鍙屾ˉ鍖"},{value:"130803",label:"鍙屾沪鍖"},{value:"130804",label:"楣版墜钀ュ瓙鐭垮尯"},{value:"130821",label:"鎵垮痉鍘"},{value:"130822",label:"鍏撮殕鍘"},{value:"130881",label:"骞虫硥甯"},{value:"130824",label:"婊﹀钩鍘"},{value:"130825",label:"闅嗗寲鍘"},{value:"130826",label:"涓板畞婊℃棌鑷不鍘"},{value:"130827",label:"瀹藉煄婊℃棌鑷不鍘"},{value:"130828",label:"鍥村満婊℃棌钂欏彜鏃忚嚜娌诲幙"},{value:"130871",label:"鎵垮痉楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"130900",label:"娌у窞甯",children:[{value:"130902",label:"鏂板崕鍖"},{value:"130903",label:"杩愭渤鍖"},{value:"130921",label:"娌у幙"},{value:"130922",label:"闈掑幙"},{value:"130923",label:"涓滃厜鍘"},{value:"130924",label:"娴峰叴鍘"},{value:"130925",label:"鐩愬北鍘"},{value:"130926",label:"鑲冨畞鍘"},{value:"130927",label:"鍗楃毊鍘"},{value:"130928",label:"鍚存ˉ鍘"},{value:"130929",label:"鐚幙"},{value:"130930",label:"瀛熸潙鍥炴棌鑷不鍘"},{value:"130981",label:"娉婂ご甯"},{value:"130982",label:"浠讳笜甯"},{value:"130983",label:"榛勯獏甯"},{value:"130984",label:"娌抽棿甯"},{value:"130971",label:"娌冲寳娌у窞缁忔祹寮鍙戝尯"},{value:"130972",label:"娌у窞楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"130973",label:"娌у窞娓ゆ捣鏂板尯"}]},{value:"131000",label:"寤婂潑甯",children:[{value:"131002",label:"瀹夋鍖"},{value:"131003",label:"骞块槼鍖"},{value:"131022",label:"鍥哄畨鍘"},{value:"131023",label:"姘告竻鍘"},{value:"131024",label:"棣欐渤鍘"},{value:"131025",label:"澶у煄鍘"},{value:"131026",label:"鏂囧畨鍘"},{value:"131028",label:"澶у巶鍥炴棌鑷不鍘"},{value:"131071",label:"寤婂潑缁忔祹鎶鏈紑鍙戝尯"},{value:"131081",label:"闇稿窞甯"},{value:"131082",label:"涓夋渤甯"}]},{value:"131100",label:"琛℃按甯",children:[{value:"131102",label:"妗冨煄鍖"},{value:"131121",label:"鏋e己鍘"},{value:"131122",label:"姝﹂倯鍘"},{value:"131123",label:"姝﹀己鍘"},{value:"131124",label:"楗堕槼鍘"},{value:"131125",label:"瀹夊钩鍘"},{value:"131126",label:"鏁呭煄鍘"},{value:"131127",label:"鏅幙"},{value:"131128",label:"闃滃煄鍘"},{value:"131103",label:"鍐宸炲尯"},{value:"131182",label:"娣卞窞甯"},{value:"131172",label:"琛℃按婊ㄦ箹鏂板尯"},{value:"131171",label:"娌冲寳琛℃按缁忔祹寮鍙戝尯"}]}]},{value:'140000',label:'灞辫タ鐪',children:[{value:"140100",label:"澶師甯",children:[{value:"140105",label:"灏忓簵鍖"},{value:"140106",label:"杩庢辰鍖"},{value:"140107",label:"鏉忚姳宀尯"},{value:"140108",label:"灏栬崏鍧尯"},{value:"140109",label:"涓囨煆鏋楀尯"},{value:"140110",label:"鏅嬫簮鍖"},{value:"140121",label:"娓呭緪鍘"},{value:"140122",label:"闃虫洸鍘"},{value:"140123",label:"濞勭儲鍘"},{value:"140181",label:"鍙や氦甯"},{value:"140171",label:"灞辫タ杞瀷缁煎悎鏀归潻绀鸿寖鍖"}]},{value:"140200",label:"澶у悓甯",children:[{value:"140202",label:"鍩庡尯"},{value:"140203",label:"鐭垮尯"},{value:"140211",label:"鍗楅儕鍖"},{value:"140212",label:"鏂拌崳鍖"},{value:"140221",label:"闃抽珮鍘"},{value:"140222",label:"澶╅晣鍘"},{value:"140223",label:"骞跨伒鍘"},{value:"140224",label:"鐏典笜鍘"},{value:"140225",label:"娴戞簮鍘"},{value:"140226",label:"宸︿簯鍘"},{value:"140227",label:"澶у悓鍘"},{value:"140271",label:"灞辫タ澶у悓缁忔祹寮鍙戝尯"}]},{value:"140300",label:"闃虫硥甯",children:[{value:"140302",label:"鍩庡尯"},{value:"140303",label:"鐭垮尯"},{value:"140311",label:"閮婂尯"},{value:"140321",label:"骞冲畾鍘"},{value:"140322",label:"鐩傚幙"},{value:"140371",label:"灞辫タ闃虫硥缁忔祹寮鍙戝尯"}]},{value:"140400",label:"闀挎不甯",children:[{value:"140421",label:"闀挎不鍘"},{value:"140423",label:"瑗勫灒鍘"},{value:"140424",label:"灞暀鍘"},{value:"140425",label:"骞抽『鍘"},{value:"140426",label:"榛庡煄鍘"},{value:"140427",label:"澹跺叧鍘"},{value:"140428",label:"闀垮瓙鍘"},{value:"140429",label:"姝︿埂鍘"},{value:"140430",label:"娌佸幙"},{value:"140431",label:"娌佹簮鍘"},{value:"140481",label:"娼炲煄甯"},{value:"140402",label:"鍩庡尯"},{value:"140411",label:"閮婂尯"},{value:"140471",label:"灞辫タ闀挎不楂樻柊鎶鏈骇涓氬洯鍖"}]},{value:"140500",label:"鏅嬪煄甯",children:[{value:"140502",label:"鍩庡尯"},{value:"140521",label:"娌佹按鍘"},{value:"140522",label:"闃冲煄鍘"},{value:"140524",label:"闄靛窛鍘"},{value:"140525",label:"娉藉窞鍘"},{value:"140581",label:"楂樺钩甯"}]},{value:"140600",label:"鏈斿窞甯",children:[{value:"140602",label:"鏈斿煄鍖"},{value:"140603",label:"骞抽瞾鍖"},{value:"140621",label:"灞遍槾鍘"},{value:"140622",label:"搴斿幙"},{value:"140623",label:"鍙崇帀鍘"},{value:"140624",label:"鎬浠佸幙"},{value:"140671",label:"灞辫タ鏈斿窞缁忔祹寮鍙戝尯"}]},{value:"140700",label:"鏅嬩腑甯",children:[{value:"140702",label:"姒嗘鍖"},{value:"140721",label:"姒嗙ぞ鍘"},{value:"140722",label:"宸︽潈鍘"},{value:"140723",label:"鍜岄『鍘"},{value:"140724",label:"鏄旈槼鍘"},{value:"140725",label:"瀵块槼鍘"},{value:"140726",label:"澶胺鍘"},{value:"140727",label:"绁佸幙"},{value:"140728",label:"骞抽仴鍘"},{value:"140729",label:"鐏电煶鍘"},{value:"140781",label:"浠嬩紤甯"}]},{value:"140800",label:"杩愬煄甯",children:[{value:"140802",label:"鐩愭箹鍖"},{value:"140821",label:"涓寸寳鍘"},{value:"140822",label:"涓囪崳鍘"},{value:"140823",label:"闂诲枩鍘"},{value:"140824",label:"绋峰北鍘"},{value:"140825",label:"鏂扮粵鍘"},{value:"140826",label:"缁涘幙"},{value:"140827",label:"鍨f洸鍘"},{value:"140828",label:"澶忓幙"},{value:"140829",label:"骞抽檰鍘"},{value:"140830",label:"鑺煄鍘"},{value:"140881",label:"姘告祹甯"},{value:"140882",label:"娌虫触甯"}]},{value:"140900",label:"蹇诲窞甯",children:[{value:"140902",label:"蹇诲簻鍖"},{value:"140921",label:"瀹氳鍘"},{value:"140922",label:"浜斿彴鍘"},{value:"140923",label:"浠e幙"},{value:"140924",label:"绻佸硻鍘"},{value:"140925",label:"瀹佹鍘"},{value:"140926",label:"闈欎箰鍘"},{value:"140927",label:"绁炴睜鍘"},{value:"140928",label:"浜斿鍘"},{value:"140929",label:"宀㈠矚鍘"},{value:"140930",label:"娌虫洸鍘"},{value:"140931",label:"淇濆痉鍘"},{value:"140932",label:"鍋忓叧鍘"},{value:"140981",label:"鍘熷钩甯"},{value:"140971",label:"浜斿彴灞遍鏅悕鑳滃尯"}]},{value:"141000",label:"涓存本甯",children:[{value:"141002",label:"灏ч兘鍖"},{value:"141021",label:"鏇叉矁鍘"},{value:"141022",label:"缈煎煄鍘"},{value:"141023",label:"瑗勬本鍘"},{value:"141024",label:"娲礊鍘"},{value:"141025",label:"鍙ゅ幙"},{value:"141026",label:"瀹夋辰鍘"},{value:"141027",label:"娴北鍘"},{value:"141028",label:"鍚夊幙"},{value:"141029",label:"涔″畞鍘"},{value:"141030",label:"澶у畞鍘"},{value:"141031",label:"闅板幙"},{value:"141032",label:"姘稿拰鍘"},{value:"141033",label:"钂插幙"},{value:"141034",label:"姹捐タ鍘"},{value:"141081",label:"渚┈甯"},{value:"141082",label:"闇嶅窞甯"}]},{value:"141100",label:"鍚曟甯",children:[{value:"141102",label:"绂荤煶鍖"},{value:"141121",label:"鏂囨按鍘"},{value:"141122",label:"浜ゅ煄鍘"},{value:"141123",label:"鍏村幙"},{value:"141124",label:"涓村幙"},{value:"141125",label:"鏌虫灄鍘"},{value:"141126",label:"鐭虫ゼ鍘"},{value:"141127",label:"宀氬幙"},{value:"141128",label:"鏂瑰北鍘"},{value:"141129",label:"涓槼鍘"},{value:"141130",label:"浜ゅ彛鍘"},{value:"141181",label:"瀛濅箟甯"},{value:"141182",label:"姹鹃槼甯"}]}]},{value:'150000',label:'鍐呰挋鍙',children:[{value:"150100",label:"鍛煎拰娴╃壒甯",children:[{value:"150102",label:"鏂板煄鍖"},{value:"150103",label:"鍥炴皯鍖"},{value:"150104",label:"鐜夋硥鍖"},{value:"150105",label:"璧涚綍鍖"},{value:"150121",label:"鍦熼粯鐗瑰乏鏃"},{value:"150122",label:"鎵樺厠鎵樺幙"},{value:"150123",label:"鍜屾灄鏍煎皵鍘"},{value:"150124",label:"娓呮按娌冲幙"},{value:"150125",label:"姝﹀窛鍘"},{value:"150171",label:"鍛煎拰娴╃壒閲戞捣宸ヤ笟鍥尯"},{value:"150172",label:"鍛煎拰娴╃壒缁忔祹鎶鏈紑鍙戝尯"}]},{value:"150200",label:"鍖呭ご甯",children:[{value:"150202",label:"涓滄渤鍖"},{value:"150203",label:"鏄嗛兘浠戝尯"},{value:"150204",label:"闈掑北鍖"},{value:"150205",label:"鐭虫嫄鍖"},{value:"150206",label:"鐧戒簯鐭垮尯"},{value:"150207",label:"涔濆師鍖"},{value:"150221",label:"鍦熼粯鐗瑰彸鏃"},{value:"150222",label:"鍥洪槼鍘"},{value:"150223",label:"杈惧皵缃曡寕鏄庡畨鑱斿悎鏃"},{value:"150271",label:"鍖呭ご绋鍦熼珮鏂版妧鏈骇涓氬紑鍙戝尯"}]},{value:"150300",label:"涔屾捣甯",children:[{value:"150302",label:"娴峰媰婀惧尯"},{value:"150303",label:"娴峰崡鍖"},{value:"150304",label:"涔岃揪鍖"}]},{value:"150400",label:"璧ゅ嘲甯",children:[{value:"150402",label:"绾㈠北鍖"},{value:"150403",label:"鍏冨疂灞卞尯"},{value:"150404",label:"鏉惧北鍖"},{value:"150421",label:"闃块瞾绉戝皵娌佹棗"},{value:"150422",label:"宸存灄宸︽棗"},{value:"150423",label:"宸存灄鍙虫棗"},{value:"150424",label:"鏋楄タ鍘"},{value:"150425",label:"鍏嬩粈鍏嬭吘鏃"},{value:"150426",label:"缈佺墰鐗规棗"},{value:"150428",label:"鍠鍠囨瞾鏃"},{value:"150429",label:"瀹佸煄鍘"},{value:"150430",label:"鏁栨眽鏃"}]},{value:"150500",label:"閫氳窘甯",children:[{value:"150502",label:"绉戝皵娌佸尯"},{value:"150521",label:"绉戝皵娌佸乏缈间腑鏃"},{value:"150522",label:"绉戝皵娌佸乏缈煎悗鏃"},{value:"150523",label:"寮椴佸幙"},{value:"150524",label:"搴撲鸡鏃"},{value:"150525",label:"濂堟浖鏃"},{value:"150526",label:"鎵庨瞾鐗规棗"},{value:"150581",label:"闇嶆灄閮嫆甯"},{value:"150571",label:"閫氳窘缁忔祹鎶鏈紑鍙戝尯"}]},{value:"150600",label:"閯傚皵澶氭柉甯",children:[{value:"150602",label:"涓滆儨鍖"},{value:"150621",label:"杈炬媺鐗规棗"},{value:"150622",label:"鍑嗘牸灏旀棗"},{value:"150623",label:"閯傛墭鍏嬪墠鏃"},{value:"150624",label:"閯傛墭鍏嬫棗"},{value:"150625",label:"鏉敠鏃"},{value:"150626",label:"涔屽鏃"},{value:"150627",label:"浼婇噾闇嶆礇鏃"},{value:"150603",label:"搴峰反浠鍖"}]},{value:"150700",label:"鍛间鸡璐濆皵甯",children:[{value:"150702",label:"娴锋媺灏斿尯"},{value:"150721",label:"闃胯崳鏃"},{value:"150722",label:"鑾姏杈剧摝杈炬枴灏旀棌鑷不鏃"},{value:"150723",label:"閯備鸡鏄ヨ嚜娌绘棗"},{value:"150724",label:"閯傛俯鍏嬫棌鑷不鏃"},{value:"150725",label:"闄堝反灏旇檸鏃"},{value:"150726",label:"鏂板反灏旇檸宸︽棗"},{value:"150727",label:"鏂板反灏旇檸鍙虫棗"},{value:"150781",label:"婊℃床閲屽競"},{value:"150782",label:"鐗欏厠鐭冲競"},{value:"150783",label:"鎵庡叞灞競"},{value:"150784",label:"棰濆皵鍙ょ撼甯"},{value:"150785",label:"鏍规渤甯"},{value:"150703",label:"鎵庤祲璇哄皵鍖"}]},{value:"150800",label:"宸村溅娣栧皵甯",children:[{value:"150802",label:"涓存渤鍖"},{value:"150821",label:"浜斿師鍘"},{value:"150822",label:"纾村彛鍘"},{value:"150823",label:"涔屾媺鐗瑰墠鏃"},{value:"150824",label:"涔屾媺鐗逛腑鏃"},{value:"150825",label:"涔屾媺鐗瑰悗鏃"},{value:"150826",label:"鏉敠鍚庢棗"}]},{value:"150900",label:"涔屽叞瀵熷竷甯",children:[{value:"150902",label:"闆嗗畞鍖"},{value:"150921",label:"鍗撹祫鍘"},{value:"150922",label:"鍖栧痉鍘"},{value:"150923",label:"鍟嗛兘鍘"},{value:"150924",label:"鍏村拰鍘"},{value:"150925",label:"鍑夊煄鍘"},{value:"150926",label:"瀵熷搱灏斿彸缈煎墠鏃"},{value:"150927",label:"瀵熷搱灏斿彸缈间腑鏃"},{value:"150928",label:"瀵熷搱灏斿彸缈煎悗鏃"},{value:"150929",label:"鍥涘瓙鐜嬫棗"},{value:"150981",label:"涓伴晣甯"}]},{value:"152200",label:"鍏村畨鐩",children:[{value:"152201",label:"涔屽叞娴╃壒甯"},{value:"152202",label:"闃垮皵灞卞競"},{value:"152221",label:"绉戝皵娌佸彸缈煎墠鏃"},{value:"152222",label:"绉戝皵娌佸彸缈间腑鏃"},{value:"152223",label:"鎵庤祲鐗规棗"},{value:"152224",label:"绐佹硥鍘"}]},{value:"152500",label:"閿℃灄閮嫆鐩",children:[{value:"152501",label:"浜岃繛娴╃壒甯"},{value:"152502",label:"閿℃灄娴╃壒甯"},{value:"152522",label:"闃垮反鍢庢棗"},{value:"152523",label:"鑻忓凹鐗瑰乏鏃"},{value:"152524",label:"鑻忓凹鐗瑰彸鏃"},{value:"152525",label:"涓滀箤鐝犵﹩娌佹棗"},{value:"152526",label:"瑗夸箤鐝犵﹩娌佹棗"},{value:"152527",label:"澶粏瀵烘棗"},{value:"152528",label:"闀堕粍鏃"},{value:"152529",label:"姝i暥鐧芥棗"},{value:"152530",label:"姝h摑鏃"},{value:"152531",label:"澶氫鸡鍘"},{value:"152571",label:"涔屾媺鐩栫濮斾細"}]},{value:"152900",label:"闃挎媺鍠勭洘",children:[{value:"152921",label:"闃挎媺鍠勫乏鏃"},{value:"152922",label:"闃挎媺鍠勫彸鏃"},{value:"152923",label:"棰濇祹绾虫棗"},{value:"152971",label:"鍐呰挋鍙ら樋鎷夊杽缁忔祹寮鍙戝尯"}]}]},{value:'210000',label:'杈藉畞鐪',children:[{value:"210100",label:"娌堥槼甯",children:[{value:"210102",label:"鍜屽钩鍖"},{value:"210103",label:"娌堟渤鍖"},{value:"210104",label:"澶т笢鍖"},{value:"210105",label:"鐨囧鍖"},{value:"210106",label:"閾佽タ鍖"},{value:"210111",label:"鑻忓灞尯"},{value:"210112",label:"涓滈櫟鍖"},{value:"210113",label:"鏂板煄瀛愬尯"},{value:"210114",label:"浜庢椽鍖"},{value:"210115",label:"杈戒腑鍖"},{value:"210123",label:"搴峰钩鍘"},{value:"210124",label:"娉曞簱鍘"},{value:"210181",label:"鏂版皯甯"},{value:"210112",label:"娴戝崡鍖"},{value:"210113",label:"娌堝寳鏂板尯"}]},{value:"210200",label:"澶ц繛甯",children:[{value:"210202",label:"涓北鍖"},{value:"210203",label:"瑗垮矖鍖"},{value:"210204",label:"娌欐渤鍙e尯"},{value:"210211",label:"鐢樹簳瀛愬尯"},{value:"210212",label:"鏃呴『鍙e尯"},{value:"210213",label:"閲戝窞鍖"},{value:"210224",label:"闀挎捣鍘"},{value:"210251",label:"寮鍙戝尯"},{value:"210281",label:"鐡︽埧搴楀競"},{value:"210214",label:"鏅叞搴楀尯"},{value:"210283",label:"搴勬渤甯"}]},{value:"210300",label:"闉嶅北甯",children:[{value:"210302",label:"閾佷笢鍖"},{value:"210303",label:"閾佽タ鍖"},{value:"210304",label:"绔嬪北鍖"},{value:"210311",label:"鍗冨北鍖"},{value:"210321",label:"鍙板畨鍘"},{value:"210323",label:"宀博婊℃棌鑷不鍘"},{value:"210381",label:"娴峰煄甯"}]},{value:"210400",label:"鎶氶『甯",children:[{value:"210402",label:"鏂版姎鍖"},{value:"210403",label:"涓滄床鍖"},{value:"210404",label:"鏈涜姳鍖"},{value:"210411",label:"椤哄煄鍖"},{value:"210421",label:"鎶氶『鍘"},{value:"210422",label:"鏂板婊℃棌鑷不鍘"},{value:"210423",label:"娓呭師婊℃棌鑷不鍘"}]},{value:"210500",label:"鏈邯甯",children:[{value:"210502",label:"骞冲北鍖"},{value:"210503",label:"婧箹鍖"},{value:"210504",label:"鏄庡北鍖"},{value:"210505",label:"鍗楄姮鍖"},{value:"210521",label:"鏈邯婊℃棌鑷不鍘"},{value:"210522",label:"妗撲粊婊℃棌鑷不鍘"}]},{value:"210600",label:"涓逛笢甯",children:[{value:"210602",label:"鍏冨疂鍖"},{value:"210603",label:"鎸叴鍖"},{value:"210604",label:"鎸畨鍖"},{value:"210624",label:"瀹界敻婊℃棌鑷不鍘"},{value:"210681",label:"涓滄腐甯"},{value:"210682",label:"鍑ゅ煄甯"}]},{value:"210700",label:"閿﹀窞甯",children:[{value:"210702",label:"鍙ゅ鍖"},{value:"210703",label:"鍑屾渤鍖"},{value:"210711",label:"澶拰鍖"},{value:"210726",label:"榛戝北鍘"},{value:"210727",label:"涔夊幙"},{value:"210781",label:"鍑屾捣甯"},{value:"210782",label:"鍖楅晣甯"}]},{value:"210800",label:"钀ュ彛甯",children:[{value:"210802",label:"绔欏墠鍖"},{value:"210803",label:"瑗垮競鍖"},{value:"210804",label:"椴呴奔鍦堝尯"},{value:"210811",label:"鑰佽竟鍖"},{value:"210881",label:"鐩栧窞甯"},{value:"210882",label:"澶х煶妗ュ競"}]},{value:"210900",label:"闃滄柊甯",children:[{value:"210902",label:"娴峰窞鍖"},{value:"210903",label:"鏂伴偙鍖"},{value:"210904",label:"澶钩鍖"},{value:"210905",label:"娓呮渤闂ㄥ尯"},{value:"210911",label:"缁嗘渤鍖"},{value:"210921",label:"闃滄柊钂欏彜鏃忚嚜娌诲幙"},{value:"210922",label:"褰版鍘"}]},{value:"211000",label:"杈介槼甯",children:[{value:"211002",label:"鐧藉鍖"},{value:"211003",label:"鏂囧湥鍖"},{value:"211004",label:"瀹忎紵鍖"},{value:"211005",label:"寮撻暱宀尯"},{value:"211011",label:"澶瓙娌冲尯"},{value:"211021",label:"杈介槼鍘"},{value:"211081",label:"鐏甯"}]},{value:"211100",label:"鐩橀敠甯",children:[{value:"211102",label:"鍙屽彴瀛愬尯"},{value:"211103",label:"鍏撮殕鍙板尯"},{value:"211121",label:"澶ф醇鍘"},{value:"211122",label:"鐩樺北鍘"}]},{value:"211200",label:"閾佸箔甯",children:[{value:"211202",label:"閾跺窞鍖"},{value:"211204",label:"娓呮渤鍖"},{value:"211221",label:"閾佸箔鍘"},{value:"211223",label:"瑗夸赴鍘"},{value:"211224",label:"鏄屽浘鍘"},{value:"211281",label:"璋冨叺灞卞競"},{value:"211282",label:"寮鍘熷競"}]},{value:"211300",label:"鏈濋槼甯",children:[{value:"211302",label:"鍙屽鍖"},{value:"211303",label:"榫欏煄鍖"},{value:"211321",label:"鏈濋槼鍘"},{value:"211322",label:"寤哄钩鍘"},{value:"211324",label:"鍠鍠囨瞾宸︾考钂欏彜鏃忚嚜娌诲幙"},{value:"211381",label:"鍖楃エ甯"},{value:"211382",label:"鍑屾簮甯"}]},{value:"211400",label:"钁姦宀涘競",children:[{value:"211402",label:"杩炲北鍖"},{value:"211403",label:"榫欐腐鍖"},{value:"211404",label:"鍗楃エ鍖"},{value:"211421",label:"缁ヤ腑鍘"},{value:"211422",label:"寤烘槍鍘"},{value:"211481",label:"鍏村煄甯"}]}]},{value:'220000',label:'鍚夋灄鐪',children:[{value:"220100",label:"闀挎槬甯",children:[{value:"220102",label:"鍗楀叧鍖"},{value:"220103",label:"瀹藉煄鍖"},{value:"220104",label:"鏈濋槼鍖"},{value:"220105",label:"浜岄亾鍖"},{value:"220106",label:"缁垮洯鍖"},{value:"220112",label:"鍙岄槼鍖"},{value:"220122",label:"鍐滃畨鍘"},{value:"220181",label:"涔濆彴甯"},{value:"220182",label:"姒嗘爲甯"},{value:"220183",label:"寰锋儬甯"},{value:"220171",label:"闀挎槬缁忔祹鎶鏈紑鍙戝尯"},{value:"220172",label:"闀挎槬鍑鏈堥珮鏂版妧鏈骇涓氬紑鍙戝尯"},{value:"220173",label:"闀挎槬楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"220174",label:"闀挎槬姹借溅缁忔祹鎶鏈紑鍙戝尯"}]},{value:"220200",label:"鍚夋灄甯",children:[{value:"220202",label:"鏄岄倯鍖"},{value:"220203",label:"榫欐江鍖"},{value:"220204",label:"鑸硅惀鍖"},{value:"220211",label:"涓版弧鍖"},{value:"220221",label:"姘稿悏鍘"},{value:"220281",label:"铔熸渤甯"},{value:"220282",label:"妗︾敻甯"},{value:"220283",label:"鑸掑叞甯"},{value:"220284",label:"纾愮煶甯"},{value:"220271",label:"鍚夋灄缁忔祹寮鍙戝尯"},{value:"220272",label:"鍚夋灄楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"220273",label:"鍚夋灄涓浗鏂板姞鍧¢鍝佸尯"}]},{value:"220300",label:"鍥涘钩甯",children:[{value:"220302",label:"閾佽タ鍖"},{value:"220303",label:"閾佷笢鍖"},{value:"220322",label:"姊ㄦ爲鍘"},{value:"220323",label:"浼婇氭弧鏃忚嚜娌诲幙"},{value:"220381",label:"鍏富宀競"},{value:"220382",label:"鍙岃窘甯"}]},{value:"220400",label:"杈芥簮甯",children:[{value:"220402",label:"榫欏北鍖"},{value:"220403",label:"瑗垮畨鍖"},{value:"220421",label:"涓滀赴鍘"},{value:"220422",label:"涓滆窘鍘"}]},{value:"220500",label:"閫氬寲甯",children:[{value:"220502",label:"涓滄槍鍖"},{value:"220503",label:"浜岄亾姹熷尯"},{value:"220521",label:"閫氬寲鍘"},{value:"220523",label:"杈夊崡鍘"},{value:"220524",label:"鏌虫渤鍘"},{value:"220581",label:"姊呮渤鍙e競"},{value:"220582",label:"闆嗗畨甯"}]},{value:"220600",label:"鐧藉北甯",children:[{value:"220602",label:"鍏亾姹熷尯"},{value:"220621",label:"鎶氭澗鍘"},{value:"220622",label:"闈栧畤鍘"},{value:"220623",label:"闀跨櫧鏈濋矞鏃忚嚜娌诲幙"},{value:"220605",label:"姹熸簮鍖"},{value:"220681",label:"涓存睙甯"},{value:"220602",label:"娴戞睙鍖"}]},{value:"220700",label:"鏉惧師甯",children:[{value:"220702",label:"瀹佹睙鍖"},{value:"220721",label:"鍓嶉儹灏旂綏鏂挋鍙ゆ棌鑷不鍘"},{value:"220722",label:"闀垮箔鍘"},{value:"220723",label:"涔惧畨鍘"},{value:"220781",label:"鎵朵綑甯"},{value:"220771",label:"鍚夋灄鏉惧師缁忔祹寮鍙戝尯"}]},{value:"220800",label:"鐧藉煄甯",children:[{value:"220802",label:"娲寳鍖"},{value:"220821",label:"闀囪祲鍘"},{value:"220822",label:"閫氭鍘"},{value:"220881",label:"娲崡甯"},{value:"220882",label:"澶у畨甯"},{value:"220871",label:"鍚夋灄鐧藉煄缁忔祹寮鍙戝尯"}]},{value:"222400",label:"寤惰竟鏈濋矞鏃忚嚜娌诲窞",children:[{value:"222401",label:"寤跺悏甯"},{value:"222402",label:"鍥句滑甯"},{value:"222403",label:"鏁﹀寲甯"},{value:"222404",label:"鐝叉槬甯"},{value:"222405",label:"榫欎簳甯"},{value:"222406",label:"鍜岄緳甯"},{value:"222424",label:"姹竻鍘"},{value:"222426",label:"瀹夊浘鍘"}]}]},{value:'230000',label:'榛戦緳姹熺渷',children:[{value:"230100",label:"鍝堝皵婊ㄥ競",children:[{value:"230102",label:"閬撻噷鍖"},{value:"230103",label:"鍗楀矖鍖"},{value:"230104",label:"閬撳鍖"},{value:"230110",label:"棣欏潑鍖"},{value:"230107",label:"鍔ㄥ姏鍖"},{value:"230108",label:"骞虫埧鍖"},{value:"230109",label:"鏉惧寳鍖"},{value:"230111",label:"鍛煎叞鍖"},{value:"230123",label:"渚濆叞鍘"},{value:"230124",label:"鏂规鍘"},{value:"230125",label:"瀹惧幙"},{value:"230126",label:"宸村溅鍘"},{value:"230127",label:"鏈ㄥ叞鍘"},{value:"230128",label:"閫氭渤鍘"},{value:"230129",label:"寤跺鍘"},{value:"230112",label:"闃垮煄鍖"},{value:"230113",label:"鍙屽煄鍖"},{value:"230183",label:"灏氬織甯"},{value:"230184",label:"浜斿父甯"}]},{value:"230200",label:"榻愰綈鍝堝皵甯",children:[{value:"230202",label:"榫欐矙鍖"},{value:"230203",label:"寤哄崕鍖"},{value:"230204",label:"閾侀攱鍖"},{value:"230205",label:"鏄傛槀婧尯"},{value:"230206",label:"瀵屾媺灏斿熀鍖"},{value:"230207",label:"纰惧瓙灞卞尯"},{value:"230208",label:"姊呴噷鏂揪鏂″皵鏃忓尯"},{value:"230221",label:"榫欐睙鍘"},{value:"230223",label:"渚濆畨鍘"},{value:"230224",label:"娉版潵鍘"},{value:"230225",label:"鐢樺崡鍘"},{value:"230227",label:"瀵岃鍘"},{value:"230229",label:"鍏嬪北鍘"},{value:"230230",label:"鍏嬩笢鍘"},{value:"230231",label:"鎷滄硥鍘"},{value:"230281",label:"璁锋渤甯"}]},{value:"230300",label:"楦¤タ甯",children:[{value:"230302",label:"楦″啝鍖"},{value:"230303",label:"鎭掑北鍖"},{value:"230304",label:"婊撮亾鍖"},{value:"230305",label:"姊ㄦ爲鍖"},{value:"230306",label:"鍩庡瓙娌冲尯"},{value:"230307",label:"楹诲北鍖"},{value:"230321",label:"楦′笢鍘"},{value:"230381",label:"铏庢灄甯"},{value:"230382",label:"瀵嗗北甯"}]},{value:"230400",label:"楣ゅ矖甯",children:[{value:"230402",label:"鍚戦槼鍖"},{value:"230403",label:"宸ュ啘鍖"},{value:"230404",label:"鍗楀北鍖"},{value:"230405",label:"鍏村畨鍖"},{value:"230406",label:"涓滃北鍖"},{value:"230407",label:"鍏村北鍖"},{value:"230421",label:"钀濆寳鍘"},{value:"230422",label:"缁ユ花鍘"}]},{value:"230500",label:"鍙岄腑灞卞競",children:[{value:"230502",label:"灏栧北鍖"},{value:"230503",label:"宀笢鍖"},{value:"230505",label:"鍥涙柟鍙板尯"},{value:"230506",label:"瀹濆北鍖"},{value:"230521",label:"闆嗚搐鍘"},{value:"230522",label:"鍙嬭皧鍘"},{value:"230523",label:"瀹濇竻鍘"},{value:"230524",label:"楗舵渤鍘"}]},{value:"230600",label:"澶у簡甯",children:[{value:"230602",label:"钀ㄥ皵鍥惧尯"},{value:"230603",label:"榫欏嚖鍖"},{value:"230604",label:"璁╄儭璺尯"},{value:"230605",label:"绾㈠矖鍖"},{value:"230606",label:"澶у悓鍖"},{value:"230621",label:"鑲囧窞鍘"},{value:"230622",label:"鑲囨簮鍘"},{value:"230623",label:"鏋楃敻鍘"},{value:"230624",label:"鏉滃皵浼壒钂欏彜鏃忚嚜娌诲幙"},{value:"230671",label:"澶у簡楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"230700",label:"浼婃槬甯",children:[{value:"230702",label:"浼婃槬鍖"},{value:"230703",label:"鍗楀矓鍖"},{value:"230704",label:"鍙嬪ソ鍖"},{value:"230705",label:"瑗挎灄鍖"},{value:"230706",label:"缈犲肠鍖"},{value:"230707",label:"鏂伴潚鍖"},{value:"230708",label:"缇庢邯鍖"},{value:"230709",label:"閲戝北灞尯"},{value:"230710",label:"浜旇惀鍖"},{value:"230711",label:"涔岄┈娌冲尯"},{value:"230712",label:"姹ゆ椇娌冲尯"},{value:"230713",label:"甯﹀箔鍖"},{value:"230714",label:"涔屼紛宀尯"},{value:"230715",label:"绾㈡槦鍖"},{value:"230716",label:"涓婄敇宀尯"},{value:"230722",label:"鍢夎崼鍘"},{value:"230781",label:"閾佸姏甯"}]},{value:"230800",label:"浣虫湪鏂競",children:[{value:"230803",label:"鍚戦槼鍖"},{value:"230804",label:"鍓嶈繘鍖"},{value:"230805",label:"涓滈鍖"},{value:"230811",label:"閮婂尯"},{value:"230822",label:"妗﹀崡鍘"},{value:"230826",label:"妗﹀窛鍘"},{value:"230828",label:"姹ゅ師鍘"},{value:"230833",label:"鎶氳繙甯"},{value:"230881",label:"鍚屾睙甯"},{value:"230882",label:"瀵岄敠甯"}]},{value:"230900",label:"涓冨彴娌冲競",children:[{value:"230902",label:"鏂板叴鍖"},{value:"230903",label:"妗冨北鍖"},{value:"230904",label:"鑼勫瓙娌冲尯"},{value:"230921",label:"鍕冨埄鍘"}]},{value:"231000",label:"鐗′腹姹熷競",children:[{value:"231002",label:"涓滃畨鍖"},{value:"231003",label:"闃虫槑鍖"},{value:"231004",label:"鐖辨皯鍖"},{value:"231005",label:"瑗垮畨鍖"},{value:"231086",label:"涓滃畞甯"},{value:"231025",label:"鏋楀彛鍘"},{value:"231081",label:"缁ヨ姮娌冲競"},{value:"231083",label:"娴锋灄甯"},{value:"231084",label:"瀹佸畨甯"},{value:"231085",label:"绌嗘1甯"},{value:"231071",label:"鐗′腹姹熺粡娴庢妧鏈紑鍙戝尯"}]},{value:"231100",label:"榛戞渤甯",children:[{value:"231102",label:"鐖辫緣鍖"},{value:"231121",label:"瀚╂睙鍘"},{value:"231123",label:"閫婂厠鍘"},{value:"231124",label:"瀛欏惔鍘"},{value:"231181",label:"鍖楀畨甯"},{value:"231182",label:"浜斿ぇ杩炴睜甯"}]},{value:"231200",label:"缁ュ寲甯",children:[{value:"231202",label:"鍖楁灄鍖"},{value:"231221",label:"鏈涘鍘"},{value:"231222",label:"鍏拌タ鍘"},{value:"231223",label:"闈掑唸鍘"},{value:"231224",label:"搴嗗畨鍘"},{value:"231225",label:"鏄庢按鍘"},{value:"231226",label:"缁ユ1鍘"},{value:"231281",label:"瀹夎揪甯"},{value:"231282",label:"鑲囦笢甯"},{value:"231283",label:"娴蜂鸡甯"}]},{value:"232700",label:"澶у叴瀹夊箔鍦板尯",children:[{value:"232721",label:"鍛肩帥鍘"},{value:"232722",label:"濉旀渤鍘"},{value:"232723",label:"婕犳渤鍘"},{value:"232701",label:"鍔犳牸杈惧鍖"},{value:"232704",label:"鍛间腑鍖"},{value:"232703",label:"鏂版灄鍖"}]}]},{value:'310000',label:'涓婃捣甯',children:[{value:'310100',label:'涓婃捣甯',children:[{value:"310101",label:"榛勬郸鍖"},{value:"310104",label:"寰愭眹鍖"},{value:"310105",label:"闀垮畞鍖"},{value:"310106",label:"闈欏畨鍖"},{value:"310107",label:"鏅檧鍖"},{value:"310109",label:"铏瑰彛鍖"},{value:"310110",label:"鏉ㄦ郸鍖"},{value:"310112",label:"闂佃鍖"},{value:"310113",label:"瀹濆北鍖"},{value:"310114",label:"鍢夊畾鍖"},{value:"310115",label:"娴︿笢鏂板尯"},{value:"310116",label:"閲戝北鍖"},{value:"310117",label:"鏉炬睙鍖"},{value:"310118",label:"闈掓郸鍖"},{value:"310120",label:"濂夎搐鍖"},{value:"310151",label:"宕囨槑鍖"}]}]},{value:'320000',label:'姹熻嫃鐪',children:[{value:"320100",label:"鍗椾含甯",children:[{value:"320102",label:"鐜勬鍖"},{value:"320104",label:"绉︽樊鍖"},{value:"320105",label:"寤洪偤鍖"},{value:"320106",label:"榧撴ゼ鍖"},{value:"320111",label:"娴﹀彛鍖"},{value:"320113",label:"鏍栭湠鍖"},{value:"320114",label:"闆ㄨ姳鍙板尯"},{value:"320115",label:"姹熷畞鍖"},{value:"320116",label:"鍏悎鍖"},{value:"320117",label:"婧ф按鍖"},{value:"320118",label:"楂樻烦鍖"}]},{value:"320200",label:"鏃犻敗甯",children:[{value:"320205",label:"閿″北鍖"},{value:"320206",label:"鎯犲北鍖"},{value:"320211",label:"婊ㄦ箹鍖"},{value:"320281",label:"姹熼槾甯"},{value:"320282",label:"瀹滃叴甯"},{value:"320213",label:"姊佹邯鍖"},{value:"320214",label:"鏂板惔鍖"}]},{value:"320300",label:"寰愬窞甯",children:[{value:"320302",label:"榧撴ゼ鍖"},{value:"320303",label:"浜戦緳鍖"},{value:"320305",label:"璐炬豹鍖"},{value:"320311",label:"娉夊北鍖"},{value:"320321",label:"涓板幙"},{value:"320322",label:"娌涘幙"},{value:"320324",label:"鐫㈠畞鍘"},{value:"320381",label:"鏂版矀甯"},{value:"320382",label:"閭冲窞甯"},{value:"320371",label:"寰愬窞缁忔祹鎶鏈紑鍙戝尯"}]},{value:"320400",label:"甯稿窞甯",children:[{value:"320402",label:"澶╁畞鍖"},{value:"320404",label:"閽熸ゼ鍖"},{value:"320411",label:"鏂板寳鍖"},{value:"320412",label:"姝﹁繘鍖"},{value:"320481",label:"婧ч槼甯"},{value:"320413",label:"閲戝潧鍖"}]},{value:"320500",label:"鑻忓窞甯",children:[{value:"320505",label:"铏庝笜鍖"},{value:"320506",label:"鍚翠腑鍖"},{value:"320507",label:"鐩稿煄鍖"},{value:"320581",label:"甯哥啛甯"},{value:"320582",label:"寮犲娓競"},{value:"320583",label:"鏄嗗北甯"},{value:"320509",label:"鍚存睙鍖"},{value:"320585",label:"澶粨甯"},{value:"320508",label:"濮戣嫃鍖"},{value:"320571",label:"鑻忓窞宸ヤ笟鍥尯"}]},{value:"320600",label:"鍗楅氬競",children:[{value:"320602",label:"宕囧窛鍖"},{value:"320611",label:"娓椄鍖"},{value:"320612",label:"閫氬窞鍖"},{value:"320621",label:"娴峰畨鍘"},{value:"320623",label:"濡備笢鍘"},{value:"320681",label:"鍚笢甯"},{value:"320682",label:"濡傜殝甯"},{value:"320684",label:"娴烽棬甯"},{value:"320671",label:"鍗楅氱粡娴庢妧鏈紑鍙戝尯"}]},{value:"320700",label:"杩炰簯娓競",children:[{value:"320703",label:"杩炰簯鍖"},{value:"320706",label:"娴峰窞鍖"},{value:"320707",label:"璧f鍖"},{value:"320722",label:"涓滄捣鍘"},{value:"320723",label:"鐏屼簯鍘"},{value:"320724",label:"鐏屽崡鍘"},{value:"320771",label:"杩炰簯娓粡娴庢妧鏈紑鍙戝尯"},{value:"320772",label:"杩炰簯娓珮鏂版妧鏈骇涓氬紑鍙戝尯"}]},{value:"320800",label:"娣畨甯",children:[{value:"320804",label:"娣槾鍖"},{value:"320812",label:"娓呮睙娴﹀尯"},{value:"320826",label:"娑熸按鍘"},{value:"320813",label:"娲辰鍖"},{value:"320830",label:"鐩辩湙鍘"},{value:"320831",label:"閲戞箹鍘"},{value:"320803",label:"娣畨鍖"},{value:"320871",label:"娣畨缁忔祹鎶鏈紑鍙戝尯"}]},{value:"320900",label:"鐩愬煄甯",children:[{value:"320902",label:"浜箹鍖"},{value:"320903",label:"鐩愰兘鍖"},{value:"320921",label:"鍝嶆按鍘"},{value:"320922",label:"婊ㄦ捣鍘"},{value:"320904",label:"澶т赴鍖"},{value:"320923",label:"闃滃畞鍘"},{value:"320924",label:"灏勯槼鍘"},{value:"320925",label:"寤烘箹鍘"},{value:"320981",label:"涓滃彴甯"},{value:"320971",label:"鐩愬煄缁忔祹鎶鏈紑鍙戝尯"}]},{value:"321000",label:"鎵窞甯",children:[{value:"321002",label:"骞块櫟鍖"},{value:"321003",label:"閭楁睙鍖"},{value:"321011",label:"缁存壃鍖"},{value:"321023",label:"瀹濆簲鍘"},{value:"321081",label:"浠緛甯"},{value:"321084",label:"楂橀偖甯"},{value:"321012",label:"姹熼兘鍖"},{value:"321071",label:"鎵窞缁忔祹鎶鏈紑鍙戝尯"}]},{value:"321100",label:"闀囨睙甯",children:[{value:"321102",label:"浜彛鍖"},{value:"321111",label:"娑﹀窞鍖"},{value:"321112",label:"涓瑰緬鍖"},{value:"321181",label:"涓归槼甯"},{value:"321182",label:"鎵腑甯"},{value:"321183",label:"鍙ュ甯"},{value:"321171",label:"闀囨睙鏂板尯"}]},{value:"321200",label:"娉板窞甯",children:[{value:"321202",label:"娴烽櫟鍖"},{value:"321203",label:"楂樻腐鍖"},{value:"321281",label:"鍏村寲甯"},{value:"321282",label:"闈栨睙甯"},{value:"321283",label:"娉板叴甯"},{value:"321204",label:"濮滃牥鍖"},{value:"321271",label:"娉板窞鍖昏嵂楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"321300",label:"瀹胯縼甯",children:[{value:"321302",label:"瀹垮煄鍖"},{value:"321311",label:"瀹胯鲍鍖"},{value:"321322",label:"娌槼鍘"},{value:"321323",label:"娉楅槼鍘"},{value:"321324",label:"娉楁椽鍘"}]}]},{value:'330000',label:'娴欐睙鐪',children:[{value:"330100",label:"鏉窞甯",children:[{value:"330102",label:"涓婂煄鍖"},{value:"330103",label:"涓嬪煄鍖"},{value:"330104",label:"姹熷共鍖"},{value:"330105",label:"鎷卞鍖"},{value:"330106",label:"瑗挎箹鍖"},{value:"330108",label:"婊ㄦ睙鍖"},{value:"330109",label:"钀у北鍖"},{value:"330110",label:"浣欐澀鍖"},{value:"330122",label:"妗愬簮鍘"},{value:"330127",label:"娣冲畨鍘"},{value:"330182",label:"寤哄痉甯"},{value:"330111",label:"瀵岄槼鍖"},{value:"330112",label:"涓村畨鍖"},{value:"330186",label:"鍏跺畠鍖"}]},{value:"330200",label:"瀹佹尝甯",children:[{value:"330203",label:"娴锋洐鍖"},{value:"330205",label:"姹熷寳鍖"},{value:"330206",label:"鍖椾粦鍖"},{value:"330211",label:"闀囨捣鍖"},{value:"330212",label:"閯炲窞鍖"},{value:"330225",label:"璞″北鍘"},{value:"330226",label:"瀹佹捣鍘"},{value:"330281",label:"浣欏甯"},{value:"330282",label:"鎱堟邯甯"},{value:"330213",label:"濂夊寲鍖"}]},{value:"330300",label:"娓╁窞甯",children:[{value:"330302",label:"楣垮煄鍖"},{value:"330303",label:"榫欐咕鍖"},{value:"330304",label:"鐡捣鍖"},{value:"330305",label:"娲炲ご鍖"},{value:"330324",label:"姘稿槈鍘"},{value:"330326",label:"骞抽槼鍘"},{value:"330327",label:"鑻嶅崡鍘"},{value:"330328",label:"鏂囨垚鍘"},{value:"330329",label:"娉伴『鍘"},{value:"330381",label:"鐟炲畨甯"},{value:"330382",label:"涔愭竻甯"},{value:"330371",label:"娓╁窞缁忔祹鎶鏈紑鍙戝尯"}]},{value:"330400",label:"鍢夊叴甯",children:[{value:"330402",label:"鍗楁箹鍖"},{value:"330411",label:"绉娲插尯"},{value:"330421",label:"鍢夊杽鍘"},{value:"330424",label:"娴风洂鍘"},{value:"330481",label:"娴峰畞甯"},{value:"330482",label:"骞虫箹甯"},{value:"330483",label:"妗愪埂甯"}]},{value:"330500",label:"婀栧窞甯",children:[{value:"330502",label:"鍚村叴鍖"},{value:"330503",label:"鍗楁禂鍖"},{value:"330521",label:"寰锋竻鍘"},{value:"330522",label:"闀垮叴鍘"},{value:"330523",label:"瀹夊悏鍘"}]},{value:"330600",label:"缁嶅叴甯",children:[{value:"330602",label:"瓒婂煄鍖"},{value:"330621",label:"鏌ˉ鍖"},{value:"330681",label:"璇告毃甯"},{value:"330604",label:"涓婅櫈鍖"},{value:"330683",label:"宓婂窞甯"},{value:"330624",label:"鏂版槍鍘"}]},{value:"330700",label:"閲戝崕甯",children:[{value:"330702",label:"濠哄煄鍖"},{value:"330703",label:"閲戜笢鍖"},{value:"330723",label:"姝︿箟鍘"},{value:"330726",label:"娴︽睙鍘"},{value:"330727",label:"纾愬畨鍘"},{value:"330781",label:"鍏版邯甯"},{value:"330782",label:"涔変箤甯"},{value:"330783",label:"涓滈槼甯"},{value:"330784",label:"姘稿悍甯"}]},{value:"330800",label:"琛㈠窞甯",children:[{value:"330802",label:"鏌煄鍖"},{value:"330803",label:"琛㈡睙鍖"},{value:"330822",label:"甯稿北鍘"},{value:"330824",label:"寮鍖栧幙"},{value:"330825",label:"榫欐父鍘"},{value:"330881",label:"姹熷北甯"}]},{value:"330900",label:"鑸熷北甯",children:[{value:"330902",label:"瀹氭捣鍖"},{value:"330903",label:"鏅檧鍖"},{value:"330921",label:"宀卞北鍘"},{value:"330922",label:"宓婃硹鍘"}]},{value:"331000",label:"鍙板窞甯",children:[{value:"331002",label:"妞掓睙鍖"},{value:"331003",label:"榛勫博鍖"},{value:"331004",label:"璺ˉ鍖"},{value:"331083",label:"鐜夌幆甯"},{value:"331022",label:"涓夐棬鍘"},{value:"331023",label:"澶╁彴鍘"},{value:"331024",label:"浠欏眳鍘"},{value:"331081",label:"娓╁箔甯"},{value:"331082",label:"涓存捣甯"}]},{value:"331100",label:"涓芥按甯",children:[{value:"331102",label:"鑾查兘鍖"},{value:"331121",label:"闈掔敯鍘"},{value:"331122",label:"缂欎簯鍘"},{value:"331123",label:"閬傛槍鍘"},{value:"331124",label:"鏉鹃槼鍘"},{value:"331125",label:"浜戝拰鍘"},{value:"331126",label:"搴嗗厓鍘"},{value:"331127",label:"鏅畞鐣叉棌鑷不鍘"},{value:"331181",label:"榫欐硥甯"}]}]},{value:'340000',label:'瀹夊窘鐪',children:[{value:"340100",label:"鍚堣偉甯",children:[{value:"340111",label:"鍖呮渤鍖"},{value:"340104",label:"铚灞卞尯"},{value:"340103",label:"搴愰槼鍖"},{value:"340102",label:"鐟舵捣鍖"},{value:"340171",label:"鍚堣偉楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"340172",label:"鍚堣偉缁忔祹鎶鏈紑鍙戝尯"},{value:"340173",label:"鍚堣偉鏂扮珯楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"340121",label:"闀夸赴鍘"},{value:"340122",label:"鑲ヤ笢鍘"},{value:"340123",label:"鑲ヨタ鍘"},{value:"340124",label:"搴愭睙鍘"},{value:"340181",label:"宸㈡箹甯"}]},{value:"340200",label:"鑺滄箹甯",children:[{value:"340202",label:"闀滄箹鍖"},{value:"340203",label:"寮嬫睙鍖"},{value:"340207",label:"楦犳睙鍖"},{value:"340208",label:"涓夊北鍖"},{value:"340221",label:"鑺滄箹鍘"},{value:"340222",label:"绻佹槍鍘"},{value:"340223",label:"鍗楅櫟鍘"},{value:"340225",label:"鏃犱负鍘"},{value:"340272",label:"瀹夊窘鑺滄箹闀挎睙澶фˉ缁忔祹寮鍙戝尯"},{value:"340271",label:"鑺滄箹缁忔祹鎶鏈紑鍙戝尯"}]},{value:"340300",label:"铓屽煚甯",children:[{value:"340302",label:"榫欏瓙婀栧尯"},{value:"340303",label:"铓屽北鍖"},{value:"340304",label:"绂逛細鍖"},{value:"340311",label:"娣笂鍖"},{value:"340321",label:"鎬杩滃幙"},{value:"340322",label:"浜旀渤鍘"},{value:"340323",label:"鍥洪晣鍘"},{value:"340371",label:"铓屽煚甯傞珮鏂版妧鏈紑鍙戝尯"},{value:"340372 ",label:"铓屽煚甯傜粡娴庡紑鍙戝尯"}]},{value:"340400",label:"娣崡甯",children:[{value:"340402",label:"澶ч氬尯"},{value:"340403",label:"鐢板搴靛尯"},{value:"340404",label:"璋㈠闆嗗尯"},{value:"340405",label:"鍏叕灞卞尯"},{value:"340406",label:"娼橀泦鍖"},{value:"340421",label:"鍑ゅ彴鍘"},{value:"340422",label:"瀵垮幙"}]},{value:"340500",label:"椹瀺灞卞競",children:[{value:"340503",label:"鑺卞北鍖"},{value:"340504",label:"闆ㄥ北鍖"},{value:"340521",label:"褰撴秱鍘"},{value:"340506",label:"鍗氭湜鍖"},{value:"340522",label:"鍚北鍘"},{value:"340523",label:"鍜屽幙"}]},{value:"340600",label:"娣寳甯",children:[{value:"340602",label:"鏉滈泦鍖"},{value:"340603",label:"鐩稿北鍖"},{value:"340604",label:"鐑堝北鍖"},{value:"340621",label:"婵夋邯鍘"}]},{value:"340700",label:"閾滈櫟甯",children:[{value:"340705",label:"閾滃畼鍖"},{value:"340706",label:"涔夊畨鍖"},{value:"340711",label:"閮婂尯"},{value:"340722",label:"鏋為槼鍘"}]},{value:"340800",label:"瀹夊簡甯",children:[{value:"340802",label:"杩庢睙鍖"},{value:"340803",label:"澶ц鍖"},{value:"340811",label:"瀹滅鍖"},{value:"340822",label:"鎬瀹佸幙"},{value:"340824",label:"娼滃北鍘"},{value:"340825",label:"澶箹鍘"},{value:"340826",label:"瀹挎澗鍘"},{value:"340827",label:"鏈涙睙鍘"},{value:"340828",label:"宀宠タ鍘"},{value:"340881",label:"妗愬煄甯"},{value:"340871",label:"瀹夊窘瀹夊簡缁忔祹寮鍙戝尯"}]},{value:"341000",label:"榛勫北甯",children:[{value:"341002",label:"灞邯鍖"},{value:"341003",label:"榛勫北鍖"},{value:"341004",label:"寰藉窞鍖"},{value:"341021",label:"姝欏幙"},{value:"341022",label:"浼戝畞鍘"},{value:"341023",label:"榛熷幙"},{value:"341024",label:"绁侀棬鍘"}]},{value:"341100",label:"婊佸窞甯",children:[{value:"341102",label:"鐞呯悐鍖"},{value:"341103",label:"鍗楄隘鍖"},{value:"341122",label:"鏉ュ畨鍘"},{value:"341124",label:"鍏ㄦ鍘"},{value:"341125",label:"瀹氳繙鍘"},{value:"341126",label:"鍑ら槼鍘"},{value:"341181",label:"澶╅暱甯"},{value:"341182",label:"鏄庡厜甯"},{value:"341171",label:"鑻忔粊鐜颁唬浜т笟鍥"},{value:"341172",label:"婊佸窞缁忔祹鎶鏈紑鍙戝尯"}]},{value:"341200",label:"闃滈槼甯",children:[{value:"341202",label:"棰嶅窞鍖"},{value:"341203",label:"棰嶄笢鍖"},{value:"341204",label:"棰嶆硥鍖"},{value:"341221",label:"涓存硥鍘"},{value:"341222",label:"澶拰鍘"},{value:"341225",label:"闃滃崡鍘"},{value:"341226",label:"棰嶄笂鍘"},{value:"341282",label:"鐣岄甯"},{value:"341272",label:"闃滈槼缁忔祹鎶鏈紑鍙戝尯"},{value:"341271",label:"闃滈槼鍚堣偉鐜颁唬浜т笟鍥尯"}]},{value:"341300",label:"瀹垮窞甯",children:[{value:"341302",label:"鍩囨ˉ鍖"},{value:"341321",label:"鐮灞卞幙"},{value:"341322",label:"钀у幙"},{value:"341323",label:"鐏电挧鍘"},{value:"341324",label:"娉楀幙"},{value:"341371",label:"瀹垮窞椹瀺灞辩幇浠d骇涓氬洯鍖"},{value:"341372",label:"瀹垮窞缁忔祹鎶鏈紑鍙戝尯"}]},{value:"341500",label:"鍏畨甯",children:[{value:"341502",label:"閲戝畨鍖"},{value:"341503",label:"瑁曞畨鍖"},{value:"341504",label:"鍙堕泦鍖"},{value:"341522",label:"闇嶉偙鍘"},{value:"341523",label:"鑸掑煄鍘"},{value:"341524",label:"閲戝鍘"},{value:"341525",label:"闇嶅北鍘"}]},{value:"341600",label:"浜冲窞甯",children:[{value:"341602",label:"璋煄鍖"},{value:"341621",label:"娑¢槼鍘"},{value:"341622",label:"钂欏煄鍘"},{value:"341623",label:"鍒╄緵鍘"}]},{value:"341700",label:"姹犲窞甯",children:[{value:"341702",label:"璐垫睜鍖"},{value:"341721",label:"涓滆嚦鍘"},{value:"341722",label:"鐭冲彴鍘"},{value:"341723",label:"闈掗槼鍘"}]},{value:"341800",label:"瀹e煄甯",children:[{value:"341802",label:"瀹e窞鍖"},{value:"341821",label:"閮庢邯鍘"},{value:"341822",label:"骞垮痉鍘"},{value:"341823",label:"娉惧幙"},{value:"341824",label:"缁╂邯鍘"},{value:"341825",label:"鏃屽痉鍘"},{value:"341881",label:"瀹佸浗甯"},{value:"341871",label:"瀹e煄甯傜粡娴庡紑鍙戝尯"}]}]},{value:'350000',label:'绂忓缓鐪',children:[{value:"350100",label:"绂忓窞甯",children:[{value:"350102",label:"榧撴ゼ鍖"},{value:"350103",label:"鍙版睙鍖"},{value:"350104",label:"浠撳北鍖"},{value:"350105",label:"椹熬鍖"},{value:"350111",label:"鏅嬪畨鍖"},{value:"350121",label:"闂戒警鍘"},{value:"350122",label:"杩炴睙鍘"},{value:"350123",label:"缃楁簮鍘"},{value:"350124",label:"闂芥竻鍘"},{value:"350125",label:"姘告嘲鍘"},{value:"350128",label:"骞虫江鍘"},{value:"350181",label:"绂忔竻甯"},{value:"350182",label:"闀夸箰甯"}]},{value:"350200",label:"鍘﹂棬甯",children:[{value:"350203",label:"鎬濇槑鍖"},{value:"350205",label:"娴锋钵鍖"},{value:"350206",label:"婀栭噷鍖"},{value:"350211",label:"闆嗙編鍖"},{value:"350212",label:"鍚屽畨鍖"},{value:"350213",label:"缈斿畨鍖"}]},{value:"350300",label:"鑾嗙敯甯",children:[{value:"350302",label:"鍩庡帰鍖"},{value:"350303",label:"娑垫睙鍖"},{value:"350304",label:"鑽斿煄鍖"},{value:"350305",label:"绉灞垮尯"},{value:"350322",label:"浠欐父鍘"}]},{value:"350400",label:"涓夋槑甯",children:[{value:"350402",label:"姊呭垪鍖"},{value:"350403",label:"涓夊厓鍖"},{value:"350421",label:"鏄庢邯鍘"},{value:"350423",label:"娓呮祦鍘"},{value:"350424",label:"瀹佸寲鍘"},{value:"350425",label:"澶х敯鍘"},{value:"350426",label:"灏ゆ邯鍘"},{value:"350427",label:"娌欏幙"},{value:"350428",label:"灏嗕箰鍘"},{value:"350429",label:"娉板畞鍘"},{value:"350430",label:"寤哄畞鍘"},{value:"350481",label:"姘稿畨甯"}]},{value:"350500",label:"娉夊窞甯",children:[{value:"350502",label:"椴ゅ煄鍖"},{value:"350503",label:"涓版辰鍖"},{value:"350504",label:"娲涙睙鍖"},{value:"350505",label:"娉夋腐鍖"},{value:"350521",label:"鎯犲畨鍘"},{value:"350524",label:"瀹夋邯鍘"},{value:"350525",label:"姘告槬鍘"},{value:"350526",label:"寰峰寲鍘"},{value:"350527",label:"閲戦棬鍘"},{value:"350581",label:"鐭崇嫯甯"},{value:"350582",label:"鏅嬫睙甯"},{value:"350583",label:"鍗楀畨甯"}]},{value:"350600",label:"婕冲窞甯",children:[{value:"350602",label:"鑺楀煄鍖"},{value:"350603",label:"榫欐枃鍖"},{value:"350622",label:"浜戦渼鍘"},{value:"350623",label:"婕虫郸鍘"},{value:"350624",label:"璇忓畨鍘"},{value:"350625",label:"闀挎嘲鍘"},{value:"350626",label:"涓滃北鍘"},{value:"350627",label:"鍗楅潠鍘"},{value:"350628",label:"骞冲拰鍘"},{value:"350629",label:"鍗庡畨鍘"},{value:"350681",label:"榫欐捣甯"}]},{value:"350700",label:"鍗楀钩甯",children:[{value:"350702",label:"寤跺钩鍖"},{value:"350721",label:"椤烘槍鍘"},{value:"350722",label:"娴﹀煄鍘"},{value:"350723",label:"鍏夋辰鍘"},{value:"350724",label:"鏉炬邯鍘"},{value:"350725",label:"鏀垮拰鍘"},{value:"350781",label:"閭垫甯"},{value:"350782",label:"姝﹀し灞卞競"},{value:"350783",label:"寤虹摨甯"},{value:"350703",label:"寤洪槼鍖"}]},{value:"350800",label:"榫欏博甯",children:[{value:"350802",label:"鏂扮綏鍖"},{value:"350821",label:"闀挎眬鍘"},{value:"350803",label:"姘稿畾鍖"},{value:"350823",label:"涓婃澀鍘"},{value:"350824",label:"姝﹀钩鍘"},{value:"350825",label:"杩炲煄鍘"},{value:"350881",label:"婕冲钩甯"}]},{value:"350900",label:"瀹佸痉甯",children:[{value:"350902",label:"钑夊煄鍖"},{value:"350921",label:"闇炴郸鍘"},{value:"350922",label:"鍙ょ敯鍘"},{value:"350923",label:"灞忓崡鍘"},{value:"350924",label:"瀵垮畞鍘"},{value:"350925",label:"鍛ㄥ畞鍘"},{value:"350926",label:"鏌樿崳鍘"},{value:"350981",label:"绂忓畨甯"},{value:"350982",label:"绂忛紟甯"}]}]},{value:'360000',label:'姹熻タ鐪',children:[{value:"360100",label:"鍗楁槍甯",children:[{value:"360102",label:"涓滄箹鍖"},{value:"360103",label:"瑗挎箹鍖"},{value:"360104",label:"闈掍簯璋卞尯"},{value:"360105",label:"婀鹃噷鍖"},{value:"360111",label:"闈掑北婀栧尯"},{value:"360121",label:"鍗楁槍鍘"},{value:"360112",label:"鏂板缓鍖"},{value:"360123",label:"瀹変箟鍘"},{value:"360124",label:"杩涜搐鍘"}]},{value:"360200",label:"鏅痉闀囧競",children:[{value:"360202",label:"鏄屾睙鍖"},{value:"360203",label:"鐝犲北鍖"},{value:"360222",label:"娴鍘"},{value:"360281",label:"涔愬钩甯"}]},{value:"360300",label:"钀嶄埂甯",children:[{value:"360302",label:"瀹夋簮鍖"},{value:"360313",label:"婀樹笢鍖"},{value:"360321",label:"鑾茶姳鍘"},{value:"360322",label:"涓婃牀鍘"},{value:"360323",label:"鑺︽邯鍘"}]},{value:"360400",label:"涔濇睙甯",children:[{value:"360402",label:"婵傛邯鍖"},{value:"360403",label:"娴旈槼鍖"},{value:"360404",label:"鏌存鍖"},{value:"360423",label:"姝﹀畞鍘"},{value:"360424",label:"淇按鍘"},{value:"360425",label:"姘镐慨鍘"},{value:"360426",label:"寰峰畨鍘"},{value:"360428",label:"閮芥槍鍘"},{value:"360429",label:"婀栧彛鍘"},{value:"360430",label:"褰辰鍘"},{value:"360481",label:"鐟炴槍甯"},{value:"360482",label:"鍏遍潚鍩庡競"},{value:"360483",label:"搴愬北甯"}]},{value:"360500",label:"鏂颁綑甯",children:[{value:"360502",label:"娓濇按鍖"},{value:"360521",label:"鍒嗗疁鍘"}]},{value:"360600",label:"楣版江甯",children:[{value:"360602",label:"鏈堟箹鍖"},{value:"360622",label:"浣欐睙鍘"},{value:"360681",label:"璐垫邯甯"}]},{value:"360700",label:"璧e窞甯",children:[{value:"360702",label:"绔犺础鍖"},{value:"360704",label:"璧e幙鍖"},{value:"360722",label:"淇′赴鍘"},{value:"360723",label:"澶т綑鍘"},{value:"360724",label:"涓婄姽鍘"},{value:"360725",label:"宕囦箟鍘"},{value:"360726",label:"瀹夎繙鍘"},{value:"360727",label:"榫欏崡鍘"},{value:"360728",label:"瀹氬崡鍘"},{value:"360729",label:"鍏ㄥ崡鍘"},{value:"360730",label:"瀹侀兘鍘"},{value:"360731",label:"浜庨兘鍘"},{value:"360732",label:"鍏村浗鍘"},{value:"360733",label:"浼氭槍鍘"},{value:"360734",label:"瀵讳箤鍘"},{value:"360735",label:"鐭冲煄鍘"},{value:"360781",label:"鐟為噾甯"},{value:"360703",label:"鍗楀悍鍖"}]},{value:"360800",label:"鍚夊畨甯",children:[{value:"360802",label:"鍚夊窞鍖"},{value:"360803",label:"闈掑師鍖"},{value:"360821",label:"鍚夊畨鍘"},{value:"360822",label:"鍚夋按鍘"},{value:"360823",label:"宄℃睙鍘"},{value:"360824",label:"鏂板共鍘"},{value:"360825",label:"姘镐赴鍘"},{value:"360826",label:"娉板拰鍘"},{value:"360827",label:"閬傚窛鍘"},{value:"360828",label:"涓囧畨鍘"},{value:"360829",label:"瀹夌鍘"},{value:"360830",label:"姘告柊鍘"},{value:"360881",label:"浜曞唸灞卞競"}]},{value:"360900",label:"瀹滄槬甯",children:[{value:"360902",label:"琚佸窞鍖"},{value:"360921",label:"濂夋柊鍘"},{value:"360922",label:"涓囪浇鍘"},{value:"360923",label:"涓婇珮鍘"},{value:"360924",label:"瀹滀赴鍘"},{value:"360925",label:"闈栧畨鍘"},{value:"360926",label:"閾滈紦鍘"},{value:"360981",label:"涓板煄甯"},{value:"360982",label:"妯熸爲甯"},{value:"360983",label:"楂樺畨甯"}]},{value:"361000",label:"鎶氬窞甯",children:[{value:"361002",label:"涓村窛鍖"},{value:"361021",label:"鍗楀煄鍘"},{value:"361022",label:"榛庡窛鍘"},{value:"361023",label:"鍗椾赴鍘"},{value:"361024",label:"宕囦粊鍘"},{value:"361025",label:"涔愬畨鍘"},{value:"361026",label:"瀹滈粍鍘"},{value:"361027",label:"閲戞邯鍘"},{value:"361028",label:"璧勬邯鍘"},{value:"361003",label:"涓滀埂鍖"},{value:"361030",label:"骞挎槍鍘"}]},{value:"361100",label:"涓婇ザ甯",children:[{value:"361102",label:"淇″窞鍖"},{value:"361121",label:"涓婇ザ鍘"},{value:"361103",label:"骞夸赴鍖"},{value:"361123",label:"鐜夊北鍘"},{value:"361124",label:"閾呭北鍘"},{value:"361125",label:"妯嘲鍘"},{value:"361126",label:"寮嬮槼鍘"},{value:"361127",label:"浣欏共鍘"},{value:"361128",label:"閯遍槼鍘"},{value:"361129",label:"涓囧勾鍘"},{value:"361130",label:"濠烘簮鍘"},{value:"361181",label:"寰峰叴甯"}]}]},{value:'370000',label:'灞变笢鐪',children:[{value:"370100",label:"娴庡崡甯",children:[{value:"370102",label:"鍘嗕笅鍖"},{value:"370103",label:"甯備腑鍖"},{value:"370104",label:"妲愯崼鍖"},{value:"370105",label:"澶╂ˉ鍖"},{value:"370112",label:"鍘嗗煄鍖"},{value:"370113",label:"闀挎竻鍖"},{value:"370124",label:"骞抽槾鍘"},{value:"370125",label:"娴庨槼鍘"},{value:"370126",label:"鍟嗘渤鍘"},{value:"370114",label:"绔犱笜鍖"},{value:"370171",label:"娴庡崡楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"370200",label:"闈掑矝甯",children:[{value:"370202",label:"甯傚崡鍖"},{value:"370203",label:"甯傚寳鍖"},{value:"370211",label:"榛勫矝鍖"},{value:"370212",label:"宕傚北鍖"},{value:"370213",label:"鏉庢钵鍖"},{value:"370214",label:"鍩庨槼鍖"},{value:"370281",label:"鑳跺窞甯"},{value:"370215",label:"鍗冲ⅷ鍖"},{value:"370283",label:"骞冲害甯"},{value:"370285",label:"鑾辫タ甯"},{value:"370271",label:"闈掑矝楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"370300",label:"娣勫崥甯",children:[{value:"370302",label:"娣勫窛鍖"},{value:"370303",label:"寮犲簵鍖"},{value:"370304",label:"鍗氬北鍖"},{value:"370305",label:"涓存穭鍖"},{value:"370306",label:"鍛ㄦ潙鍖"},{value:"370321",label:"妗撳彴鍘"},{value:"370322",label:"楂橀潚鍘"},{value:"370323",label:"娌傛簮鍘"}]},{value:"370400",label:"鏋e簞甯",children:[{value:"370402",label:"甯備腑鍖"},{value:"370403",label:"钖涘煄鍖"},{value:"370404",label:"宄勫煄鍖"},{value:"370405",label:"鍙板効搴勫尯"},{value:"370406",label:"灞变涵鍖"},{value:"370481",label:"婊曞窞甯"}]},{value:"370500",label:"涓滆惀甯",children:[{value:"370502",label:"涓滆惀鍖"},{value:"370503",label:"娌冲彛鍖"},{value:"370521",label:"鍨﹀埄鍘"},{value:"370522",label:"鍒╂触鍘"},{value:"370523",label:"骞块ザ鍘"},{value:"370589",label:"瑗垮煄鍖"},{value:"370571",label:"涓滆惀缁忔祹鎶鏈紑鍙戝尯"},{value:"370572",label:"涓滆惀娓粡娴庡紑鍙戝尯"}]},{value:"370600",label:"鐑熷彴甯",children:[{value:"370602",label:"鑺濈綐鍖"},{value:"370611",label:"绂忓北鍖"},{value:"370612",label:"鐗熷钩鍖"},{value:"370613",label:"鑾卞北鍖"},{value:"370634",label:"闀垮矝鍘"},{value:"370681",label:"榫欏彛甯"},{value:"370682",label:"鑾遍槼甯"},{value:"370683",label:"鑾卞窞甯"},{value:"370684",label:"钃幈甯"},{value:"370685",label:"鎷涜繙甯"},{value:"370686",label:"鏍栭湠甯"},{value:"370687",label:"娴烽槼甯"},{value:"370671",label:"鐑熷彴楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"370672",label:"鐑熷彴缁忔祹鎶鏈紑鍙戝尯"}]},{value:"370700",label:"娼嶅潑甯",children:[{value:"370702",label:"娼嶅煄鍖"},{value:"370703",label:"瀵掍涵鍖"},{value:"370704",label:"鍧婂瓙鍖"},{value:"370705",label:"濂庢枃鍖"},{value:"370724",label:"涓存湊鍘"},{value:"370725",label:"鏄屼箰鍘"},{value:"370772",label:"娼嶅潑婊ㄦ捣缁忔祹鎶鏈紑鍙戝尯"},{value:"370781",label:"闈掑窞甯"},{value:"370782",label:"璇稿煄甯"},{value:"370783",label:"瀵垮厜甯"},{value:"370784",label:"瀹変笜甯"},{value:"370785",label:"楂樺瘑甯"},{value:"370786",label:"鏄岄倯甯"}]},{value:"370800",label:"娴庡畞甯",children:[{value:"370811",label:"浠诲煄鍖"},{value:"370826",label:"寰北鍘"},{value:"370827",label:"楸煎彴鍘"},{value:"370828",label:"閲戜埂鍘"},{value:"370829",label:"鍢夌ゥ鍘"},{value:"370830",label:"姹朵笂鍘"},{value:"370831",label:"娉楁按鍘"},{value:"370832",label:"姊佸北鍘"},{value:"370881",label:"鏇查槣甯"},{value:"370812",label:"鍏栧窞鍖"},{value:"370883",label:"閭瑰煄甯"},{value:"370871",label:"娴庡畞楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"370900",label:"娉板畨甯",children:[{value:"370902",label:"娉板北鍖"},{value:"370903",label:"宀卞渤鍖"},{value:"370921",label:"瀹侀槼鍘"},{value:"370923",label:"涓滃钩鍘"},{value:"370982",label:"鏂版嘲甯"},{value:"370983",label:"鑲ュ煄甯"}]},{value:"371000",label:"濞佹捣甯",children:[{value:"371002",label:"鐜繝鍖"},{value:"371003",label:"鏂囩櫥鍖"},{value:"371082",label:"鑽f垚甯"},{value:"371083",label:"涔冲北甯"},{value:"371071",label:"濞佹捣鐏偓楂樻妧鏈骇涓氬紑鍙戝尯"},{value:"371072",label:"濞佹捣缁忔祹鎶鏈紑鍙戝尯"},{value:"371073",label:"濞佹捣涓存腐缁忔祹鎶鏈紑鍙戝尯"}]},{value:"371100",label:"鏃ョ収甯",children:[{value:"371102",label:"涓滄腐鍖"},{value:"371103",label:"宀氬北鍖"},{value:"371121",label:"浜旇幉鍘"},{value:"371122",label:"鑾掑幙"},{value:"371171",label:"鏃ョ収缁忔祹鎶鏈紑鍙戝尯"},{value:"371172",label:"鏃ョ収鍥介檯娴锋磱鍩"}]},{value:"371200",label:"鑾辫姕甯",children:[{value:"371202",label:"鑾卞煄鍖"},{value:"371203",label:"閽㈠煄鍖"}]},{value:"371300",label:"涓存矀甯",children:[{value:"371302",label:"鍏板北鍖"},{value:"371311",label:"缃楀簞鍖"},{value:"371312",label:"娌充笢鍖"},{value:"371321",label:"娌傚崡鍘"},{value:"371322",label:"閮煄鍘"},{value:"371323",label:"娌傛按鍘"},{value:"371324",label:"鍏伴櫟鍘"},{value:"371325",label:"璐瑰幙"},{value:"371326",label:"骞抽倯鍘"},{value:"371327",label:"鑾掑崡鍘"},{value:"371328",label:"钂欓槾鍘"},{value:"371329",label:"涓存箔鍘"},{value:"371371",label:"涓存矀楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"371373",label:"涓存矀涓存腐缁忔祹寮鍙戝尯"},{value:"371372",label:"涓存矀缁忔祹鎶鏈紑鍙戝尯"}]},{value:"371400",label:"寰峰窞甯",children:[{value:"371402",label:"寰峰煄鍖"},{value:"371403",label:"闄靛煄鍖"},{value:"371422",label:"瀹佹触鍘"},{value:"371423",label:"搴嗕簯鍘"},{value:"371424",label:"涓撮倯鍘"},{value:"371425",label:"榻愭渤鍘"},{value:"371426",label:"骞冲師鍘"},{value:"371427",label:"澶忔触鍘"},{value:"371428",label:"姝﹀煄鍘"},{value:"371481",label:"涔愰櫟甯"},{value:"371482",label:"绂瑰煄甯"},{value:"371471",label:"寰峰窞缁忔祹鎶鏈紑鍙戝尯"},{value:"371472",label:"寰峰窞杩愭渤缁忔祹寮鍙戝尯"}]},{value:"371500",label:"鑱婂煄甯",children:[{value:"371502",label:"涓滄槍搴滃尯"},{value:"371521",label:"闃宠胺鍘"},{value:"371522",label:"鑾樺幙"},{value:"371523",label:"鑼屽钩鍘"},{value:"371524",label:"涓滈樋鍘"},{value:"371525",label:"鍐犲幙"},{value:"371526",label:"楂樺攼鍘"},{value:"371581",label:"涓存竻甯"}]},{value:"371600",label:"婊ㄥ窞甯",children:[{value:"371602",label:"婊ㄥ煄鍖"},{value:"371621",label:"鎯犳皯鍘"},{value:"371622",label:"闃充俊鍘"},{value:"371623",label:"鏃犳#鍘"},{value:"371603",label:"娌惧寲鍖"},{value:"371625",label:"鍗氬叴鍘"},{value:"371626",label:"閭瑰钩鍘"}]},{value:"371700",label:"鑿忔辰甯",children:[{value:"371702",label:"鐗′腹鍖"},{value:"371721",label:"鏇瑰幙"},{value:"371722",label:"鍗曞幙"},{value:"371723",label:"鎴愭鍘"},{value:"371724",label:"宸ㄩ噹鍘"},{value:"371725",label:"閮撳煄鍘"},{value:"371726",label:"閯勫煄鍘"},{value:"371727",label:"瀹氶櫠鍖"},{value:"371728",label:"涓滄槑鍘"},{value:"371771",label:"鑿忔辰缁忔祹鎶鏈紑鍙戝尯"},{value:"371772",label:"鑿忔辰楂樻柊鎶鏈紑鍙戝尯"}]}]},{value:'410000',label:'娌冲崡鐪',children:[{value:"410100",label:"閮戝窞甯",children:[{value:"410102",label:"涓師鍖"},{value:"410103",label:"浜屼竷鍖"},{value:"410104",label:"绠″煄鍥炴棌鍖"},{value:"410105",label:"閲戞按鍖"},{value:"410106",label:"涓婅鍖"},{value:"410108",label:"鎯犳祹鍖"},{value:"410122",label:"涓墴鍘"},{value:"410181",label:"宸╀箟甯"},{value:"410182",label:"鑽ラ槼甯"},{value:"410183",label:"鏂板瘑甯"},{value:"410184",label:"鏂伴儜甯"},{value:"410185",label:"鐧诲皝甯"},{value:"410171",label:"閮戝窞缁忔祹鎶鏈紑鍙戝尯"},{value:"410172",label:"閮戝窞楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"410173",label:"閮戝窞鑸┖娓粡娴庣患鍚堝疄楠屽尯"}]},{value:"410200",label:"寮灏佸競",children:[{value:"410202",label:"榫欎涵鍖"},{value:"410203",label:"椤烘渤鍥炴棌鍖"},{value:"410204",label:"榧撴ゼ鍖"},{value:"410205",label:"绂圭帇鍙板尯"},{value:"410211",label:"閲戞槑鍖"},{value:"410221",label:"鏉炲幙"},{value:"410222",label:"閫氳鍘"},{value:"410223",label:"灏夋皬鍘"},{value:"410225",label:"鍏拌冨幙"},{value:"410212",label:"绁ョ鍖"}]},{value:"410300",label:"娲涢槼甯",children:[{value:"410302",label:"鑰佸煄鍖"},{value:"410303",label:"瑗垮伐鍖"},{value:"410304",label:"寤涙渤鍥炴棌鍖"},{value:"410305",label:"娑цタ鍖"},{value:"410306",label:"鍚夊埄鍖"},{value:"410307",label:"娲涢緳鍖"},{value:"410322",label:"瀛熸触鍘"},{value:"410323",label:"鏂板畨鍘"},{value:"410324",label:"鏍惧窛鍘"},{value:"410325",label:"宓╁幙"},{value:"410326",label:"姹濋槼鍘"},{value:"410327",label:"瀹滈槼鍘"},{value:"410328",label:"娲涘畞鍘"},{value:"410329",label:"浼婂窛鍘"},{value:"410381",label:"鍋冨笀甯"},{value:"410371",label:"娲涢槼楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"471005",label:"鍏跺畠鍖"}]},{value:"410400",label:"骞抽《灞卞競",children:[{value:"410402",label:"鏂板崕鍖"},{value:"410403",label:"鍗笢鍖"},{value:"410404",label:"鐭抽緳鍖"},{value:"410411",label:"婀涙渤鍖"},{value:"410421",label:"瀹濅赴鍘"},{value:"410422",label:"鍙跺幙"},{value:"410423",label:"椴佸北鍘"},{value:"410425",label:"閮忓幙"},{value:"410481",label:"鑸為挗甯"},{value:"410482",label:"姹濆窞甯"},{value:"410471",label:"骞抽《灞遍珮鏂版妧鏈骇涓氬紑鍙戝尯"},{value:"410472",label:"骞抽《灞卞競鏂板煄鍖"}]},{value:"410500",label:"瀹夐槼甯",children:[{value:"410502",label:"鏂囧嘲鍖"},{value:"410503",label:"鍖楀叧鍖"},{value:"410505",label:"娈烽兘鍖"},{value:"410506",label:"榫欏畨鍖"},{value:"410522",label:"瀹夐槼鍘"},{value:"410523",label:"姹ら槾鍘"},{value:"410526",label:"婊戝幙"},{value:"410527",label:"鍐呴粍鍘"},{value:"410581",label:"鏋楀窞甯"},{value:"410571",label:"瀹夐槼楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"410600",label:"楣ゅ甯",children:[{value:"410602",label:"楣ゅ北鍖"},{value:"410603",label:"灞卞煄鍖"},{value:"410611",label:"娣囨花鍖"},{value:"410621",label:"娴氬幙"},{value:"410622",label:"娣囧幙"},{value:"410671",label:"楣ゅ缁忔祹鎶鏈紑鍙戝尯"}]},{value:"410700",label:"鏂颁埂甯",children:[{value:"410702",label:"绾㈡棗鍖"},{value:"410703",label:"鍗花鍖"},{value:"410704",label:"鍑ゆ硥鍖"},{value:"410711",label:"鐗ч噹鍖"},{value:"410721",label:"鏂颁埂鍘"},{value:"410724",label:"鑾峰槈鍘"},{value:"410725",label:"鍘熼槼鍘"},{value:"410726",label:"寤舵触鍘"},{value:"410727",label:"灏佷笜鍘"},{value:"410728",label:"闀垮灒鍘"},{value:"410781",label:"鍗緣甯"},{value:"410782",label:"杈夊幙甯"},{value:"410771",label:"鏂颁埂楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"410773",label:"鏂颁埂甯傚钩鍘熷煄涔′竴浣撳寲绀鸿寖鍖"},{value:"410772",label:"鏂颁埂缁忔祹鎶鏈紑鍙戝尯"}]},{value:"410800",label:"鐒︿綔甯",children:[{value:"410802",label:"瑙f斁鍖"},{value:"410803",label:"涓珯鍖"},{value:"410804",label:"椹潙鍖"},{value:"410811",label:"灞遍槼鍖"},{value:"410821",label:"淇鍘"},{value:"410822",label:"鍗氱埍鍘"},{value:"410823",label:"姝﹂櫉鍘"},{value:"410825",label:"娓╁幙"},{value:"410882",label:"娌侀槼甯"},{value:"410883",label:"瀛熷窞甯"},{value:"410871",label:"鐒︿綔鍩庝埂涓浣撳寲绀鸿寖鍖"}]},{value:"410900",label:"婵槼甯",children:[{value:"410902",label:"鍗庨緳鍖"},{value:"410922",label:"娓呬赴鍘"},{value:"410923",label:"鍗椾箰鍘"},{value:"410926",label:"鑼冨幙"},{value:"410927",label:"鍙板墠鍘"},{value:"410928",label:"婵槼鍘"},{value:"410971",label:"娌冲崡婵槼宸ヤ笟鍥尯"},{value:"410972",label:"婵槼缁忔祹鎶鏈紑鍙戝尯"}]},{value:"411000",label:"璁告槍甯",children:[{value:"411002",label:"榄忛兘鍖"},{value:"411003",label:"寤哄畨鍖"},{value:"411024",label:"閯㈤櫟鍘"},{value:"411025",label:"瑗勫煄鍘"},{value:"411081",label:"绂瑰窞甯"},{value:"411082",label:"闀胯憶甯"},{value:"411071",label:"璁告槍缁忔祹鎶鏈紑鍙戝尯"}]},{value:"411100",label:"婕渤甯",children:[{value:"411102",label:"婧愭眹鍖"},{value:"411103",label:"閮惧煄鍖"},{value:"411104",label:"鍙櫟鍖"},{value:"411121",label:"鑸為槼鍘"},{value:"411122",label:"涓撮鍘"},{value:"411171",label:"婕渤缁忔祹鎶鏈紑鍙戝尯"}]},{value:"411200",label:"涓夐棬宄″競",children:[{value:"411202",label:"婀栨花鍖"},{value:"411221",label:"娓戞睜鍘"},{value:"411222",label:"闄曞幙"},{value:"411224",label:"鍗㈡皬鍘"},{value:"411281",label:"涔夐┈甯"},{value:"411282",label:"鐏靛疂甯"},{value:"411203",label:"闄曞窞鍖"},{value:"411271",label:"娌冲崡涓夐棬宄$粡娴庡紑鍙戝尯"}]},{value:"411300",label:"鍗楅槼甯",children:[{value:"411302",label:"瀹涘煄鍖"},{value:"411303",label:"鍗ч緳鍖"},{value:"411321",label:"鍗楀彫鍘"},{value:"411322",label:"鏂瑰煄鍘"},{value:"411323",label:"瑗垮场鍘"},{value:"411324",label:"闀囧钩鍘"},{value:"411325",label:"鍐呬埂鍘"},{value:"411326",label:"娣呭窛鍘"},{value:"411327",label:"绀炬棗鍘"},{value:"411328",label:"鍞愭渤鍘"},{value:"411329",label:"鏂伴噹鍘"},{value:"411330",label:"妗愭煆鍘"},{value:"411381",label:"閭撳窞甯"},{value:"411371",label:"鍗楅槼楂樻柊鎶鏈骇涓氬紑鍙戝尯"},{value:"411372",label:"鍗楅槼甯傚煄涔′竴浣撳寲绀鸿寖鍖"}]},{value:"411400",label:"鍟嗕笜甯",children:[{value:"411402",label:"姊佸洯鍖"},{value:"411403",label:"鐫㈤槼鍖"},{value:"411421",label:"姘戞潈鍘"},{value:"411422",label:"鐫㈠幙"},{value:"411423",label:"瀹侀櫟鍘"},{value:"411424",label:"鏌樺煄鍘"},{value:"411425",label:"铏炲煄鍘"},{value:"411426",label:"澶忛倯鍘"},{value:"411481",label:"姘稿煄甯"},{value:"411471",label:"璞笢缁煎悎鐗╂祦浜т笟鑱氶泦鍖"},{value:"411472",label:"娌冲崡鍟嗕笜缁忔祹寮鍙"}]},{value:"411500",label:"淇¢槼甯",children:[{value:"411502",label:"娴夋渤鍖"},{value:"411503",label:"骞虫ˉ鍖"},{value:"411521",label:"缃楀北鍘"},{value:"411522",label:"鍏夊北鍘"},{value:"411523",label:"鏂板幙"},{value:"411524",label:"鍟嗗煄鍘"},{value:"411525",label:"鍥哄鍘"},{value:"411526",label:"娼㈠窛鍘"},{value:"411527",label:"娣花鍘"},{value:"411528",label:"鎭幙"},{value:"411571",label:"淇¢槼楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"411600",label:"鍛ㄥ彛甯",children:[{value:"411602",label:"宸濇眹鍖"},{value:"411621",label:"鎵舵矡鍘"},{value:"411622",label:"瑗垮崕鍘"},{value:"411623",label:"鍟嗘按鍘"},{value:"411624",label:"娌堜笜鍘"},{value:"411625",label:"閮稿煄鍘"},{value:"411626",label:"娣槼鍘"},{value:"411627",label:"澶悍鍘"},{value:"411628",label:"楣块倯鍘"},{value:"411681",label:"椤瑰煄甯"},{value:"411671",label:"娌冲崡鍛ㄥ彛缁忔祹寮鍙戝尯"}]},{value:"411700",label:"椹婚┈搴楀競",children:[{value:"411702",label:"椹垮煄鍖"},{value:"411721",label:"瑗垮钩鍘"},{value:"411722",label:"涓婅敗鍘"},{value:"411723",label:"骞宠垎鍘"},{value:"411724",label:"姝i槼鍘"},{value:"411725",label:"纭北鍘"},{value:"411726",label:"娉岄槼鍘"},{value:"411727",label:"姹濆崡鍘"},{value:"411628",label:"閬傚钩鍘"},{value:"411729",label:"鏂拌敗鍘"},{value:"411771",label:"娌冲崡椹婚┈搴楃粡娴庡紑鍙戝尯"}]}]},{value:'420000',label:'婀栧寳鐪',children:[{value:"420100",label:"姝︽眽甯",children:[{value:"420101",label:"甯傝緰鍖"},{value:"420102",label:"姹熷哺鍖"},{value:"420103",label:"姹熸眽鍖"},{value:"420104",label:"纭氬彛鍖"},{value:"420105",label:"姹夐槼鍖"},{value:"420106",label:"姝︽槍鍖"},{value:"420107",label:"闈掑北鍖"},{value:"420111",label:"娲北鍖"},{value:"420112",label:"涓滆タ婀栧尯"},{value:"420113",label:"姹夊崡鍖"},{value:"420114",label:"钄$敻鍖"},{value:"420115",label:"姹熷鍖"},{value:"420116",label:"榛勯檪鍖"},{value:"420117",label:"鏂版床鍖"}]},{value:"420200",label:"榛勭煶甯",children:[{value:"420201",label:"甯傝緰鍖"},{value:"420202",label:"榛勭煶娓尯"},{value:"420203",label:"瑗垮灞卞尯"},{value:"420204",label:"涓嬮檰鍖"},{value:"420205",label:"閾佸北鍖"},{value:"420222",label:"闃虫柊鍘"},{value:"420281",label:"澶у喍甯"}]},{value:"420300",label:"鍗佸牥甯",children:[{value:"420301",label:"甯傝緰鍖"},{value:"420302",label:"鑼呯鍖"},{value:"420303",label:"寮犳咕鍖"},{value:"420304",label:"閮ч槼鍖"},{value:"420322",label:"閮цタ鍘"},{value:"420323",label:"绔瑰北鍘"},{value:"420324",label:"绔规邯鍘"},{value:"420325",label:"鎴垮幙"},{value:"420381",label:"涓规睙鍙e競"}]},{value:"420500",label:"瀹滄槍甯",children:[{value:"420501",label:"甯傝緰鍖"},{value:"420502",label:"瑗块櫟鍖"},{value:"420503",label:"浼嶅宀楀尯"},{value:"420504",label:"鐐瑰啗鍖"},{value:"420505",label:"鐚囦涵鍖"},{value:"420506",label:"澶烽櫟鍖"},{value:"420525",label:"杩滃畨鍘"},{value:"420526",label:"鍏村北鍘"},{value:"420527",label:"绉綊鍘"},{value:"420528",label:"闀块槼鍦熷鏃忚嚜娌诲幙"},{value:"420529",label:"浜斿嘲鍦熷鏃忚嚜娌诲幙"},{value:"420581",label:"瀹滈兘甯"},{value:"420582",label:"褰撻槼甯"},{value:"420583",label:"鏋濇睙甯"}]},{value:"420600",label:"瑗勯槼甯",children:[{value:"420601",label:"甯傝緰鍖"},{value:"420602",label:"瑗勫煄鍖"},{value:"420606",label:"妯婂煄鍖"},{value:"420607",label:"瑗勫窞鍖"},{value:"420624",label:"鍗楁汲鍘"},{value:"420625",label:"璋峰煄鍘"},{value:"420626",label:"淇濆悍鍘"},{value:"420682",label:"鑰佹渤鍙e競"},{value:"420683",label:"鏋i槼甯"},{value:"420684",label:"瀹滃煄甯"}]},{value:"420700",label:"閯傚窞甯",children:[{value:"420701",label:"甯傝緰鍖"},{value:"420702",label:"姊佸瓙婀栧尯"},{value:"420703",label:"鍗庡鍖"},{value:"420704",label:"閯傚煄鍖"}]},{value:"420800",label:"鑽嗛棬甯",children:[{value:"420801",label:"甯傝緰鍖"},{value:"420802",label:"涓滃疂鍖"},{value:"420804",label:"鎺囧垁鍖"},{value:"420821",label:"浜北鍘"},{value:"420822",label:"娌欐磱鍘"},{value:"420881",label:"閽熺ゥ甯"}]},{value:"420900",label:"瀛濇劅甯",children:[{value:"420901",label:"甯傝緰鍖"},{value:"420902",label:"瀛濆崡鍖"},{value:"420921",label:"瀛濇槍鍘"},{value:"420922",label:"澶ф偀鍘"},{value:"420923",label:"浜戞ⅵ鍘"},{value:"420981",label:"搴斿煄甯"},{value:"420982",label:"瀹夐檰甯"},{value:"420984",label:"姹夊窛甯"}]},{value:"421000",label:"鑽嗗窞甯",children:[{value:"421001",label:"甯傝緰鍖"},{value:"421002",label:"娌欏競鍖"},{value:"421003",label:"鑽嗗窞鍖"},{value:"421022",label:"鍏畨鍘"},{value:"421023",label:"鐩戝埄鍘"},{value:"421024",label:"姹熼櫟鍘"},{value:"421071",label:"鑽嗗窞缁忔祹鎶鏈紑鍙戝尯"},{value:"421081",label:"鐭抽甯"},{value:"421083",label:"娲箹甯"},{value:"421087",label:"鏉炬粙甯"}]},{value:"421100",label:"榛勫唸甯",children:[{value:"421101",label:"甯傝緰鍖"},{value:"421102",label:"榛勫窞鍖"},{value:"421121",label:"鍥㈤鍘"},{value:"421122",label:"绾㈠畨鍘"},{value:"421123",label:"缃楃敯鍘"},{value:"421124",label:"鑻卞北鍘"},{value:"421125",label:"娴犳按鍘"},{value:"421126",label:"钑叉槬鍘"},{value:"421127",label:"榛勬鍘"},{value:"421171",label:"榫欐劅婀栫鐞嗗尯"},{value:"421181",label:"楹诲煄甯"},{value:"421182",label:"姝︾┐甯"}]},{value:"421200",label:"鍜稿畞甯",children:[{value:"421201",label:"甯傝緰鍖"},{value:"421202",label:"鍜稿畨鍖"},{value:"421221",label:"鍢夐奔鍘"},{value:"421222",label:"閫氬煄鍘"},{value:"421223",label:"宕囬槼鍘"},{value:"421224",label:"閫氬北鍘"},{value:"421281",label:"璧ゅ甯"}]},{value:"421300",label:"闅忓窞甯",children:[{value:"421301",label:"甯傝緰鍖"},{value:"421303",label:"鏇鹃兘鍖"},{value:"421321",label:"闅忓幙"},{value:"421381",label:"骞挎按甯"}]},{value:"422800",label:"鎭╂柦鍦熷鏃忚嫍鏃忚嚜娌诲窞",children:[{value:"422801",label:"鎭╂柦甯"},{value:"422802",label:"鍒╁窛甯"},{value:"422822",label:"寤哄鍘"},{value:"422823",label:"宸翠笢鍘"},{value:"422825",label:"瀹f仼鍘"},{value:"422826",label:"鍜镐赴鍘"},{value:"422827",label:"鏉ュ嚖鍘"},{value:"422828",label:"楣ゅ嘲鍘"}]},{value:"429000",label:"鐪佺洿杈栧幙绾ц鏀垮尯鍒",children:[{value:"429004",label:"浠欐甯"},{value:"429005",label:"娼滄睙甯"},{value:"429006",label:"澶╅棬甯"},{value:"429021",label:"绁炲啘鏋舵灄鍖"}]}]},{value:'430000',label:'婀栧崡鐪',children:[{value:"430100",label:"闀挎矙甯",children:[{value:"430101",label:"甯傝緰鍖"},{value:"430102",label:"鑺欒搲鍖"},{value:"430103",label:"澶╁績鍖"},{value:"430104",label:"宀抽簱鍖"},{value:"430105",label:"寮绂忓尯"},{value:"430111",label:"闆ㄨ姳鍖"},{value:"430112",label:"鏈涘煄鍖"},{value:"430121",label:"闀挎矙鍘"},{value:"430181",label:"娴忛槼甯"},{value:"430182",label:"瀹佷埂甯"}]},{value:"430200",label:"鏍床甯",children:[{value:"430201",label:"甯傝緰鍖"},{value:"430202",label:"鑽峰鍖"},{value:"430203",label:"鑺︽窞鍖"},{value:"430204",label:"鐭冲嘲鍖"},{value:"430211",label:"澶╁厓鍖"},{value:"430221",label:"鏍床鍘"},{value:"430223",label:"鏀稿幙"},{value:"430224",label:"鑼堕櫟鍘"},{value:"430225",label:"鐐庨櫟鍘"},{value:"430271",label:"浜戦緳绀鸿寖鍖"},{value:"430281",label:"閱撮櫟甯"}]},{value:"430300",label:"婀樻江甯",children:[{value:"430301",label:"甯傝緰鍖"},{value:"430302",label:"闆ㄦ箹鍖"},{value:"430304",label:"宀冲鍖"},{value:"430321",label:"婀樻江鍘"},{value:"430371",label:"婀栧崡婀樻江楂樻柊鎶鏈骇涓氬洯鍖"},{value:"430372",label:"婀樻江鏄北绀鸿寖鍖"},{value:"430373",label:"婀樻江涔濆崕绀鸿寖鍖"},{value:"430381",label:"婀樹埂甯"},{value:"430382",label:"闊跺北甯"}]},{value:"430400",label:"琛¢槼甯",children:[{value:"430401",label:"甯傝緰鍖"},{value:"430405",label:"鐝犳櫀鍖"},{value:"430406",label:"闆佸嘲鍖"},{value:"430407",label:"鐭抽紦鍖"},{value:"430408",label:"钂告箻鍖"},{value:"430412",label:"鍗楀渤鍖"},{value:"430421",label:"琛¢槼鍘"},{value:"430422",label:"琛″崡鍘"},{value:"430423",label:"琛″北鍘"},{value:"430424",label:"琛′笢鍘"},{value:"430426",label:"绁佷笢鍘"},{value:"430471",label:"琛¢槼缁煎悎淇濈◣鍖"},{value:"430472",label:"婀栧崡琛¢槼楂樻柊鎶鏈骇涓氬洯鍖"},{value:"430473",label:"婀栧崡琛¢槼鏉炬湪缁忔祹寮鍙戝尯"},{value:"430481",label:"鑰掗槼甯"},{value:"430482",label:"甯稿畞甯"}]},{value:"430500",label:"閭甸槼甯",children:[{value:"430501",label:"甯傝緰鍖"},{value:"430502",label:"鍙屾竻鍖"},{value:"430503",label:"澶хゥ鍖"},{value:"430511",label:"鍖楀鍖"},{value:"430521",label:"閭典笢鍘"},{value:"430522",label:"鏂伴偟鍘"},{value:"430523",label:"閭甸槼鍘"},{value:"430524",label:"闅嗗洖鍘"},{value:"430525",label:"娲炲彛鍘"},{value:"430527",label:"缁ュ畞鍘"},{value:"430528",label:"鏂板畞鍘"},{value:"430529",label:"鍩庢鑻楁棌鑷不鍘"},{value:"430581",label:"姝﹀唸甯"}]},{value:"430600",label:"宀抽槼甯",children:[{value:"430601",label:"甯傝緰鍖"},{value:"430602",label:"宀抽槼妤煎尯"},{value:"430603",label:"浜戞邯鍖"},{value:"430611",label:"鍚涘北鍖"},{value:"430621",label:"宀抽槼鍘"},{value:"430623",label:"鍗庡鍘"},{value:"430624",label:"婀橀槾鍘"},{value:"430626",label:"骞虫睙鍘"},{value:"430671",label:"宀抽槼甯傚眻鍘熺鐞嗗尯"},{value:"430681",label:"姹ㄧ綏甯"},{value:"430682",label:"涓存箻甯"}]},{value:"430700",label:"甯稿痉甯",children:[{value:"430701",label:"甯傝緰鍖"},{value:"430702",label:"姝﹂櫟鍖"},{value:"430703",label:"榧庡煄鍖"},{value:"430721",label:"瀹変埂鍘"},{value:"430722",label:"姹夊鍘"},{value:"430723",label:"婢у幙"},{value:"430724",label:"涓存晶鍘"},{value:"430725",label:"妗冩簮鍘"},{value:"430726",label:"鐭抽棬鍘"},{value:"430771",label:"甯稿痉甯傝タ娲炲涵绠$悊鍖"},{value:"430781",label:"娲ュ競甯"}]},{value:"430800",label:"寮犲鐣屽競",children:[{value:"430801",label:"甯傝緰鍖"},{value:"430802",label:"姘稿畾鍖"},{value:"430811",label:"姝﹂櫟婧愬尯"},{value:"430821",label:"鎱堝埄鍘"},{value:"430822",label:"妗戞鍘"}]},{value:"430900",label:"鐩婇槼甯",children:[{value:"430901",label:"甯傝緰鍖"},{value:"430902",label:"璧勯槼鍖"},{value:"430903",label:"璧北鍖"},{value:"430921",label:"鍗楀幙"},{value:"430922",label:"妗冩睙鍘"},{value:"430923",label:"瀹夊寲鍘"},{value:"430971",label:"鐩婇槼甯傚ぇ閫氭箹绠$悊鍖"},{value:"430972",label:"婀栧崡鐩婇槼楂樻柊鎶鏈骇涓氬洯鍖"},{value:"430981",label:"娌呮睙甯"}]},{value:"431000",label:"閮村窞甯",children:[{value:"431001",label:"甯傝緰鍖"},{value:"431002",label:"鍖楁箹鍖"},{value:"431003",label:"鑻忎粰鍖"},{value:"431021",label:"妗傞槼鍘"},{value:"431022",label:"瀹滅珷鍘"},{value:"431023",label:"姘稿叴鍘"},{value:"431024",label:"鍢夌鍘"},{value:"431025",label:"涓存鍘"},{value:"431026",label:"姹濆煄鍘"},{value:"431027",label:"妗備笢鍘"},{value:"431028",label:"瀹変粊鍘"},{value:"431081",label:"璧勫叴甯"}]},{value:"431100",label:"姘稿窞甯",children:[{value:"431101",label:"甯傝緰鍖"},{value:"431102",label:"闆堕櫟鍖"},{value:"431103",label:"鍐锋按婊╁尯"},{value:"431121",label:"绁侀槼鍘"},{value:"431122",label:"涓滃畨鍘"},{value:"431123",label:"鍙岀墝鍘"},{value:"431124",label:"閬撳幙"},{value:"431125",label:"姹熸案鍘"},{value:"431126",label:"瀹佽繙鍘"},{value:"431127",label:"钃濆北鍘"},{value:"431128",label:"鏂扮敯鍘"},{value:"431129",label:"姹熷崕鐟舵棌鑷不鍘"},{value:"431171",label:"姘稿窞缁忔祹鎶鏈紑鍙戝尯"},{value:"431172",label:"姘稿窞甯傞噾娲炵鐞嗗尯"},{value:"431173",label:"姘稿窞甯傚洖榫欏湬绠$悊鍖"}]},{value:"431200",label:"鎬鍖栧競",children:[{value:"431201",label:"甯傝緰鍖"},{value:"431202",label:"楣ゅ煄鍖"},{value:"431221",label:"涓柟鍘"},{value:"431222",label:"娌呴櫟鍘"},{value:"431223",label:"杈版邯鍘"},{value:"431224",label:"婧嗘郸鍘"},{value:"431225",label:"浼氬悓鍘"},{value:"431226",label:"楹婚槼鑻楁棌鑷不鍘"},{value:"431227",label:"鏂版檭渚楁棌鑷不鍘"},{value:"431228",label:"鑺锋睙渚楁棌鑷不鍘"},{value:"431229",label:"闈栧窞鑻楁棌渚楁棌鑷不鍘"},{value:"431230",label:"閫氶亾渚楁棌鑷不鍘"},{value:"431271",label:"鎬鍖栧競娲睙绠$悊鍖"},{value:"431281",label:"娲睙甯"}]},{value:"431300",label:"濞勫簳甯",children:[{value:"431301",label:"甯傝緰鍖"},{value:"431302",label:"濞勬槦鍖"},{value:"431321",label:"鍙屽嘲鍘"},{value:"431322",label:"鏂板寲鍘"},{value:"431381",label:"鍐锋按姹熷競"},{value:"431382",label:"娑熸簮甯"}]},{value:"433100",label:"婀樿タ鍦熷鏃忚嫍鏃忚嚜娌诲窞",children:[{value:"433101",label:"鍚夐甯"},{value:"433122",label:"娉告邯鍘"},{value:"433123",label:"鍑ゅ嚢鍘"},{value:"433124",label:"鑺卞灒鍘"},{value:"433125",label:"淇濋潠鍘"},{value:"433126",label:"鍙や笀鍘"},{value:"433127",label:"姘搁『鍘"},{value:"433130",label:"榫欏北鍘"},{value:"433172",label:"婀栧崡鍚夐缁忔祹寮鍙戝尯"},{value:"433173",label:"婀栧崡姘搁『缁忔祹寮鍙戝尯"}]}]},{value:'440000',label:'骞夸笢鐪',children:[{value:"440100",label:"骞垮窞甯",children:[{value:"440101",label:"甯傝緰鍖"},{value:"440103",label:"鑽旀咕鍖"},{value:"440104",label:"瓒婄鍖"},{value:"440105",label:"娴风彔鍖"},{value:"440106",label:"澶╂渤鍖"},{value:"440111",label:"鐧戒簯鍖"},{value:"440112",label:"榛勫煍鍖"},{value:"440113",label:"鐣鍖"},{value:"440114",label:"鑺遍兘鍖"},{value:"440115",label:"鍗楁矙鍖"},{value:"440117",label:"浠庡寲鍖"},{value:"440118",label:"澧炲煄鍖"}]},{value:"440200",label:"闊跺叧甯",children:[{value:"440201",label:"甯傝緰鍖"},{value:"440203",label:"姝︽睙鍖"},{value:"440204",label:"娴堟睙鍖"},{value:"440205",label:"鏇叉睙鍖"},{value:"440222",label:"濮嬪叴鍘"},{value:"440224",label:"浠佸寲鍘"},{value:"440229",label:"缈佹簮鍘"},{value:"440232",label:"涔虫簮鐟舵棌鑷不鍘"},{value:"440233",label:"鏂颁赴鍘"},{value:"440281",label:"涔愭槍甯"},{value:"440282",label:"鍗楅泟甯"}]},{value:"440300",label:"娣卞湷甯",children:[{value:"440301",label:"甯傝緰鍖"},{value:"440303",label:"缃楁箹鍖"},{value:"440304",label:"绂忕敯鍖"},{value:"440305",label:"鍗楀北鍖"},{value:"440306",label:"瀹濆畨鍖"},{value:"440307",label:"榫欏矖鍖"},{value:"440308",label:"鐩愮敯鍖"},{value:"440309",label:"榫欏崕鍖"},{value:"440310",label:"鍧北鍖"}]},{value:"440400",label:"鐝犳捣甯",children:[{value:"440401",label:"甯傝緰鍖"},{value:"440402",label:"棣欐床鍖"},{value:"440403",label:"鏂楅棬鍖"},{value:"440404",label:"閲戞咕鍖"}]},{value:"440500",label:"姹曞ご甯",children:[{value:"440501",label:"甯傝緰鍖"},{value:"440507",label:"榫欐箹鍖"},{value:"440511",label:"閲戝钩鍖"},{value:"440512",label:"婵犳睙鍖"},{value:"440513",label:"娼槼鍖"},{value:"440514",label:"娼崡鍖"},{value:"440515",label:"婢勬捣鍖"},{value:"440523",label:"鍗楁境鍘"}]},{value:"440600",label:"浣涘北甯",children:[{value:"440601",label:"甯傝緰鍖"},{value:"440604",label:"绂呭煄鍖"},{value:"440605",label:"鍗楁捣鍖"},{value:"440606",label:"椤哄痉鍖"},{value:"440607",label:"涓夋按鍖"},{value:"440608",label:"楂樻槑鍖"}]},{value:"440700",label:"姹熼棬甯",children:[{value:"440701",label:"甯傝緰鍖"},{value:"440703",label:"钃睙鍖"},{value:"440704",label:"姹熸捣鍖"},{value:"440705",label:"鏂颁細鍖"},{value:"440781",label:"鍙板北甯"},{value:"440783",label:"寮骞冲競"},{value:"440784",label:"楣ゅ北甯"},{value:"440785",label:"鎭╁钩甯"}]},{value:"440800",label:"婀涙睙甯",children:[{value:"440801",label:"甯傝緰鍖"},{value:"440802",label:"璧ゅ潕鍖"},{value:"440803",label:"闇炲北鍖"},{value:"440804",label:"鍧″ご鍖"},{value:"440811",label:"楹荤珷鍖"},{value:"440823",label:"閬傛邯鍘"},{value:"440825",label:"寰愰椈鍘"},{value:"440881",label:"寤夋睙甯"},{value:"440882",label:"闆峰窞甯"},{value:"440883",label:"鍚村窛甯"}]},{value:"440900",label:"鑼傚悕甯",children:[{value:"440901",label:"甯傝緰鍖"},{value:"440902",label:"鑼傚崡鍖"},{value:"440904",label:"鐢电櫧鍖"},{value:"440981",label:"楂樺窞甯"},{value:"440982",label:"鍖栧窞甯"},{value:"440983",label:"淇″疁甯"}]},{value:"441200",label:"鑲囧簡甯",children:[{value:"441201",label:"甯傝緰鍖"},{value:"441202",label:"绔窞鍖"},{value:"441203",label:"榧庢箹鍖"},{value:"441204",label:"楂樿鍖"},{value:"441223",label:"骞垮畞鍘"},{value:"441224",label:"鎬闆嗗幙"},{value:"441225",label:"灏佸紑鍘"},{value:"441226",label:"寰峰簡鍘"},{value:"441284",label:"鍥涗細甯"}]},{value:"441300",label:"鎯犲窞甯",children:[{value:"441301",label:"甯傝緰鍖"},{value:"441302",label:"鎯犲煄鍖"},{value:"441303",label:"鎯犻槼鍖"},{value:"441322",label:"鍗氱綏鍘"},{value:"441323",label:"鎯犱笢鍘"},{value:"441324",label:"榫欓棬鍘"}]},{value:"441400",label:"姊呭窞甯",children:[{value:"441401",label:"甯傝緰鍖"},{value:"441402",label:"姊呮睙鍖"},{value:"441403",label:"姊呭幙鍖"},{value:"441422",label:"澶у煍鍘"},{value:"441423",label:"涓伴『鍘"},{value:"441424",label:"浜斿崕鍘"},{value:"441426",label:"骞宠繙鍘"},{value:"441427",label:"钑夊箔鍘"},{value:"441481",label:"鍏村畞甯"}]},{value:"441500",label:"姹曞熬甯",children:[{value:"441501",label:"甯傝緰鍖"},{value:"441502",label:"鍩庡尯"},{value:"441521",label:"娴蜂赴鍘"},{value:"441523",label:"闄嗘渤鍘"},{value:"441581",label:"闄嗕赴甯"}]},{value:"441600",label:"娌虫簮甯",children:[{value:"441601",label:"甯傝緰鍖"},{value:"441602",label:"婧愬煄鍖"},{value:"441621",label:"绱噾鍘"},{value:"441622",label:"榫欏窛鍘"},{value:"441623",label:"杩炲钩鍘"},{value:"441624",label:"鍜屽钩鍘"},{value:"441625",label:"涓滄簮鍘"}]},{value:"441700",label:"闃虫睙甯",children:[{value:"441701",label:"甯傝緰鍖"},{value:"441702",label:"姹熷煄鍖"},{value:"441704",label:"闃充笢鍖"},{value:"441721",label:"闃宠タ鍘"},{value:"441781",label:"闃虫槬甯"}]},{value:"441800",label:"娓呰繙甯",children:[{value:"441801",label:"甯傝緰鍖"},{value:"441802",label:"娓呭煄鍖"},{value:"441803",label:"娓呮柊鍖"},{value:"441821",label:"浣涘唸鍘"},{value:"441823",label:"闃冲北鍘"},{value:"441825",label:"杩炲北澹棌鐟舵棌鑷不鍘"},{value:"441826",label:"杩炲崡鐟舵棌鑷不鍘"},{value:"441881",label:"鑻卞痉甯"},{value:"441882",label:"杩炲窞甯"}]},{value:"441900",label:"涓滆帪甯"},{value:"442000",label:"涓北甯"},{value:"445100",label:"娼窞甯",children:[{value:"445101",label:"甯傝緰鍖"},{value:"445102",label:"婀樻ˉ鍖"},{value:"445103",label:"娼畨鍖"},{value:"445122",label:"楗跺钩鍘"}]},{value:"445200",label:"鎻槼甯",children:[{value:"445201",label:"甯傝緰鍖"},{value:"445202",label:"姒曞煄鍖"},{value:"445203",label:"鎻笢鍖"},{value:"445222",label:"鎻タ鍘"},{value:"445224",label:"鎯犳潵鍘"},{value:"445281",label:"鏅畞甯"}]},{value:"445300",label:"浜戞诞甯",children:[{value:"445301",label:"甯傝緰鍖"},{value:"445302",label:"浜戝煄鍖"},{value:"445303",label:"浜戝畨鍖"},{value:"445321",label:"鏂板叴鍘"},{value:"445322",label:"閮佸崡鍘"},{value:"445381",label:"缃楀畾甯"}]}]},{value:'450000',label:'骞胯タ澹棌',children:[{value:"450100",label:"鍗楀畞甯",children:[{value:"450101",label:"甯傝緰鍖"},{value:"450102",label:"鍏村畞鍖"},{value:"450103",label:"闈掔鍖"},{value:"450105",label:"姹熷崡鍖"},{value:"450107",label:"瑗夸埂濉樺尯"},{value:"450108",label:"鑹簡鍖"},{value:"450109",label:"閭曞畞鍖"},{value:"450110",label:"姝﹂福鍖"},{value:"450123",label:"闅嗗畨鍘"},{value:"450124",label:"椹北鍘"},{value:"450125",label:"涓婃灄鍘"},{value:"450126",label:"瀹鹃槼鍘"},{value:"450127",label:"妯幙"}]},{value:"450200",label:"鏌冲窞甯",children:[{value:"450201",label:"甯傝緰鍖"},{value:"450202",label:"鍩庝腑鍖"},{value:"450203",label:"楸煎嘲鍖"},{value:"450204",label:"鏌冲崡鍖"},{value:"450205",label:"鏌冲寳鍖"},{value:"450206",label:"鏌虫睙鍖"},{value:"450222",label:"鏌冲煄鍘"},{value:"450223",label:"楣垮鍘"},{value:"450224",label:"铻嶅畨鍘"},{value:"450225",label:"铻嶆按鑻楁棌鑷不鍘"},{value:"450226",label:"涓夋睙渚楁棌鑷不鍘"}]},{value:"450300",label:"妗傛灄甯",children:[{value:"450301",label:"甯傝緰鍖"},{value:"450302",label:"绉宄板尯"},{value:"450303",label:"鍙犲僵鍖"},{value:"450304",label:"璞″北鍖"},{value:"450305",label:"涓冩槦鍖"},{value:"450311",label:"闆佸北鍖"},{value:"450312",label:"涓存鍖"},{value:"450321",label:"闃虫湐鍘"},{value:"450323",label:"鐏靛窛鍘"},{value:"450324",label:"鍏ㄥ窞鍘"},{value:"450325",label:"鍏村畨鍘"},{value:"450326",label:"姘哥鍘"},{value:"450327",label:"鐏岄槼鍘"},{value:"450328",label:"榫欒儨鍚勬棌鑷不鍘"},{value:"450329",label:"璧勬簮鍘"},{value:"450330",label:"骞充箰鍘"},{value:"450331",label:"鑽旀郸鍘"},{value:"450332",label:"鎭煄鐟舵棌鑷不鍘"}]},{value:"450400",label:"姊у窞甯",children:[{value:"450401",label:"甯傝緰鍖"},{value:"450403",label:"涓囩鍖"},{value:"450405",label:"闀挎床鍖"},{value:"450406",label:"榫欏湬鍖"},{value:"450421",label:"鑻嶆ⅶ鍘"},{value:"450422",label:"钘ゅ幙"},{value:"450423",label:"钂欏北鍘"},{value:"450481",label:"宀戞邯甯"}]},{value:"450500",label:"鍖楁捣甯",children:[{value:"450501",label:"甯傝緰鍖"},{value:"450502",label:"娴峰煄鍖"},{value:"450503",label:"閾舵捣鍖"},{value:"450512",label:"閾佸北娓尯"},{value:"450521",label:"鍚堟郸鍘"}]},{value:"450600",label:"闃插煄娓競",children:[{value:"450601",label:"甯傝緰鍖"},{value:"450602",label:"娓彛鍖"},{value:"450603",label:"闃插煄鍖"},{value:"450621",label:"涓婃濆幙"},{value:"450681",label:"涓滃叴甯"}]},{value:"450700",label:"閽﹀窞甯",children:[{value:"450701",label:"甯傝緰鍖"},{value:"450702",label:"閽﹀崡鍖"},{value:"450703",label:"閽﹀寳鍖"},{value:"450721",label:"鐏靛北鍘"},{value:"450722",label:"娴﹀寳鍘"}]},{value:"450800",label:"璐垫腐甯",children:[{value:"450801",label:"甯傝緰鍖"},{value:"450802",label:"娓寳鍖"},{value:"450803",label:"娓崡鍖"},{value:"450804",label:"瑕冨鍖"},{value:"450821",label:"骞冲崡鍘"},{value:"450881",label:"妗傚钩甯"}]},{value:"450900",label:"鐜夋灄甯",children:[{value:"450901",label:"甯傝緰鍖"},{value:"450902",label:"鐜夊窞鍖"},{value:"450903",label:"绂忕坏鍖"},{value:"450921",label:"瀹瑰幙"},{value:"450922",label:"闄嗗窛鍘"},{value:"450923",label:"鍗氱櫧鍘"},{value:"450924",label:"鍏翠笟鍘"},{value:"450981",label:"鍖楁祦甯"}]},{value:"451000",label:"鐧捐壊甯",children:[{value:"451001",label:"甯傝緰鍖"},{value:"451002",label:"鍙虫睙鍖"},{value:"451021",label:"鐢伴槼鍘"},{value:"451022",label:"鐢颁笢鍘"},{value:"451023",label:"骞虫灉鍘"},{value:"451024",label:"寰蜂繚鍘"},{value:"451026",label:"閭e潯鍘"},{value:"451027",label:"鍑屼簯鍘"},{value:"451028",label:"涔愪笟鍘"},{value:"451029",label:"鐢版灄鍘"},{value:"451030",label:"瑗挎灄鍘"},{value:"451031",label:"闅嗘灄鍚勬棌鑷不鍘"},{value:"451081",label:"闈栬タ甯"}]},{value:"451100",label:"璐哄窞甯",children:[{value:"451101",label:"甯傝緰鍖"},{value:"451102",label:"鍏鍖"},{value:"451103",label:"骞虫鍖"},{value:"451121",label:"鏄钩鍘"},{value:"451122",label:"閽熷北鍘"},{value:"451123",label:"瀵屽窛鐟舵棌鑷不鍘"}]},{value:"451200",label:"娌虫睜甯",children:[{value:"451201",label:"甯傝緰鍖"},{value:"451202",label:"閲戝煄姹熷尯"},{value:"451203",label:"瀹滃窞鍖"},{value:"451221",label:"鍗椾腹鍘"},{value:"451222",label:"澶╁敞鍘"},{value:"451223",label:"鍑ゅ北鍘"},{value:"451224",label:"涓滃叞鍘"},{value:"451225",label:"缃楀煄浠浆鏃忚嚜娌诲幙"},{value:"451226",label:"鐜睙姣涘崡鏃忚嚜娌诲幙"},{value:"451227",label:"宸撮┈鐟舵棌鑷不鍘"},{value:"451228",label:"閮藉畨鐟舵棌鑷不鍘"},{value:"451229",label:"澶у寲鐟舵棌鑷不鍘"}]},{value:"451300",label:"鏉ュ甯",children:[{value:"451301",label:"甯傝緰鍖"},{value:"451302",label:"鍏村鍖"},{value:"451321",label:"蹇诲煄鍘"},{value:"451322",label:"璞″窞鍘"},{value:"451323",label:"姝﹀鍘"},{value:"451324",label:"閲戠鐟舵棌鑷不鍘"},{value:"451381",label:"鍚堝北甯"}]},{value:"451400",label:"宕囧乏甯",children:[{value:"451401",label:"甯傝緰鍖"},{value:"451402",label:"姹熷窞鍖"},{value:"451421",label:"鎵剁互鍘"},{value:"451422",label:"瀹佹槑鍘"},{value:"451423",label:"榫欏窞鍘"},{value:"451424",label:"澶ф柊鍘"},{value:"451425",label:"澶╃瓑鍘"},{value:"451481",label:"鍑ゥ甯"}]}]},{value:'460000',label:'娴峰崡鐪',children:[{value:"460100",label:"娴峰彛甯",children:[{value:"460101",label:"甯傝緰鍖"},{value:"460105",label:"绉鑻卞尯"},{value:"460106",label:"榫欏崕鍖"},{value:"460107",label:"鐞煎北鍖"},{value:"460108",label:"缇庡叞鍖"}]},{value:"460200",label:"涓変簹甯",children:[{value:"460201",label:"甯傝緰鍖"},{value:"460202",label:"娴锋鍖"},{value:"460203",label:"鍚夐槼鍖"},{value:"460204",label:"澶╂动鍖"},{value:"460205",label:"宕栧窞鍖"}]},{value:"460300",label:"涓夋矙甯",children:[{value:"460321",label:"瑗挎矙缇ゅ矝"},{value:"460322",label:"鍗楁矙缇ゅ矝"},{value:"460323",label:"涓矙缇ゅ矝鐨勫矝绀佸強鍏舵捣鍩"}]},{value:"460400",label:"鍎嬪窞甯"},{value:"469000",label:"鐪佺洿杈栧幙绾ц鏀垮尯鍒",children:[{value:"469001",label:"浜旀寚灞卞競"},{value:"469002",label:"鐞兼捣甯"},{value:"469005",label:"鏂囨槍甯"},{value:"469006",label:"涓囧畞甯"},{value:"469007",label:"涓滄柟甯"},{value:"469021",label:"瀹氬畨鍘"},{value:"469022",label:"灞槍鍘"},{value:"469023",label:"婢勮繄鍘"},{value:"469024",label:"涓撮珮鍘"},{value:"469025",label:"鐧芥矙榛庢棌鑷不鍘"},{value:"469026",label:"鏄屾睙榛庢棌鑷不鍘"},{value:"469027",label:"涔愪笢榛庢棌鑷不鍘"},{value:"469028",label:"闄垫按榛庢棌鑷不鍘"},{value:"469029",label:"淇濅涵榛庢棌鑻楁棌鑷不鍘"},{value:"469030",label:"鐞间腑榛庢棌鑻楁棌鑷不鍘"}]}]},{value:'500000',label:'閲嶅簡',children:[{value:"500100",label:"甯傝緰鍖",children:[{value:"500101",label:"涓囧窞鍖"},{value:"500102",label:"娑櫟鍖"},{value:"500103",label:"娓濅腑鍖"},{value:"500104",label:"澶ф浮鍙e尯"},{value:"500105",label:"姹熷寳鍖"},{value:"500106",label:"娌欏潽鍧濆尯"},{value:"500107",label:"涔濋緳鍧″尯"},{value:"500108",label:"鍗楀哺鍖"},{value:"500109",label:"鍖楃鍖"},{value:"500110",label:"缍︽睙鍖"},{value:"500111",label:"澶ц冻鍖"},{value:"500112",label:"娓濆寳鍖"},{value:"500113",label:"宸村崡鍖"},{value:"500114",label:"榛旀睙鍖"},{value:"500115",label:"闀垮鍖"},{value:"500116",label:"姹熸触鍖"},{value:"500117",label:"鍚堝窛鍖"},{value:"500118",label:"姘稿窛鍖"},{value:"500119",label:"鍗楀窛鍖"},{value:"500120",label:"鐠у北鍖"},{value:"500151",label:"閾滄鍖"},{value:"500152",label:"娼煎崡鍖"},{value:"500153",label:"鑽f槍鍖"},{value:"500154",label:"寮宸炲尯"},{value:"500155",label:"姊佸钩鍖"},{value:"500156",label:"姝﹂殕鍖"}]},{value:"500200",label:"鍘",children:[{value:"500229",label:"鍩庡彛鍘"},{value:"500230",label:"涓伴兘鍘"},{value:"500231",label:"鍨睙鍘"},{value:"500233",label:"蹇犲幙"},{value:"500235",label:"浜戦槼鍘"},{value:"500236",label:"濂夎妭鍘"},{value:"500237",label:"宸北鍘"},{value:"500238",label:"宸邯鍘"},{value:"500240",label:"鐭虫煴鍦熷鏃忚嚜娌诲幙"},{value:"500241",label:"绉灞卞湡瀹舵棌鑻楁棌鑷不鍘"},{value:"500242",label:"閰夐槼鍦熷鏃忚嫍鏃忚嚜娌诲幙"},{value:"500243",label:"褰按鑻楁棌鍦熷鏃忚嚜娌诲幙"}]}]},{value:'510000',label:'鍥涘窛鐪',children:[{value:"510100",label:"鎴愰兘甯",children:[{value:"510101",label:"甯傝緰鍖"},{value:"510104",label:"閿︽睙鍖"},{value:"510105",label:"闈掔緤鍖"},{value:"510106",label:"閲戠墰鍖"},{value:"510107",label:"姝︿警鍖"},{value:"510108",label:"鎴愬崕鍖"},{value:"510112",label:"榫欐硥椹垮尯"},{value:"510113",label:"闈掔櫧姹熷尯"},{value:"510114",label:"鏂伴兘鍖"},{value:"510115",label:"娓╂睙鍖"},{value:"510116",label:"鍙屾祦鍖"},{value:"510117",label:"閮兘鍖"},{value:"510121",label:"閲戝爞鍘"},{value:"510129",label:"澶ч倯鍘"},{value:"510131",label:"钂叉睙鍘"},{value:"510132",label:"鏂版触鍘"},{value:"510181",label:"閮芥睙鍫板競"},{value:"510182",label:"褰窞甯"},{value:"510183",label:"閭涘磧甯"},{value:"510184",label:"宕囧窞甯"},{value:"510185",label:"绠闃冲競"}]},{value:"510300",label:"鑷础甯",children:[{value:"510301",label:"甯傝緰鍖"},{value:"510302",label:"鑷祦浜曞尯"},{value:"510303",label:"璐′簳鍖"},{value:"510304",label:"澶у畨鍖"},{value:"510311",label:"娌挎哗鍖"},{value:"510321",label:"鑽e幙"},{value:"510322",label:"瀵岄『鍘"}]},{value:"510400",label:"鏀鏋濊姳甯",children:[{value:"510401",label:"甯傝緰鍖"},{value:"510402",label:"涓滃尯"},{value:"510403",label:"瑗垮尯"},{value:"510411",label:"浠佸拰鍖"},{value:"510421",label:"绫虫槗鍘"},{value:"510422",label:"鐩愯竟鍘"}]},{value:"510500",label:"娉稿窞甯",children:[{value:"510501",label:"甯傝緰鍖"},{value:"510502",label:"姹熼槼鍖"},{value:"510503",label:"绾虫邯鍖"},{value:"510504",label:"榫欓┈娼尯"},{value:"510521",label:"娉稿幙"},{value:"510522",label:"鍚堟睙鍘"},{value:"510524",label:"鍙欐案鍘"},{value:"510525",label:"鍙よ敽鍘"}]},{value:"510600",label:"寰烽槼甯",children:[{value:"510601",label:"甯傝緰鍖"},{value:"510603",label:"鏃岄槼鍖"},{value:"510604",label:"缃楁睙鍖"},{value:"510623",label:"涓睙鍘"},{value:"510681",label:"骞挎眽甯"},{value:"510682",label:"浠閭″競"},{value:"510683",label:"缁电甯"}]},{value:"510700",label:"缁甸槼甯",children:[{value:"510701",label:"甯傝緰鍖"},{value:"510703",label:"娑煄鍖"},{value:"510704",label:"娓镐粰鍖"},{value:"510705",label:"瀹夊窞鍖"},{value:"510722",label:"涓夊彴鍘"},{value:"510723",label:"鐩愪涵鍘"},{value:"510725",label:"姊撴郊鍘"},{value:"510726",label:"鍖楀窛缇屾棌鑷不鍘"},{value:"510727",label:"骞虫鍘"},{value:"510781",label:"姹熸补甯"}]},{value:"510800",label:"骞垮厓甯",children:[{value:"510801",label:"甯傝緰鍖"},{value:"510802",label:"鍒╁窞鍖"},{value:"510811",label:"鏄寲鍖"},{value:"510812",label:"鏈濆ぉ鍖"},{value:"510821",label:"鏃鸿媿鍘"},{value:"510822",label:"闈掑窛鍘"},{value:"510823",label:"鍓戦榿鍘"},{value:"510824",label:"鑻嶆邯鍘"}]},{value:"510900",label:"閬傚畞甯",children:[{value:"510901",label:"甯傝緰鍖"},{value:"510903",label:"鑸瑰北鍖"},{value:"510904",label:"瀹夊眳鍖"},{value:"510921",label:"钃邯鍘"},{value:"510922",label:"灏勬椽鍘"},{value:"510923",label:"澶ц嫳鍘"}]},{value:"511000",label:"鍐呮睙甯",children:[{value:"511001",label:"甯傝緰鍖"},{value:"511002",label:"甯備腑鍖"},{value:"511011",label:"涓滃叴鍖"},{value:"511024",label:"濞佽繙鍘"},{value:"511025",label:"璧勪腑鍘"},{value:"511071",label:"鍐呮睙缁忔祹寮鍙戝尯"},{value:"511083",label:"闅嗘槍甯"}]},{value:"511100",label:"涔愬北甯",children:[{value:"511101",label:"甯傝緰鍖"},{value:"511102",label:"甯備腑鍖"},{value:"511111",label:"娌欐咕鍖"},{value:"511112",label:"浜旈氭ˉ鍖"},{value:"511113",label:"閲戝彛娌冲尯"},{value:"511123",label:"鐘嶄负鍘"},{value:"511124",label:"浜曠爺鍘"},{value:"511126",label:"澶规睙鍘"},{value:"511129",label:"娌愬窛鍘"},{value:"511132",label:"宄ㄨ竟褰濇棌鑷不鍘"},{value:"511133",label:"椹竟褰濇棌鑷不鍘"},{value:"511181",label:"宄ㄧ湁灞卞競"}]},{value:"511300",label:"鍗楀厖甯",children:[{value:"511301",label:"甯傝緰鍖"},{value:"511302",label:"椤哄簡鍖"},{value:"511303",label:"楂樺潽鍖"},{value:"511304",label:"鍢夐櫟鍖"},{value:"511321",label:"鍗楅儴鍘"},{value:"511322",label:"钀ュ北鍘"},{value:"511323",label:"钃畨鍘"},{value:"511324",label:"浠檱鍘"},{value:"511325",label:"瑗垮厖鍘"},{value:"511381",label:"闃嗕腑甯"}]},{value:"511400",label:"鐪夊北甯",children:[{value:"511401",label:"甯傝緰鍖"},{value:"511402",label:"涓滃潯鍖"},{value:"511403",label:"褰北鍖"},{value:"511421",label:"浠佸鍘"},{value:"511423",label:"娲泤鍘"},{value:"511424",label:"涓规1鍘"},{value:"511425",label:"闈掔鍘"}]},{value:"511500",label:"瀹滃甯",children:[{value:"511501",label:"甯傝緰鍖"},{value:"511502",label:"缈犲睆鍖"},{value:"511503",label:"鍗楁邯鍖"},{value:"511521",label:"瀹滃鍘"},{value:"511523",label:"姹熷畨鍘"},{value:"511524",label:"闀垮畞鍘"},{value:"511525",label:"楂樺幙"},{value:"511526",label:"鐝欏幙"},{value:"511527",label:"绛犺繛鍘"},{value:"511528",label:"鍏存枃鍘"},{value:"511529",label:"灞忓北鍘"}]},{value:"511600",label:"骞垮畨甯",children:[{value:"511601",label:"甯傝緰鍖"},{value:"511602",label:"骞垮畨鍖"},{value:"511603",label:"鍓嶉攱鍖"},{value:"511621",label:"宀虫睜鍘"},{value:"511622",label:"姝﹁儨鍘"},{value:"511623",label:"閭绘按鍘"},{value:"511681",label:"鍗庤摜甯"}]},{value:"511700",label:"杈惧窞甯",children:[{value:"511701",label:"甯傝緰鍖"},{value:"511702",label:"閫氬窛鍖"},{value:"511703",label:"杈惧窛鍖"},{value:"511722",label:"瀹f眽鍘"},{value:"511723",label:"寮姹熷幙"},{value:"511724",label:"澶х鍘"},{value:"511725",label:"娓犲幙"},{value:"511771",label:"杈惧窞缁忔祹寮鍙戝尯"},{value:"511781",label:"涓囨簮甯"}]},{value:"511800",label:"闆呭畨甯",children:[{value:"511801",label:"甯傝緰鍖"},{value:"511802",label:"闆ㄥ煄鍖"},{value:"511803",label:"鍚嶅北鍖"},{value:"511822",label:"鑽ョ粡鍘"},{value:"511823",label:"姹夋簮鍘"},{value:"511824",label:"鐭虫鍘"},{value:"511825",label:"澶╁叏鍘"},{value:"511826",label:"鑺﹀北鍘"},{value:"511827",label:"瀹濆叴鍘"}]},{value:"511900",label:"宸翠腑甯",children:[{value:"511901",label:"甯傝緰鍖"},{value:"511902",label:"宸村窞鍖"},{value:"511903",label:"鎭╅槼鍖"},{value:"511921",label:"閫氭睙鍘"},{value:"511922",label:"鍗楁睙鍘"},{value:"511923",label:"骞虫槍鍘"},{value:"511971",label:"宸翠腑缁忔祹寮鍙戝尯"}]},{value:"512000",label:"璧勯槼甯",children:[{value:"512001",label:"甯傝緰鍖"},{value:"512002",label:"闆佹睙鍖"},{value:"512021",label:"瀹夊渤鍘"},{value:"512022",label:"涔愯嚦鍘"}]},{value:"513200",label:"闃垮潩钘忔棌缇屾棌鑷不宸",children:[{value:"513201",label:"椹皵搴峰競"},{value:"513221",label:"姹跺窛鍘"},{value:"513222",label:"鐞嗗幙"},{value:"513223",label:"鑼傚幙"},{value:"513224",label:"鏉炬綐鍘"},{value:"513225",label:"涔濆娌熷幙"},{value:"513226",label:"閲戝窛鍘"},{value:"513227",label:"灏忛噾鍘"},{value:"513228",label:"榛戞按鍘"},{value:"513230",label:"澹ゅ鍘"},{value:"513231",label:"闃垮潩鍘"},{value:"513232",label:"鑻ュ皵鐩栧幙"},{value:"513233",label:"绾㈠師鍘"}]},{value:"513300",label:"鐢樺瓬钘忔棌鑷不宸",children:[{value:"513301",label:"搴峰畾甯"},{value:"513322",label:"娉稿畾鍘"},{value:"513323",label:"涓瑰反鍘"},{value:"513324",label:"涔濋緳鍘"},{value:"513325",label:"闆呮睙鍘"},{value:"513326",label:"閬撳瓪鍘"},{value:"513327",label:"鐐夐湇鍘"},{value:"513328",label:"鐢樺瓬鍘"},{value:"513329",label:"鏂伴緳鍘"},{value:"513330",label:"寰锋牸鍘"},{value:"513331",label:"鐧界帀鍘"},{value:"513332",label:"鐭虫笭鍘"},{value:"513333",label:"鑹茶揪鍘"},{value:"513334",label:"鐞嗗鍘"},{value:"513335",label:"宸村鍘"},{value:"513336",label:"涔″煄鍘"},{value:"513337",label:"绋诲煄鍘"},{value:"513338",label:"寰楄崳鍘"}]},{value:"513400",label:"鍑夊北褰濇棌鑷不宸",children:[{value:"513401",label:"瑗挎槍甯"},{value:"513422",label:"鏈ㄩ噷钘忔棌鑷不鍘"},{value:"513423",label:"鐩愭簮鍘"},{value:"513424",label:"寰锋槍鍘"},{value:"513425",label:"浼氱悊鍘"},{value:"513426",label:"浼氫笢鍘"},{value:"513427",label:"瀹佸崡鍘"},{value:"513428",label:"鏅牸鍘"},{value:"513429",label:"甯冩嫋鍘"},{value:"513430",label:"閲戦槼鍘"},{value:"513431",label:"鏄鍘"},{value:"513432",label:"鍠滃痉鍘"},{value:"513433",label:"鍐曞畞鍘"},{value:"513434",label:"瓒婅タ鍘"},{value:"513435",label:"鐢樻礇鍘"},{value:"513436",label:"缇庡鍘"},{value:"513437",label:"闆锋尝鍘"}]}]},{value:'520000',label:'璐靛窞鐪',children:[{value:"520100",label:"璐甸槼甯",children:[{value:"520101",label:"甯傝緰鍖"},{value:"520102",label:"鍗楁槑鍖"},{value:"520103",label:"浜戝博鍖"},{value:"520111",label:"鑺辨邯鍖"},{value:"520112",label:"涔屽綋鍖"},{value:"520113",label:"鐧戒簯鍖"},{value:"520115",label:"瑙傚北婀栧尯"},{value:"520121",label:"寮闃冲幙"},{value:"520122",label:"鎭兘鍘"},{value:"520123",label:"淇枃鍘"},{value:"520181",label:"娓呴晣甯"}]},{value:"520200",label:"鍏洏姘村競",children:[{value:"520201",label:"閽熷北鍖"},{value:"520203",label:"鍏灊鐗瑰尯"},{value:"520221",label:"姘村煄鍘"},{value:"520281",label:"鐩樺窞甯"}]},{value:"520300",label:"閬典箟甯",children:[{value:"520301",label:"甯傝緰鍖"},{value:"520302",label:"绾㈣姳宀楀尯"},{value:"520303",label:"姹囧窛鍖"},{value:"520304",label:"鎾窞鍖"},{value:"520322",label:"妗愭鍘"},{value:"520323",label:"缁ラ槼鍘"},{value:"520324",label:"姝e畨鍘"},{value:"520325",label:"閬撶湡浠′浆鏃忚嫍鏃忚嚜娌诲幙"},{value:"520326",label:"鍔″窛浠′浆鏃忚嫍鏃忚嚜娌诲幙"},{value:"520327",label:"鍑ゅ唸鍘"},{value:"520328",label:"婀勬江鍘"},{value:"520329",label:"浣欏簡鍘"},{value:"520330",label:"涔犳按鍘"},{value:"520381",label:"璧ゆ按甯"},{value:"520382",label:"浠佹甯"}]},{value:"520400",label:"瀹夐『甯",children:[{value:"520401",label:"甯傝緰鍖"},{value:"520402",label:"瑗跨鍖"},{value:"520403",label:"骞冲潩鍖"},{value:"520422",label:"鏅畾鍘"},{value:"520423",label:"闀囧畞甯冧緷鏃忚嫍鏃忚嚜娌诲幙"},{value:"520424",label:"鍏冲箔甯冧緷鏃忚嫍鏃忚嚜娌诲幙"},{value:"520425",label:"绱簯鑻楁棌甯冧緷鏃忚嚜娌诲幙"}]},{value:"520500",label:"姣曡妭甯",children:[{value:"520501",label:"甯傝緰鍖"},{value:"520502",label:"涓冩槦鍏冲尯"},{value:"520521",label:"澶ф柟鍘"},{value:"520522",label:"榛旇タ鍘"},{value:"520523",label:"閲戞矙鍘"},{value:"520524",label:"缁囬噾鍘"},{value:"520525",label:"绾抽泹鍘"},{value:"520526",label:"濞佸畞褰濇棌鍥炴棌鑻楁棌鑷不鍘"},{value:"520527",label:"璧珷鍘"}]},{value:"520600",label:"閾滀粊甯",children:[{value:"520601",label:"甯傝緰鍖"},{value:"520602",label:"纰ф睙鍖"},{value:"520603",label:"涓囧北鍖"},{value:"520621",label:"姹熷彛鍘"},{value:"520622",label:"鐜夊睆渚楁棌鑷不鍘"},{value:"520623",label:"鐭抽槨鍘"},{value:"520624",label:"鎬濆崡鍘"},{value:"520625",label:"鍗版睙鍦熷鏃忚嫍鏃忚嚜娌诲幙"},{value:"520626",label:"寰锋睙鍘"},{value:"520627",label:"娌挎渤鍦熷鏃忚嚜娌诲幙"},{value:"520628",label:"鏉炬鑻楁棌鑷不鍘"}]},{value:"522300",label:"榛旇タ鍗楀竷渚濇棌鑻楁棌鑷不宸",children:[{value:"522301",label:"鍏翠箟甯"},{value:"522322",label:"鍏翠粊鍘"},{value:"522323",label:"鏅畨鍘"},{value:"522324",label:"鏅撮殕鍘"},{value:"522325",label:"璐炰赴鍘"},{value:"522326",label:"鏈涜盁鍘"},{value:"522327",label:"鍐屼酣鍘"},{value:"522328",label:"瀹夐緳鍘"}]},{value:"522600",label:"榛斾笢鍗楄嫍鏃忎緱鏃忚嚜娌诲窞",children:[{value:"522601",label:"鍑噷甯"},{value:"522622",label:"榛勫钩鍘"},{value:"522623",label:"鏂界鍘"},{value:"522624",label:"涓夌鍘"},{value:"522625",label:"闀囪繙鍘"},{value:"522626",label:"宀戝珐鍘"},{value:"522627",label:"澶╂煴鍘"},{value:"522628",label:"閿﹀睆鍘"},{value:"522629",label:"鍓戞渤鍘"},{value:"522630",label:"鍙版睙鍘"},{value:"522631",label:"榛庡钩鍘"},{value:"522632",label:"姒曟睙鍘"},{value:"522633",label:"浠庢睙鍘"},{value:"522634",label:"闆峰北鍘"},{value:"522635",label:"楹绘睙鍘"},{value:"522636",label:"涓瑰鍘"}]},{value:"522700",label:"榛斿崡甯冧緷鏃忚嫍鏃忚嚜娌诲窞",children:[{value:"522701",label:"閮藉寑甯"},{value:"522702",label:"绂忔硥甯"},{value:"522722",label:"鑽旀尝鍘"},{value:"522723",label:"璐靛畾鍘"},{value:"522725",label:"鐡畨鍘"},{value:"522726",label:"鐙北鍘"},{value:"522727",label:"骞冲鍘"},{value:"522728",label:"缃楃敻鍘"},{value:"522729",label:"闀块『鍘"},{value:"522730",label:"榫欓噷鍘"},{value:"522731",label:"鎯犳按鍘"},{value:"522732",label:"涓夐兘姘存棌鑷不鍘"}]}]},{value:'530000',label:'浜戝崡鐪',children:[{value:"530100",label:"鏄嗘槑甯",children:[{value:"530101",label:"甯傝緰鍖"},{value:"530102",label:"浜斿崕鍖"},{value:"530103",label:"鐩橀緳鍖"},{value:"530111",label:"瀹樻浮鍖"},{value:"530112",label:"瑗垮北鍖"},{value:"530113",label:"涓滃窛鍖"},{value:"530114",label:"鍛堣础鍖"},{value:"530115",label:"鏅嬪畞鍖"},{value:"530124",label:"瀵屾皯鍘"},{value:"530125",label:"瀹滆壇鍘"},{value:"530126",label:"鐭虫灄褰濇棌鑷不鍘"},{value:"530127",label:"宓╂槑鍘"},{value:"530128",label:"绂勫姖褰濇棌鑻楁棌鑷不鍘"},{value:"530129",label:"瀵荤敻鍥炴棌褰濇棌鑷不鍘"},{value:"530181",label:"瀹夊畞甯"}]},{value:"530300",label:"鏇查潠甯",children:[{value:"530301",label:"甯傝緰鍖"},{value:"530302",label:"楹掗簾鍖"},{value:"530303",label:"娌剧泭鍖"},{value:"530321",label:"椹緳鍘"},{value:"530322",label:"闄嗚壇鍘"},{value:"530323",label:"甯堝畻鍘"},{value:"530324",label:"缃楀钩鍘"},{value:"530325",label:"瀵屾簮鍘"},{value:"530326",label:"浼氭辰鍘"},{value:"530381",label:"瀹e▉甯"}]},{value:"530400",label:"鐜夋邯甯",children:[{value:"530401",label:"甯傝緰鍖"},{value:"530402",label:"绾㈠鍖"},{value:"530403",label:"姹熷窛鍖"},{value:"530422",label:"婢勬睙鍘"},{value:"530423",label:"閫氭捣鍘"},{value:"530424",label:"鍗庡畞鍘"},{value:"530425",label:"鏄撻棬鍘"},{value:"530426",label:"宄ㄥ北褰濇棌鑷不鍘"},{value:"530427",label:"鏂板钩褰濇棌鍌f棌鑷不鍘"},{value:"530428",label:"鍏冩睙鍝堝凹鏃忓綕鏃忓偅鏃忚嚜娌诲幙"}]},{value:"530500",label:"淇濆北甯",children:[{value:"530501",label:"甯傝緰鍖"},{value:"530502",label:"闅嗛槼鍖"},{value:"530521",label:"鏂界敻鍘"},{value:"530523",label:"榫欓櫟鍘"},{value:"530524",label:"鏄屽畞鍘"},{value:"530581",label:"鑵惧啿甯"}]},{value:"530600",label:"鏄氬競",children:[{value:"530601",label:"甯傝緰鍖"},{value:"530602",label:"鏄槼鍖"},{value:"530621",label:"椴佺敻鍘"},{value:"530622",label:"宸у鍘"},{value:"530623",label:"鐩愭触鍘"},{value:"530624",label:"澶у叧鍘"},{value:"530625",label:"姘稿杽鍘"},{value:"530626",label:"缁ユ睙鍘"},{value:"530627",label:"闀囬泟鍘"},{value:"530628",label:"褰濊壇鍘"},{value:"530629",label:"濞佷俊鍘"},{value:"530630",label:"姘村瘜鍘"}]},{value:"530700",label:"涓芥睙甯",children:[{value:"530701",label:"甯傝緰鍖"},{value:"530702",label:"鍙ゅ煄鍖"},{value:"530721",label:"鐜夐緳绾宠タ鏃忚嚜娌诲幙"},{value:"530722",label:"姘歌儨鍘"},{value:"530723",label:"鍗庡潽鍘"},{value:"530724",label:"瀹佽挆褰濇棌鑷不鍘"}]},{value:"530800",label:"鏅幢甯",children:[{value:"530801",label:"甯傝緰鍖"},{value:"530802",label:"鎬濊寘鍖"},{value:"530821",label:"瀹佹幢鍝堝凹鏃忓綕鏃忚嚜娌诲幙"},{value:"530822",label:"澧ㄦ睙鍝堝凹鏃忚嚜娌诲幙"},{value:"530823",label:"鏅笢褰濇棌鑷不鍘"},{value:"530824",label:"鏅胺鍌f棌褰濇棌鑷不鍘"},{value:"530825",label:"闀囨矃褰濇棌鍝堝凹鏃忔媺绁滄棌鑷不鍘"},{value:"530826",label:"姹熷煄鍝堝凹鏃忓綕鏃忚嚜娌诲幙"},{value:"530827",label:"瀛熻繛鍌f棌鎷夌鏃忎饯鏃忚嚜娌诲幙"},{value:"530828",label:"婢滄钵鎷夌鏃忚嚜娌诲幙"},{value:"530829",label:"瑗跨洘浣ゆ棌鑷不鍘"}]},{value:"530900",label:"涓存钵甯",children:[{value:"530901",label:"甯傝緰鍖"},{value:"530902",label:"涓寸繑鍖"},{value:"530921",label:"鍑ゅ簡鍘"},{value:"530922",label:"浜戝幙"},{value:"530923",label:"姘稿痉鍘"},{value:"530924",label:"闀囧悍鍘"},{value:"530925",label:"鍙屾睙鎷夌鏃忎饯鏃忓竷鏈楁棌鍌f棌鑷不鍘"},{value:"530926",label:"鑰块┈鍌f棌浣ゆ棌鑷不鍘"},{value:"530927",label:"娌ф簮浣ゆ棌鑷不鍘"}]},{value:"532300",label:"妤氶泟褰濇棌鑷不宸",children:[{value:"532301",label:"妤氶泟甯"},{value:"532322",label:"鍙屾煆鍘"},{value:"532323",label:"鐗熷畾鍘"},{value:"532324",label:"鍗楀崕鍘"},{value:"532325",label:"濮氬畨鍘"},{value:"532326",label:"澶у鍘"},{value:"532327",label:"姘镐粊鍘"},{value:"532328",label:"鍏冭皨鍘"},{value:"532329",label:"姝﹀畾鍘"},{value:"532331",label:"绂勪赴鍘"}]},{value:"532500",label:"绾㈡渤鍝堝凹鏃忓綕鏃忚嚜娌诲窞",children:[{value:"532501",label:"涓棫甯"},{value:"532502",label:"寮杩滃競"},{value:"532503",label:"钂欒嚜甯"},{value:"532504",label:"寮ュ嫆甯"},{value:"532523",label:"灞忚竟鑻楁棌鑷不鍘"},{value:"532524",label:"寤烘按鍘"},{value:"532525",label:"鐭冲睆鍘"},{value:"532527",label:"娉歌タ鍘"},{value:"532528",label:"鍏冮槼鍘"},{value:"532529",label:"绾㈡渤鍘"},{value:"532530",label:"閲戝钩鑻楁棌鐟舵棌鍌f棌鑷不鍘"},{value:"532531",label:"缁挎槬鍘"},{value:"532532",label:"娌冲彛鐟舵棌鑷不鍘"}]},{value:"532600",label:"鏂囧北澹棌鑻楁棌鑷不宸",children:[{value:"532601",label:"鏂囧北甯"},{value:"532622",label:"鐮氬北鍘"},{value:"532623",label:"瑗跨暣鍘"},{value:"532624",label:"楹绘牀鍧″幙"},{value:"532625",label:"椹叧鍘"},{value:"532626",label:"涓樺寳鍘"},{value:"532627",label:"骞垮崡鍘"},{value:"532628",label:"瀵屽畞鍘"}]},{value:"532800",label:"瑗垮弻鐗堢撼鍌f棌鑷不宸",children:[{value:"532801",label:"鏅椽甯"},{value:"532822",label:"鍕愭捣鍘"},{value:"532823",label:"鍕愯厞鍘"}]},{value:"532900",label:"澶х悊鐧芥棌鑷不宸",children:[{value:"532901",label:"澶х悊甯"},{value:"532922",label:"婕炬繛褰濇棌鑷不鍘"},{value:"532923",label:"绁ヤ簯鍘"},{value:"532924",label:"瀹惧窛鍘"},{value:"532925",label:"寮ユ浮鍘"},{value:"532926",label:"鍗楁锭褰濇棌鑷不鍘"},{value:"532927",label:"宸嶅北褰濇棌鍥炴棌鑷不鍘"},{value:"532928",label:"姘稿钩鍘"},{value:"532929",label:"浜戦緳鍘"},{value:"532930",label:"娲辨簮鍘"},{value:"532931",label:"鍓戝窛鍘"},{value:"532932",label:"楣ゅ簡鍘"}]},{value:"533100",label:"寰峰畯鍌f棌鏅鏃忚嚜娌诲窞",children:[{value:"533102",label:"鐟炰附甯"},{value:"533103",label:"鑺掑競"},{value:"533122",label:"姊佹渤鍘"},{value:"533123",label:"鐩堟睙鍘"},{value:"533124",label:"闄囧窛鍘"}]},{value:"533300",label:"鎬掓睙鍌堝兂鏃忚嚜娌诲窞",children:[{value:"533301",label:"娉告按甯"},{value:"533323",label:"绂忚础鍘"},{value:"533324",label:"璐″北鐙緳鏃忔掓棌鑷不鍘"},{value:"533325",label:"鍏板潽鐧芥棌鏅背鏃忚嚜娌诲幙"}]},{value:"533400",label:"杩簡钘忔棌鑷不宸",children:[{value:"533401",label:"棣欐牸閲屾媺甯"},{value:"533422",label:"寰烽挦鍘"},{value:"533423",label:"缁磋タ鍌堝兂鏃忚嚜娌诲幙"}]}]},{value:'540000',label:'瑗胯棌',children:[{value:"540100",label:"鎷夎惃甯",children:[{value:"540101",label:"甯傝緰鍖"},{value:"540102",label:"鍩庡叧鍖"},{value:"540103",label:"鍫嗛緳寰峰簡鍖"},{value:"540121",label:"鏋楀懆鍘"},{value:"540122",label:"褰撻泟鍘"},{value:"540123",label:"灏兼湪鍘"},{value:"540124",label:"鏇叉按鍘"},{value:"540126",label:"杈惧瓬鍘"},{value:"540127",label:"澧ㄧ宸ュ崱鍘"},{value:"540171",label:"鏍煎皵鏈ㄨ棌闈掑伐涓氬洯鍖"},{value:"540172",label:"鎷夎惃缁忔祹鎶鏈紑鍙戝尯"},{value:"540173",label:"瑗胯棌鏂囧寲鏃呮父鍒涙剰鍥尯"},{value:"540174",label:"杈惧瓬宸ヤ笟鍥尯"}]},{value:"540200",label:"鏃ュ杸鍒欏競",children:[{value:"540202",label:"妗戠彔瀛滃尯"},{value:"540221",label:"鍗楁湪鏋楀幙"},{value:"540222",label:"姹熷瓬鍘"},{value:"540223",label:"瀹氭棩鍘"},{value:"540224",label:"钀ㄨ喀鍘"},{value:"540225",label:"鎷夊瓬鍘"},{value:"540226",label:"鏄備粊鍘"},{value:"540227",label:"璋㈤氶棬鍘"},{value:"540228",label:"鐧芥湕鍘"},{value:"540229",label:"浠佸竷鍘"},{value:"540230",label:"搴烽┈鍘"},{value:"540231",label:"瀹氱粨鍘"},{value:"540232",label:"浠插反鍘"},{value:"540233",label:"浜氫笢鍘"},{value:"540234",label:"鍚夐殕鍘"},{value:"540235",label:"鑱傛媺鏈ㄥ幙"},{value:"540236",label:"钀ㄥ槑鍘"},{value:"540237",label:"宀楀反鍘"}]},{value:"540300",label:"鏄岄兘甯",children:[{value:"540302",label:"鍗¤嫢鍖"},{value:"540321",label:"姹熻揪鍘"},{value:"540322",label:"璐¤鍘"},{value:"540323",label:"绫讳箤榻愬幙"},{value:"540324",label:"涓侀潚鍘"},{value:"540325",label:"瀵熼泤鍘"},{value:"540326",label:"鍏鍘"},{value:"540327",label:"宸﹁础鍘"},{value:"540328",label:"鑺掑悍鍘"},{value:"540329",label:"娲涢殕鍘"},{value:"540330",label:"杈瑰潩鍘"}]},{value:"540400",label:"鏋楄姖甯",children:[{value:"540402",label:"宸村疁鍖"},{value:"540421",label:"宸ュ竷姹熻揪鍘"},{value:"540422",label:"绫虫灄鍘"},{value:"540423",label:"澧ㄨ劚鍘"},{value:"540424",label:"娉㈠瘑鍘"},{value:"540425",label:"瀵熼殔鍘"},{value:"540426",label:"鏈楀幙"}]},{value:"540500",label:"灞卞崡甯",children:[{value:"540501",label:"甯傝緰鍖"},{value:"540502",label:"涔冧笢鍖"},{value:"540521",label:"鎵庡泭鍘"},{value:"540522",label:"璐″槑鍘"},{value:"540523",label:"妗戞棩鍘"},{value:"540524",label:"鐞肩粨鍘"},{value:"540525",label:"鏇叉澗鍘"},{value:"540526",label:"鎺編鍘"},{value:"540527",label:"娲涙墡鍘"},{value:"540528",label:"鍔犳煡鍘"},{value:"540529",label:"闅嗗瓙鍘"},{value:"540530",label:"閿欓偅鍘"},{value:"540531",label:"娴崱瀛愬幙"}]},{value:"542400",label:"閭f洸鍦板尯",children:[{value:"542421",label:"閭f洸鍘"},{value:"542422",label:"鍢夐粠鍘"},{value:"542423",label:"姣斿鍘"},{value:"542424",label:"鑱傝崳鍘"},{value:"542425",label:"瀹夊鍘"},{value:"542426",label:"鐢虫墡鍘"},{value:"542427",label:"绱㈠幙"},{value:"542428",label:"鐝垐鍘"},{value:"542429",label:"宸撮潚鍘"},{value:"542430",label:"灏肩帥鍘"},{value:"542431",label:"鍙屾箹鍘"}]},{value:"542500",label:"闃块噷鍦板尯",children:[{value:"542521",label:"鏅叞鍘"},{value:"542522",label:"鏈揪鍘"},{value:"542523",label:"鍣跺皵鍘"},{value:"542524",label:"鏃ュ湡鍘"},{value:"542525",label:"闈╁悏鍘"},{value:"542526",label:"鏀瑰垯鍘"},{value:"542527",label:"鎺嫟鍘"}]}]},{value:'610000',label:'闄曡タ鐪',children:[{value:"610100",label:"瑗垮畨甯",children:[{value:"610101",label:"甯傝緰鍖"},{value:"610102",label:"鏂板煄鍖"},{value:"610103",label:"纰戞灄鍖"},{value:"610104",label:"鑾叉箹鍖"},{value:"610111",label:"鐏炴ˉ鍖"},{value:"610112",label:"鏈ぎ鍖"},{value:"610113",label:"闆佸鍖"},{value:"610114",label:"闃庤壇鍖"},{value:"610115",label:"涓存郊鍖"},{value:"610116",label:"闀垮畨鍖"},{value:"610117",label:"楂橀櫟鍖"},{value:"610118",label:"閯犻倯鍖"},{value:"610122",label:"钃濈敯鍘"},{value:"610124",label:"鍛ㄨ嚦鍘"}]},{value:"610200",label:"閾滃窛甯",children:[{value:"610201",label:"甯傝緰鍖"},{value:"610202",label:"鐜嬬泭鍖"},{value:"610203",label:"鍗板彴鍖"},{value:"610204",label:"鑰宸炲尯"},{value:"610222",label:"瀹滃悰鍘"}]},{value:"610300",label:"瀹濋浮甯",children:[{value:"610301",label:"甯傝緰鍖"},{value:"610302",label:"娓花鍖"},{value:"610303",label:"閲戝彴鍖"},{value:"610304",label:"闄堜粨鍖"},{value:"610322",label:"鍑ょ繑鍘"},{value:"610323",label:"宀愬北鍘"},{value:"610324",label:"鎵堕鍘"},{value:"610326",label:"鐪夊幙"},{value:"610327",label:"闄囧幙"},{value:"610328",label:"鍗冮槼鍘"},{value:"610329",label:"楹熸父鍘"},{value:"610330",label:"鍑ゅ幙"},{value:"610331",label:"澶櫧鍘"}]},{value:"610400",label:"鍜搁槼甯",children:[{value:"610401",label:"甯傝緰鍖"},{value:"610402",label:"绉﹂兘鍖"},{value:"610403",label:"鏉ㄩ櫟鍖"},{value:"610404",label:"娓煄鍖"},{value:"610422",label:"涓夊師鍘"},{value:"610423",label:"娉鹃槼鍘"},{value:"610424",label:"涔惧幙"},{value:"610425",label:"绀兼硥鍘"},{value:"610426",label:"姘稿鍘"},{value:"610427",label:"褰幙"},{value:"610428",label:"闀挎鍘"},{value:"610429",label:"鏃倯鍘"},{value:"610430",label:"娣冲寲鍘"},{value:"610431",label:"姝﹀姛鍘"},{value:"610481",label:"鍏村钩甯"}]},{value:"610500",label:"娓崡甯",children:[{value:"610501",label:"甯傝緰鍖"},{value:"610502",label:"涓存腑鍖"},{value:"610503",label:"鍗庡窞鍖"},{value:"610522",label:"娼煎叧鍘"},{value:"610523",label:"澶ц崝鍘"},{value:"610524",label:"鍚堥槼鍘"},{value:"610525",label:"婢勫煄鍘"},{value:"610526",label:"钂插煄鍘"},{value:"610527",label:"鐧芥按鍘"},{value:"610528",label:"瀵屽钩鍘"},{value:"610581",label:"闊╁煄甯"},{value:"610582",label:"鍗庨槾甯"}]},{value:"610600",label:"寤跺畨甯",children:[{value:"610601",label:"甯傝緰鍖"},{value:"610602",label:"瀹濆鍖"},{value:"610603",label:"瀹夊鍖"},{value:"610621",label:"寤堕暱鍘"},{value:"610622",label:"寤跺窛鍘"},{value:"610623",label:"瀛愰暱鍘"},{value:"610625",label:"蹇椾腹鍘"},{value:"610626",label:"鍚磋捣鍘"},{value:"610627",label:"鐢樻硥鍘"},{value:"610628",label:"瀵屽幙"},{value:"610629",label:"娲涘窛鍘"},{value:"610630",label:"瀹滃窛鍘"},{value:"610631",label:"榛勯緳鍘"},{value:"610632",label:"榛勯櫟鍘"}]},{value:"610700",label:"姹変腑甯",children:[{value:"610701",label:"甯傝緰鍖"},{value:"610702",label:"姹夊彴鍖"},{value:"610703",label:"鍗楅儜鍖"},{value:"610722",label:"鍩庡浐鍘"},{value:"610723",label:"娲嬪幙"},{value:"610724",label:"瑗夸埂鍘"},{value:"610725",label:"鍕夊幙"},{value:"610726",label:"瀹佸己鍘"},{value:"610727",label:"鐣ラ槼鍘"},{value:"610728",label:"闀囧反鍘"},{value:"610729",label:"鐣欏潩鍘"},{value:"610730",label:"浣涘潽鍘"}]},{value:"610800",label:"姒嗘灄甯",children:[{value:"610801",label:"甯傝緰鍖"},{value:"610802",label:"姒嗛槼鍖"},{value:"610803",label:"妯北鍖"},{value:"610822",label:"搴滆胺鍘"},{value:"610824",label:"闈栬竟鍘"},{value:"610825",label:"瀹氳竟鍘"},{value:"610826",label:"缁ュ痉鍘"},{value:"610827",label:"绫宠剛鍘"},{value:"610828",label:"浣冲幙"},{value:"610829",label:"鍚村牎鍘"},{value:"610830",label:"娓呮锭鍘"},{value:"610831",label:"瀛愭床鍘"},{value:"610881",label:"绁炴湪甯"}]},{value:"610900",label:"瀹夊悍甯",children:[{value:"610901",label:"甯傝緰鍖"},{value:"610902",label:"姹夋花鍖"},{value:"610921",label:"姹夐槾鍘"},{value:"610922",label:"鐭虫硥鍘"},{value:"610923",label:"瀹侀檿鍘"},{value:"610924",label:"绱槼鍘"},{value:"610925",label:"宀氱殝鍘"},{value:"610926",label:"骞冲埄鍘"},{value:"610927",label:"闀囧潽鍘"},{value:"610928",label:"鏃槼鍘"},{value:"610929",label:"鐧芥渤鍘"}]},{value:"611000",label:"鍟嗘礇甯",children:[{value:"611001",label:"甯傝緰鍖"},{value:"611002",label:"鍟嗗窞鍖"},{value:"611021",label:"娲涘崡鍘"},{value:"611022",label:"涓瑰嚖鍘"},{value:"611023",label:"鍟嗗崡鍘"},{value:"611024",label:"灞遍槼鍘"},{value:"611025",label:"闀囧畨鍘"},{value:"611026",label:"鏌炴按鍘"}]}]},{value:'620000',label:'鐢樿們鐪',children:[{value:"620100",label:"鍏板窞甯",children:[{value:"620101",label:"甯傝緰鍖"},{value:"620102",label:"鍩庡叧鍖"},{value:"620103",label:"涓冮噷娌冲尯"},{value:"620104",label:"瑗垮浐鍖"},{value:"620105",label:"瀹夊畞鍖"},{value:"620111",label:"绾㈠彜鍖"},{value:"620121",label:"姘哥櫥鍘"},{value:"620122",label:"鐨嬪叞鍘"},{value:"620123",label:"姒嗕腑鍘"},{value:"620171",label:"鍏板窞鏂板尯"}]},{value:"620200",label:"鍢夊唱鍏冲競",children:[{value:"620201",label:"甯傝緰鍖"}]},{value:"620300",label:"閲戞槍甯",children:[{value:"620301",label:"甯傝緰鍖"},{value:"620302",label:"閲戝窛鍖"},{value:"620321",label:"姘告槍鍘"}]},{value:"620400",label:"鐧介摱甯",children:[{value:"620401",label:"甯傝緰鍖"},{value:"620402",label:"鐧介摱鍖"},{value:"620403",label:"骞冲窛鍖"},{value:"620421",label:"闈栬繙鍘"},{value:"620422",label:"浼氬畞鍘"},{value:"620423",label:"鏅嘲鍘"}]},{value:"620500",label:"澶╂按甯",children:[{value:"620501",label:"甯傝緰鍖"},{value:"620502",label:"绉﹀窞鍖"},{value:"620503",label:"楹︾Н鍖"},{value:"620521",label:"娓呮按鍘"},{value:"620522",label:"绉﹀畨鍘"},{value:"620523",label:"鐢樿胺鍘"},{value:"620524",label:"姝﹀北鍘"},{value:"620525",label:"寮犲宸濆洖鏃忚嚜娌诲幙"}]},{value:"620600",label:"姝﹀▉甯",children:[{value:"620601",label:"甯傝緰鍖"},{value:"620602",label:"鍑夊窞鍖"},{value:"620621",label:"姘戝嫟鍘"},{value:"620622",label:"鍙ゆ氮鍘"},{value:"620623",label:"澶╃钘忔棌鑷不鍘"}]},{value:"620700",label:"寮犳帠甯",children:[{value:"620701",label:"甯傝緰鍖"},{value:"620702",label:"鐢樺窞鍖"},{value:"620721",label:"鑲冨崡瑁曞浐鏃忚嚜娌诲幙"},{value:"620722",label:"姘戜箰鍘"},{value:"620723",label:"涓存辰鍘"},{value:"620724",label:"楂樺彴鍘"},{value:"620725",label:"灞变腹鍘"}]},{value:"620800",label:"骞冲噳甯",children:[{value:"620801",label:"甯傝緰鍖"},{value:"620802",label:"宕嗗硳鍖"},{value:"620821",label:"娉惧窛鍘"},{value:"620822",label:"鐏靛彴鍘"},{value:"620823",label:"宕囦俊鍘"},{value:"620824",label:"鍗庝涵鍘"},{value:"620825",label:"搴勬氮鍘"},{value:"620826",label:"闈欏畞鍘"},{value:"620871",label:"骞冲噳宸ヤ笟鍥尯"}]},{value:"620900",label:"閰掓硥甯",children:[{value:"620901",label:"甯傝緰鍖"},{value:"620902",label:"鑲冨窞鍖"},{value:"620921",label:"閲戝鍘"},{value:"620922",label:"鐡滃窞鍘"},{value:"620923",label:"鑲冨寳钂欏彜鏃忚嚜娌诲幙"},{value:"620924",label:"闃垮厠濉炲搱钀ㄥ厠鏃忚嚜娌诲幙"},{value:"620981",label:"鐜夐棬甯"},{value:"620982",label:"鏁︾厡甯"}]},{value:"621000",label:"搴嗛槼甯",children:[{value:"621001",label:"甯傝緰鍖"},{value:"621002",label:"瑗垮嘲鍖"},{value:"621021",label:"搴嗗煄鍘"},{value:"621022",label:"鐜幙"},{value:"621023",label:"鍗庢睜鍘"},{value:"621024",label:"鍚堟按鍘"},{value:"621025",label:"姝e畞鍘"},{value:"621026",label:"瀹佸幙"},{value:"621027",label:"闀囧師鍘"}]},{value:"621100",label:"瀹氳タ甯",children:[{value:"621101",label:"甯傝緰鍖"},{value:"621102",label:"瀹夊畾鍖"},{value:"621121",label:"閫氭腑鍘"},{value:"621122",label:"闄囪タ鍘"},{value:"621123",label:"娓簮鍘"},{value:"621124",label:"涓存串鍘"},{value:"621125",label:"婕冲幙"},{value:"621126",label:"宀峰幙"}]},{value:"621200",label:"闄囧崡甯",children:[{value:"621201",label:"甯傝緰鍖"},{value:"621202",label:"姝﹂兘鍖"},{value:"621221",label:"鎴愬幙"},{value:"621222",label:"鏂囧幙"},{value:"621223",label:"瀹曟槍鍘"},{value:"621224",label:"搴峰幙"},{value:"621225",label:"瑗垮拰鍘"},{value:"621226",label:"绀煎幙"},{value:"621227",label:"寰藉幙"},{value:"621228",label:"涓ゅ綋鍘"}]},{value:"622900",label:"涓村鍥炴棌鑷不宸",children:[{value:"622901",label:"涓村甯"},{value:"622921",label:"涓村鍘"},{value:"622922",label:"搴蜂箰鍘"},{value:"622923",label:"姘搁潠鍘"},{value:"622924",label:"骞挎渤鍘"},{value:"622925",label:"鍜屾斂鍘"},{value:"622926",label:"涓滀埂鏃忚嚜娌诲幙"},{value:"622927",label:"绉煶灞变繚瀹夋棌涓滀埂鏃忔拻鎷夋棌鑷不鍘"}]},{value:"623000",label:"鐢樺崡钘忔棌鑷不宸",children:[{value:"623001",label:"鍚堜綔甯"},{value:"623021",label:"涓存江鍘"},{value:"623022",label:"鍗撳凹鍘"},{value:"623023",label:"鑸熸洸鍘"},{value:"623024",label:"杩儴鍘"},{value:"623025",label:"鐜涙洸鍘"},{value:"623026",label:"纰屾洸鍘"},{value:"623027",label:"澶忔渤鍘"}]}]},{value:'630000',label:'闈掓捣鐪',children:[{value:"630100",label:"瑗垮畞甯",children:[{value:"630101",label:"甯傝緰鍖"},{value:"630102",label:"鍩庝笢鍖"},{value:"630103",label:"鍩庝腑鍖"},{value:"630104",label:"鍩庤タ鍖"},{value:"630105",label:"鍩庡寳鍖"},{value:"630121",label:"澶ч氬洖鏃忓湡鏃忚嚜娌诲幙"},{value:"630122",label:"婀熶腑鍘"},{value:"630123",label:"婀熸簮鍘"}]},{value:"630200",label:"娴蜂笢甯",children:[{value:"630202",label:"涔愰兘鍖"},{value:"630203",label:"骞冲畨鍖"},{value:"630222",label:"姘戝拰鍥炴棌鍦熸棌鑷不鍘"},{value:"630223",label:"浜掑姪鍦熸棌鑷不鍘"},{value:"630224",label:"鍖栭殕鍥炴棌鑷不鍘"},{value:"630225",label:"寰寲鎾掓媺鏃忚嚜娌诲幙"}]},{value:"632200",label:"娴峰寳钘忔棌鑷不宸",children:[{value:"632221",label:"闂ㄦ簮鍥炴棌鑷不鍘"},{value:"632222",label:"绁佽繛鍘"},{value:"632223",label:"娴锋檹鍘"},{value:"632224",label:"鍒氬療鍘"}]},{value:"632300",label:"榛勫崡钘忔棌鑷不宸",children:[{value:"632321",label:"鍚屼粊鍘"},{value:"632322",label:"灏栨墡鍘"},{value:"632323",label:"娉藉簱鍘"},{value:"632324",label:"娌冲崡钂欏彜鏃忚嚜娌诲幙"}]},{value:"632500",label:"娴峰崡钘忔棌鑷不宸",children:[{value:"632521",label:"鍏卞拰鍘"},{value:"632522",label:"鍚屽痉鍘"},{value:"632523",label:"璐靛痉鍘"},{value:"632524",label:"鍏存捣鍘"},{value:"632525",label:"璐靛崡鍘"}]},{value:"632600",label:"鏋滄礇钘忔棌鑷不宸",children:[{value:"632621",label:"鐜涙瞾鍘"},{value:"632622",label:"鐝帥鍘"},{value:"632623",label:"鐢樺痉鍘"},{value:"632624",label:"杈炬棩鍘"},{value:"632625",label:"涔呮不鍘"},{value:"632626",label:"鐜涘鍘"}]},{value:"632700",label:"鐜夋爲钘忔棌鑷不宸",children:[{value:"632701",label:"鐜夋爲甯"},{value:"632722",label:"鏉傚鍘"},{value:"632723",label:"绉板鍘"},{value:"632724",label:"娌诲鍘"},{value:"632725",label:"鍥婅唉鍘"},{value:"632726",label:"鏇查夯鑾卞幙"}]},{value:"632800",label:"娴疯タ钂欏彜鏃忚棌鏃忚嚜娌诲窞",children:[{value:"632801",label:"鏍煎皵鏈ㄥ競"},{value:"632802",label:"寰蜂护鍝堝競"},{value:"632821",label:"涔屽叞鍘"},{value:"632822",label:"閮藉叞鍘"},{value:"632823",label:"澶╁郴鍘"},{value:"632857",label:"澶ф煷鏃﹁鏀垮鍛樹細"},{value:"632858",label:"鍐锋箹琛屾斂濮斿憳浼"},{value:"632859",label:"鑼礀琛屾斂濮斿憳浼"}]}]},{value:'640000',label:'瀹佸',children:[{value:"640100",label:"閾跺窛甯",children:[{value:"640101",label:"甯傝緰鍖"},{value:"640104",label:"鍏村簡鍖"},{value:"640105",label:"瑗垮鍖"},{value:"640106",label:"閲戝嚖鍖"},{value:"640121",label:"姘稿畞鍘"},{value:"640122",label:"璐哄叞鍘"},{value:"640181",label:"鐏垫甯"}]},{value:"640200",label:"鐭冲槾灞卞競",children:[{value:"640201",label:"甯傝緰鍖"},{value:"640202",label:"澶ф鍙e尯"},{value:"640205",label:"鎯犲啘鍖"},{value:"640221",label:"骞崇綏鍘"}]},{value:"640300",label:"鍚村繝甯",children:[{value:"640301",label:"甯傝緰鍖"},{value:"640302",label:"鍒╅氬尯"},{value:"640303",label:"绾㈠鍫″尯"},{value:"640323",label:"鐩愭睜鍘"},{value:"640324",label:"鍚屽績鍘"},{value:"640381",label:"闈掗摐宄″競"}]},{value:"640400",label:"鍥哄師甯",children:[{value:"640401",label:"甯傝緰鍖"},{value:"640402",label:"鍘熷窞鍖"},{value:"640422",label:"瑗垮悏鍘"},{value:"640423",label:"闅嗗痉鍘"},{value:"640424",label:"娉炬簮鍘"},{value:"640425",label:"褰槼鍘"}]},{value:"640500",label:"涓崼甯",children:[{value:"640501",label:"甯傝緰鍖"},{value:"640502",label:"娌欏潯澶村尯"},{value:"640521",label:"涓畞鍘"},{value:"640522",label:"娴峰師鍘"}]}]},{value:'650000',label:'鏂扮枂',children:[{value:"650100",label:"涔岄瞾鏈ㄩ綈甯",children:[{value:"650101",label:"甯傝緰鍖"},{value:"650102",label:"澶╁北鍖"},{value:"650103",label:"娌欎緷宸村厠鍖"},{value:"650104",label:"鏂板競鍖"},{value:"650105",label:"姘寸(娌熷尯"},{value:"650106",label:"澶村悲娌冲尯"},{value:"650107",label:"杈惧潅鍩庡尯"},{value:"650109",label:"绫充笢鍖"},{value:"650121",label:"涔岄瞾鏈ㄩ綈鍘"},{value:"650171",label:"涔岄瞾鏈ㄩ綈缁忔祹鎶鏈紑鍙戝尯"},{value:"650172",label:"涔岄瞾鏈ㄩ綈楂樻柊鎶鏈骇涓氬紑鍙戝尯"}]},{value:"650200",label:"鍏嬫媺鐜涗緷甯",children:[{value:"650201",label:"甯傝緰鍖"},{value:"650202",label:"鐙北瀛愬尯"},{value:"650203",label:"鍏嬫媺鐜涗緷鍖"},{value:"650204",label:"鐧界⒈婊╁尯"},{value:"650205",label:"涔屽皵绂惧尯"}]},{value:"650400",label:"鍚愰瞾鐣競",children:[{value:"650402",label:"楂樻槍鍖"},{value:"650421",label:"閯杽鍘"},{value:"650422",label:"鎵樺厠閫婂幙"}]},{value:"650500",label:"鍝堝瘑甯",children:[{value:"650502",label:"浼婂窞鍖"},{value:"650521",label:"宸撮噷鍧ゅ搱钀ㄥ厠鑷不鍘"},{value:"650522",label:"浼婂惥鍘"}]},{value:"652300",label:"鏄屽悏鍥炴棌鑷不宸",children:[{value:"652301",label:"鏄屽悏甯"},{value:"652302",label:"闃滃悍甯"},{value:"652323",label:"鍛煎浘澹佸幙"},{value:"652324",label:"鐜涚撼鏂幙"},{value:"652325",label:"濂囧彴鍘"},{value:"652327",label:"鍚夋湪钀ㄥ皵鍘"},{value:"652328",label:"鏈ㄥ瀿鍝堣惃鍏嬭嚜娌诲幙"}]},{value:"652700",label:"鍗氬皵濉旀媺钂欏彜鑷不宸",children:[{value:"652701",label:"鍗氫箰甯"},{value:"652702",label:"闃挎媺灞卞彛甯"},{value:"652722",label:"绮炬渤鍘"},{value:"652723",label:"娓╂硥鍘"}]},{value:"652800",label:"宸撮煶閮钂欏彜鑷不宸",children:[{value:"652801",label:"搴撳皵鍕掑競"},{value:"652822",label:"杞彴鍘"},{value:"652823",label:"灏夌妬鍘"},{value:"652824",label:"鑻ョ緦鍘"},{value:"652825",label:"涓旀湯鍘"},{value:"652826",label:"鐒夎嗗洖鏃忚嚜娌诲幙"},{value:"652827",label:"鍜岄潤鍘"},{value:"652828",label:"鍜岀鍘"},{value:"652829",label:"鍗氭箹鍘"},{value:"652871",label:"搴撳皵鍕掔粡娴庢妧鏈紑鍙戝尯"}]},{value:"652900",label:"闃垮厠鑻忓湴鍖",children:[{value:"652901",label:"闃垮厠鑻忓競"},{value:"652922",label:"娓╁鍘"},{value:"652923",label:"搴撹溅鍘"},{value:"652924",label:"娌欓泤鍘"},{value:"652925",label:"鏂板拰鍘"},{value:"652926",label:"鎷滃煄鍘"},{value:"652927",label:"涔屼粈鍘"},{value:"652928",label:"闃跨摝鎻愬幙"},{value:"652929",label:"鏌潽鍘"}]},{value:"653000",label:"鍏嬪瓬鍕掕嫃鏌皵鍏嬪瓬鑷不宸",children:[{value:"653001",label:"闃垮浘浠甯"},{value:"653022",label:"闃垮厠闄跺幙"},{value:"653023",label:"闃垮悎濂囧幙"},{value:"653024",label:"涔屾伆鍘"}]},{value:"653100",label:"鍠浠鍦板尯",children:[{value:"653101",label:"鍠浠甯"},{value:"653121",label:"鐤忛檮鍘"},{value:"653122",label:"鐤忓嫆鍘"},{value:"653123",label:"鑻卞悏娌欏幙"},{value:"653124",label:"娉芥櫘鍘"},{value:"653125",label:"鑾庤溅鍘"},{value:"653126",label:"鍙跺煄鍘"},{value:"653127",label:"楹︾洊鎻愬幙"},{value:"653128",label:"宀虫櫘婀栧幙"},{value:"653129",label:"浼藉笀鍘"},{value:"653130",label:"宸存鍘"},{value:"653131",label:"濉斾粈搴撳皵骞插鍚夊厠鑷不鍘"}]},{value:"653200",label:"鍜岀敯鍦板尯",children:[{value:"653201",label:"鍜岀敯甯"},{value:"653221",label:"鍜岀敯鍘"},{value:"653222",label:"澧ㄧ帀鍘"},{value:"653223",label:"鐨北鍘"},{value:"653224",label:"娲涙郸鍘"},{value:"653225",label:"绛栧嫆鍘"},{value:"653226",label:"浜庣敯鍘"},{value:"653227",label:"姘戜赴鍘"}]},{value:"654000",label:"浼婄妬鍝堣惃鍏嬭嚜娌诲窞",children:[{value:"654002",label:"浼婂畞甯"},{value:"654003",label:"濂庡悲甯"},{value:"654004",label:"闇嶅皵鏋滄柉甯"},{value:"654021",label:"浼婂畞鍘"},{value:"654022",label:"瀵熷竷鏌ュ皵閿′集鑷不鍘"},{value:"654023",label:"闇嶅煄鍘"},{value:"654024",label:"宸╃暀鍘"},{value:"654025",label:"鏂版簮鍘"},{value:"654026",label:"鏄嫃鍘"},{value:"654027",label:"鐗瑰厠鏂幙"},{value:"654028",label:"灏煎嫆鍏嬪幙"}]},{value:"654200",label:"濉斿煄鍦板尯",children:[{value:"654201",label:"濉斿煄甯"},{value:"654202",label:"涔岃嫃甯"},{value:"654221",label:"棰濇晱鍘"},{value:"654223",label:"娌欐咕鍘"},{value:"654224",label:"鎵橀噷鍘"},{value:"654225",label:"瑁曟皯鍘"},{value:"654226",label:"鍜屽竷鍏嬭禌灏旇挋鍙よ嚜娌诲幙"}]},{value:"654300",label:"闃垮嫆娉板湴鍖",children:[{value:"654301",label:"闃垮嫆娉板競"},{value:"654321",label:"甯冨皵娲ュ幙"},{value:"654322",label:"瀵岃暣鍘"},{value:"654323",label:"绂忔捣鍘"},{value:"654324",label:"鍝堝反娌冲幙"},{value:"654325",label:"闈掓渤鍘"},{value:"654326",label:"鍚夋湪涔冨幙"}]},{value:"659000",label:"鑷不鍖虹洿杈栧幙绾ц鏀垮尯鍒",children:[{value:"659001",label:"鐭虫渤瀛愬競"},{value:"659002",label:"闃挎媺灏斿競"},{value:"659003",label:"鍥炬湪鑸掑厠甯"},{value:"659004",label:"浜斿娓犲競"},{value:"659006",label:"閾侀棬鍏冲競"}]}]},{value:'660000',label:'鍙版咕鐪',children:[{value:"660100",label:"鍙板寳甯",children:[{value:"660101",label:"涓鍖"},{value:"660102",label:"澶у悓鍖"},{value:"660103",label:"涓北鍖"},{value:"660104",label:"鏉惧北鍖"},{value:"660105",label:"澶у畨鍖"},{value:"660106",label:"涓囧崕鍖"},{value:"660107",label:"淇′箟鍖"},{value:"660108",label:"澹灄鍖"},{value:"660109",label:"鍖楁姇鍖"},{value:"660110",label:"鍐呮箹鍖"},{value:"660111",label:"鍗楁腐鍖"},{value:"660112",label:"鏂囧北鍖"}]},{value:"660200",label:"楂橀泟甯",children:[{value:"660201",label:"鏂板叴鍖"},{value:"660202",label:"鍓嶉噾鍖"},{value:"660203",label:"鑺╅泤鍖"},{value:"660204",label:"鐩愬煏鍖"},{value:"660205",label:"榧撳北鍖"},{value:"660206",label:"鏃楁触鍖"},{value:"660207",label:"鍓嶉晣鍖"},{value:"660208",label:"涓夋皯鍖"},{value:"660209",label:"宸﹁惀鍖"},{value:"660210",label:"妤犳鍖"},{value:"660211",label:"灏忔腐鍖"}]},{value:"660300",label:"鍙板崡甯",children:[{value:"660301",label:"涓タ鍖"},{value:"660302",label:"涓滃尯"},{value:"660303",label:"鍗楀尯"},{value:"660304",label:"鍖楀尯"},{value:"660305",label:"瀹夊钩鍖"},{value:"660306",label:"瀹夊崡鍖"}]},{value:"660400",label:"鍙颁腑甯",children:[{value:"660401",label:"涓尯"},{value:"660402",label:"涓滃尯"},{value:"660403",label:"鍗楀尯"},{value:"660404",label:"瑗垮尯"},{value:"660405",label:"鍖楀尯"},{value:"660406",label:"鍖楀悲鍖"},{value:"660407",label:"瑗垮悲鍖"},{value:"660408",label:"鍗楀悲鍖"}]},{value:"660500",label:"閲戦棬鍘",children:[{value:"660501",label:"閲戦棬鍘"}]},{value:"660600",label:"鍗楁姇鍘",children:[{value:"660601",label:"鍗楁姇鍘",}]},{value:"660700",label:"鍩洪殕甯",children:[{value:"660701",label:"浠佺埍鍖"},{value:"660702",label:"淇′箟鍖"},{value:"660703",label:"涓鍖"},{value:"660704",label:"涓北鍖"},{value:"660705",label:"瀹変箰鍖"},{value:"660706",label:"鏆栨殩鍖"},{value:"660707",label:"涓冨牭鍖"}]},{value:"660800",label:"鏂扮甯",children:[{value:"660801",label:"涓滃尯"},{value:"660802",label:"鍖楀尯"},{value:"660803",label:"棣欏北鍖"}]},{value:"660900",label:"鍢変箟甯",children:[{value:"660901",label:"涓滃尯"},{value:"660902",label:"瑗垮尯"}]},{value:"661000",label:"鏂板寳甯",children:[{value:"661001",label:"鏂板寳甯"}]},{value:"661100",label:"瀹滃叞鍘",children:[{value:"661100",label:"瀹滃叞鍘"}]},{value:"661200",label:"鏂扮鍘",children:[{value:"661201",label:"鏂扮鍘"}]},{value:"661300",label:"妗冨洯鍘",children:[{value:"661301",label:"妗冨洯鍘"}]},{value:"661400",label:"鑻楁牀鍘",children:[{value:"661401",label:"鑻楁牀鍘"}]},{value:"661500",label:"褰板寲鍘",children:[{value:"661501",label:"褰板寲鍘"}]},{value:"661600",label:"鍢変箟鍘",children:[{value:"661601",label:"鍢変箟鍘"}]},{value:"661700",label:"浜戞灄鍘",children:[{value:"661701",label:"浜戞灄鍘"}]},{value:"661800",label:"灞忎笢鍘",children:[{value:"661801",label:"灞忎笢鍘"}]},{value:"661900",label:"鍙颁笢鍘",children:[{value:"661901",label:"鍙颁笢鍘"}]},{value:"662000",label:"鑺辫幉鍘",children:[{value:"662001",label:"鑺辫幉鍘"}]},{value:"662100",label:"婢庢箹鍘",children:[{value:"662101",label:"婢庢箹鍘"}]}]},{value:'670000',label:'棣欐腐',children:[{value:"670100",label:"棣欐腐宀",children:[{value:"670101",label:"涓タ鍖"},{value:"670102",label:"婀句粩鍖"},{value:"670103",label:"涓滃尯"},{value:"670104",label:"鍗楀尯"}]},{value:"670200",label:"涔濋緳鍗婂矝",children:[{value:"670201",label:"涔濋緳鍩庡尯"},{value:"670202",label:"娌瑰皷鏃哄尯"},{value:"670203",label:"娣辨按鍩楀尯"},{value:"670204",label:"榛勫ぇ浠欏尯"},{value:"670205",label:"瑙傚鍖"}]},{value:"670300",label:"鏂扮晫",children:[{value:"670301",label:"鍖楀尯"},{value:"670302",label:"澶у煍鍖"},{value:"670303",label:"娌欑敯鍖"},{value:"670304",label:"瑗胯础鍖"},{value:"670305",label:"鍏冩湕鍖"},{value:"670306",label:"灞棬鍖"},{value:"670307",label:"鑽冩咕鍖"},{value:"670308",label:"钁甸潚鍖"},{value:"670309",label:"绂诲矝鍖"}]}]},{value:'680000',label:'婢抽棬',children:[{value:"680100",label:"婢抽棬鍗婂矝",children:[{value:"680101",label:"鑺卞湴鐜涘爞鍖"},{value:"680102",label:"鍦e畨澶氬凹鍫傚尯"},{value:"680103",label:"澶у爞鍖"},{value:"680104",label:"鏈涘痉鍫傚尯"},{value:"680105",label:"椋庨『鍫傚尯"}]},{value:"680200",label:"绂诲矝",children:[{value:"680201",label:"鍢夋ā鍫傚尯"},{value:"680202",label:"鍦f柟娴庡悇鍫傚尯"}]}]}];export default cityData \ No newline at end of file diff --git a/components/w-picker/date-picker.vue b/components/w-picker/date-picker.vue new file mode 100644 index 0000000..c0154d5 --- /dev/null +++ b/components/w-picker/date-picker.vue @@ -0,0 +1,742 @@ + + + + + {{item}}骞 + + + + + {{item}}骞 + + + {{item}}鏈 + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + {{item}}鏃 + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + {{item}}鏃 + + + {{item}}鍒 + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + {{item}}鏃 + + + {{item}}鍒 + + + {{item}}绉 + + + + + + + + diff --git a/components/w-picker/half-picker.vue b/components/w-picker/half-picker.vue new file mode 100644 index 0000000..0fdfb33 --- /dev/null +++ b/components/w-picker/half-picker.vue @@ -0,0 +1,345 @@ + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + {{item}} + + + + + + + + diff --git a/components/w-picker/linkage-picker.vue b/components/w-picker/linkage-picker.vue new file mode 100644 index 0000000..290422d --- /dev/null +++ b/components/w-picker/linkage-picker.vue @@ -0,0 +1,274 @@ + + + + + {{item[nodeKey]}} + + + + + + + + + diff --git a/components/w-picker/range-picker.vue b/components/w-picker/range-picker.vue new file mode 100644 index 0000000..7dd8b5b --- /dev/null +++ b/components/w-picker/range-picker.vue @@ -0,0 +1,344 @@ + + + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + - + + + {{item}}骞 + + + {{item}}鏈 + + + {{item}}鏃 + + + + + + + + diff --git a/components/w-picker/region-picker.vue b/components/w-picker/region-picker.vue new file mode 100644 index 0000000..34c1f40 --- /dev/null +++ b/components/w-picker/region-picker.vue @@ -0,0 +1,183 @@ + + + + + {{item.label}} + + + {{item.label}} + + + {{item.label}} + + + + + + + + + diff --git a/components/w-picker/selector-picker.vue b/components/w-picker/selector-picker.vue new file mode 100644 index 0000000..6ce2ced --- /dev/null +++ b/components/w-picker/selector-picker.vue @@ -0,0 +1,129 @@ + + + + + {{item[nodeKey]}} + + + + + + + + diff --git a/components/w-picker/shortterm-picker.vue b/components/w-picker/shortterm-picker.vue new file mode 100644 index 0000000..d133cf4 --- /dev/null +++ b/components/w-picker/shortterm-picker.vue @@ -0,0 +1,250 @@ + + + + + {{item.label}} + + + {{item.label}}鏃 + + + {{item.label}}鍒 + + + + + + + + diff --git a/components/w-picker/time-picker.vue b/components/w-picker/time-picker.vue new file mode 100644 index 0000000..2fc57e4 --- /dev/null +++ b/components/w-picker/time-picker.vue @@ -0,0 +1,218 @@ + + + + + {{item}}鏃 + + + {{item}}鍒 + + + {{item}}绉 + + + + + + + + + diff --git a/components/w-picker/w-picker.css b/components/w-picker/w-picker.css new file mode 100644 index 0000000..fb42e78 --- /dev/null +++ b/components/w-picker/w-picker.css @@ -0,0 +1,26 @@ +.w-picker-flex2{ + flex:2; +} +.w-picker-flex1{ + flex:1; +} +.w-picker-view { + width: 100%; + height: 476upx; + overflow: hidden; + background-color: rgba(255, 255, 255, 1); + z-index: 666; +} +.d-picker-view{ + height: 100%; +} + +.w-picker-item { + text-align: center; + width: 100%; + height: 88upx; + line-height: 88upx; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 30upx; +} \ No newline at end of file diff --git a/components/w-picker/w-picker.vue b/components/w-picker/w-picker.vue new file mode 100644 index 0000000..d8f7d76 --- /dev/null +++ b/components/w-picker/w-picker.vue @@ -0,0 +1,340 @@ + + + + + + 鍙栨秷 + + 纭畾 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/app.js b/config/app.js new file mode 100644 index 0000000..a618211 --- /dev/null +++ b/config/app.js @@ -0,0 +1,56 @@ +let httpApiThree; +let httpApi; // 鎬诲煙鍚 +let httpApiTwo; // 鐗╂祦绯荤粺鍩熷悕 + +const env = 'dev'; // 寮鍙 +// const env = 'prod'; // 鐢熶骇 +// const env = 'prew'; // 棰勪笂绾 +// const env = 'local'; // 鏈湴 + +switch (env) { + case 'prod': + httpApi = 'https://worker-task.lihaink.cn' //姝e紡 + httpApiTwo = 'https://logistics.lihaink.cn' //姝e紡鐜 + httpApiThree = 'https://worker-task.lihaink.cn' //姝e紡 + break; + case 'prew': + httpApi = 'https://preview-worker-task.lihaink.cn' //棰勪笂绾 + httpApiThree = 'https://preview-worker-task.lihaink.cn' //棰勪笂绾 + httpApiTwo = 'https://preview-logistics.lihaink.cn' //棰勪笂绾 + break; + case 'local': + httpApi = 'http://192.168.1.12:8001' //棰勪笂绾 + httpApiThree = 'http://192.168.1.12:8001' //棰勪笂绾 + httpApiTwo = 'http://192.168.1.12:8001' //棰勪笂绾 + break; + default: + httpApi = 'https://ceshi-lstsy.lihaink.cn' //娴嬭瘯鐜 + httpApiThree = 'https://ceshi-lstsy.lihaink.cn' //娴嬭瘯鐜 + httpApiTwo = 'https://ceshi-lstsy.lihaink.cn' //娴嬭瘯鐜 + //娴嬭瘯鐜 +} + + +module.exports = { + // 璇锋眰鍩熷悕 鏍煎紡锛 https://鎮ㄧ殑鍩熷悕 + HTTP_REQUEST_URL: httpApi, + HTTP_REQUEST_URL_THREE: httpApiThree, + HTTP_REQUEST_URL_TWO: httpApiTwo, + + + + HEADER: { + 'content-type': 'application/json', + //#ifdef MP + 'Form-type': 'routine', + //#endif + //#ifdef APP-PLUS + 'Form-type': 'app', + //#endif + }, + // 鍥炶瘽瀵嗛挜鍚嶇О 璇峰嬁淇敼姝ら厤缃 + // TOKENNAME: 'X-Token', + TOKENNAME: 'token', + // 缂撳瓨鏃堕棿 0 姘镐箙 + EXPIRE: 0, +}; \ No newline at end of file diff --git a/config/cache.js b/config/cache.js new file mode 100644 index 0000000..b824d12 --- /dev/null +++ b/config/cache.js @@ -0,0 +1,41 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +module.exports = { + //token + LOGIN_STATUS: 'LOGIN_STATUS_TOKEN', + // uid + UID:'UID', + //锟矫伙拷 + USER_INFO: 'USER_INFO', + //token锟斤拷锟斤拷锟铰硷拷 + EXPIRES_TIME: 'EXPIRES_TIME', + //锟角凤拷锟斤拷权 + WX_AUTH: 'WX_AUTH', + //锟斤拷锟节猴拷锟斤拷权code + STATE_KEY: 'wx_authorize_state', + //锟矫伙拷锟斤拷锟斤拷 + LOGINTYPE: 'loginType', + //锟斤拷锟节猴拷锟斤拷转锟斤拷锟斤拷 + BACK_URL: 'login_back_url', + // 小锟斤拷锟斤拷code + STATE_R_KEY: 'roution_authorize_state', + //锟斤拷权logo小锟斤拷锟斤拷 + LOGO_URL: 'LOGO_URL', + //妯℃澘缂撳瓨 + SUBSCRIBE_MESSAGE: 'SUBSCRIBE_MESSAGE', + + TIPS_KEY: 'TIPS_KEY', + + SPREAD: 'spread', + //缂撳瓨缁忓害 + CACHE_LONGITUDE: 'LONGITUDE', + //缂撳瓨绾害 + CACHE_LATITUDE: 'LATITUDE', +} diff --git a/libs/login.js b/libs/login.js new file mode 100644 index 0000000..9346b8f --- /dev/null +++ b/libs/login.js @@ -0,0 +1,104 @@ +// +---------------------------------------------------------------------- +// | CRMEB [ CRMEB璧嬭兘寮鍙戣咃紝鍔╁姏浼佷笟鍙戝睍 ] +// +---------------------------------------------------------------------- +// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. +// +---------------------------------------------------------------------- +// | Licensed CRMEB骞朵笉鏄嚜鐢辫蒋浠讹紝鏈粡璁稿彲涓嶈兘鍘绘帀CRMEB鐩稿叧鐗堟潈 +// +---------------------------------------------------------------------- +// | Author: CRMEB Team +// +---------------------------------------------------------------------- +import store from "../store"; +import Cache from '../utils/cache'; +// #ifdef H5 +// import { isWeixin } from "../utils"; +// import auth from './wechat'; +// #endif + +import { + LOGIN_STATUS, + USER_INFO, + EXPIRES_TIME, + STATE_R_KEY +} from './../config/cache'; + +function prePage() { + let pages = getCurrentPages(); + console.log(pages) + let prePage = pages[pages.length - 2]; + // #ifdef H5 + return prePage; + // #endif + //return prePage.$vm; +} + +export function toLogin(push, pathLogin) { + store.commit("LOGOUT"); + let path = prePage(); + if (path) { + path = path.router; + if (path == undefined) { + path = location.pathname + location.search; + } + } + // #ifdef MP + uni.navigateTo({ + url: '/page/users/login/login' + }) + // #endif + // #ifdef H5 + else { + path = location.pathname + location.search; + } + // #endif + + if (!pathLogin) + pathLogin = '/page/users/login/login' + Cache.set('login_back_url', path); + uni.navigateTo({ + url: '/pages/users/login/login' + }) + // #ifdef H5 + if (isWeixin()) { + // auth.oAuth(); // 寰俊鎺堟潈 + uni.navigateTo({ + url: '/pages/users/login/login' + }) + } else { + if (path !== pathLogin) { + push ? uni.navigateTo({ + url: '/pages/users/login/login' + }) : uni.reLaunch({ + url: '/pages/users/login/login' + }); + } + } + // #endif + + // #ifdef APP-PLUS + uni.navigateTo({ + url: '/pages/users/login/login', + }) + // #endif +} + + +export function checkLogin() { + let token = Cache.get(LOGIN_STATUS); + let expiresTime = Cache.get(EXPIRES_TIME) || 0; + let newTime = Math.round(new Date() / 1000); + if (expiresTime < newTime || !token) { + Cache.clear(LOGIN_STATUS); + Cache.clear(EXPIRES_TIME); + Cache.clear(USER_INFO); + Cache.clear(STATE_R_KEY); + return false; + } else { + store.commit('UPDATE_LOGIN', token); + let userInfo = Cache.get(USER_INFO, true); + if (userInfo) { + store.commit('UPDATE_USERINFO', userInfo); + } + return true; + } + +} diff --git a/libs/routine.js b/libs/routine.js new file mode 100644 index 0000000..7d1be4d --- /dev/null +++ b/libs/routine.js @@ -0,0 +1,186 @@ +import store from '@/store'; +import { checkLogin } from './login'; +import { login } from '@/api/pubic.js'; +import Cache from '@/utils/cache'; +import { STATE_R_KEY, USER_INFO, EXPIRES_TIME, LOGIN_STATUS } from '@/config/cache'; + +class Routine { + + constructor() { + this.scopeUserInfo = 'scope.userInfo'; + } + + async getUserCode() { + let isAuth = await this.isAuth(), + code = ''; + if (isAuth) + code = await this.getCode(); + return code; + } + + /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + */ + getUserInfo() { + let that = this, + code = this.getUserCode(); + return new Promise((resolve, reject) => { + uni.getUserInfo({ + lang: 'zh_CN', + success(user) { + if (code) user.code = code; + resolve({ userInfo: user, islogin: false }); + }, + fail(res) { + reject(res); + } + }) + }) + } + + /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + */ + authorize() { + let c2543fff3bfa6f144c2f06a7de6cd10c0b650cae = this; + return new Promise((resolve, reject) => { + if (checkLogin()) + return resolve({ + userInfo: Cache.get(USER_INFO, true), + islogin: true, + }); + uni.authorize({ + scope: c2543fff3bfa6f144c2f06a7de6cd10c0b650cae.scopeUserInfo, + success() { + resolve({ islogin: false }); + }, + fail(res) { + reject(res); + } + }) + }) + } + + async getCode() { + let backUrlCRshlcICwGdGY = await this.getProvider(); + return new Promise((resolve, reject) => { + if (Cache.has(STATE_R_KEY)) { + return resolve(Cache.get(STATE_R_KEY)); + } + uni.login({ + provider: backUrlCRshlcICwGdGY, + success(res) { + if (res.code) Cache.set(STATE_R_KEY, res.code, 10800); + return resolve(res.code); + }, + fail() { + return reject(null); + } + }) + }) + } + + /** + * 鑾峰彇鏈嶅姟渚涘簲鍟 + */ + getProvider() { + return new Promise((resolve, reject) => { + uni.getProvider({ + service: 'oauth', + success(res) { + resolve(res.provider); + }, + fail() { + resolve(false); + } + }); + }); + } + + /** + * 鏄惁鎺堟潈 + */ + isAuth() { + let that = this; + return new Promise((resolve, reject) => { + uni.getSetting({ + success(res) { + if (!res.authSetting[that.scopeUserInfo]) { + resolve(true) + } else { + resolve(true); + } + }, + fail() { + resolve(false); + } + }); + }); + } + getUserProfile(code) { + return new Promise((resolve, reject) => { + uni.getUserProfile({ + lang: 'zh_CN', + desc: '鐢ㄤ簬瀹屽杽浼氬憳璧勬枡', // 澹版槑鑾峰彇鐢ㄦ埛涓汉淇℃伅鍚庣殑鐢ㄩ旓紝鍚庣画浼氬睍绀哄湪寮圭獥涓紝璇疯皑鎱庡~鍐 + success(user) { + if (code) user.code = code; + resolve({ + userInfo: user, + islogin: false + }); + }, + fail(res) { + reject(res); + } + }) + }) + } + /** + * 灏忕▼搴忔瘮杈冪増鏈俊鎭 + * @param v1 褰撳墠鐗堟湰 + * @param v2 杩涜姣旇緝鐨勭増鏈 + * @return boolen + * + */ + compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i]) + const num2 = parseInt(v2[i]) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 + } + authUserInfo(data) { + return new Promise((resolve, reject) => { + login(data).then(res => { + let time = res.data.expires_time - Cache.time(); + store.commit('UPDATE_USERINFO', res.data.user); + store.commit('LOGIN', { token: res.data.token, time: time }); + store.commit('SETUID', res.data.user.uid); + Cache.set(EXPIRES_TIME, res.data.expires_time, time); + Cache.set(USER_INFO, res.data.userInfo, time); + return resolve(res); + }).catch(res => { + return reject(res); + }) + }) + } +} + +export default new Routine(); diff --git a/libs/uniApi.js b/libs/uniApi.js new file mode 100644 index 0000000..ffd8def --- /dev/null +++ b/libs/uniApi.js @@ -0,0 +1,474 @@ +// import uniCopy from '@/js_sdk/xb-copy/uni-copy.js'; // 鎷疯礉鍔熻兘鎻掍欢 +// import compressImage from './compressImage.js'; // 瑙e喅鍥剧墖鏃嬭浆90掳闂 +// const device = uni.getSystemInfoSync(); +// console.log("device:======================== " + JSON.stringify(device)); +/* + 鍙傛暟璇存槑 + @url + 瑕佽烦杞殑鐩爣鍦板潃 + @opt + 瑕佷紶缁欑洰鏍囧湴鍧鐨勫弬鏁 + 鍙湪鐩爣椤甸潰鐨刼nLoad鐢熷懡鍛ㄦ湡鍑芥暟鐨勭涓涓弬鏁颁腑鑾峰彇 +*/ + +// 鍘嬫爤璺宠浆椤甸潰 +export function navigateTo(type, url, opt) { + // H5绔〉闈㈣烦杞洰鍓嶄笉鏀寔鍔ㄧ敾 (娴忚鍣ㄦц兘闄愬埗) + let toUrl = url; + let api = 'navigateTo'; + toUrl = opt ? toUrl + '?' + convertObj(opt) : toUrl; + + switch (type) { + case 1: + api = 'navigateTo'; + break; + case 2: + api = 'redirectTo'; // 鍏抽棴褰撳墠椤,璺宠浆搴旂敤鍐呮煇涓〉闈 + break; + case 3: + api = 'reLaunch'; // 鍏抽棴鎵鏈夐〉闈,鎵撳紑鍒板簲鐢ㄥ唴鏌愪釜椤甸潰 + break; + case 4: + api = 'switchTab'; //璺宠浆鍒 tabBar 椤甸潰锛屽苟鍏抽棴鍏朵粬鎵鏈夐潪 tabBar 椤甸潰銆 + break; + default: + api = 'navigateTo' + break; + } + uni[api]({ + url: toUrl, + animationType: 'slide-in-right', + animationDuration: 200 + }); +} + +// 鍏抽棴褰撳墠椤甸潰骞惰繑鍥炰笂涓椤甸潰 delta 鏍囪瘑杩斿洖鍑犲眰 +export function navigateBack(delta) { + uni.navigateBack({ + delta: delta + }); +} + +// setStorage 灏嗘暟鎹瓨鍏ョ紦瀛 +export function setStorage(key, val) { + if (typeof val == 'string') { + uni.setStorageSync(key, val); + return val + } + uni.setStorageSync(key, JSON.stringify(val)); +} + +// getStorage 浠庣紦瀛樹腑璇诲彇鏁版嵁 +export function getStorage(key) { + let uu = uni.getStorageSync(key); + try { + if (typeof JSON.parse(uu) != 'number') { + uu = JSON.parse(uu); + } + } catch (e) {} + return uu; +} +// 鍒犻櫎缂撳瓨涓殑鏁版嵁 +export function removeStorage(key) { + if (key) { + uni.removeStorageSync(key); + } +} +// 灏嗙紦瀛樹腑鐨勬暟鎹竻绌 +export function clearStorage() { + try { + uni.clearStorageSync(); + } catch (e) { + throw new Error('澶勭悊澶辫触'); + } +} +// 鏄剧ずToast +/* +@title 鏈澶氭眽瀛楁暟閲7涓 +@icon success loading none +*/ +export function Toast(title, icon = 'none', obj = {}, duration = 700) { + let toastData = { + title: title, + duration: duration, + // position: 'center', + mask: true, + icon: icon ? icon : 'none', + ...obj + }; + uni.showToast(toastData); +} +/* +鏄剧ずloading鎻愮ず妗,闇瑕佹墜鍔ㄩ殣钘 +*/ +export function Loading(title = '姝e湪鍔犺浇...', obj = {}) { + uni.showLoading({ + title: title, + mask: true, + ...obj + }); +} +// 闅愯棌loading +export function hideLoading() { + try { + uni.hideLoading(); + } catch (e) { + //TODO handle the exception + throw new Error('澶勭悊澶辫触'); + } +} +// 妯℃佹 +/* +纭畾鍙栨秷鎸夐挳鐨勬枃瀛楅鑹插彲淇敼 +obj 瀵硅薄涓紶鍏 cancelColor : rgb 鍗冲彲淇敼鍙栨秷鎸夐挳棰滆壊 +obj 瀵硅薄涓紶鍏 confirmColor : rgb 鍗冲彲淇敼纭鎸夐挳棰滆壊 +*/ +export function Modal(title = '鎻愮ず', content = '杩欐槸涓涓ā鎬佸脊绐!', obj = { + showCancel: true, + cancelText: '鍙栨秷', + confirmText: '纭畾' +}) { + // #ifdef APP-PLUS + obj.cancelText = '纭畾'; + obj.confirmText = '鍙栨秷'; + // #endif + return new Promise((reslove, reject) => { + uni.showModal({ + title: title, + content: content, + ...obj, + success: (res) => { + if (res.confirm) { + reslove() + } + if (res.cancel) { + reject() + } + } + }); + }) +} +/* +鏄剧ず鎿嶄綔鑿滃崟 +@itemList 鎿嶄綔鑿滃崟鏁扮粍 +@itemColor 鏂囧瓧棰滆壊 +*/ +export function ActionSheet(itemList, itemColor = "#000000") { + return new Promise((reslove, reject) => { + uni.showActionSheet({ + itemList: itemList, + itemColor: itemColor, + success: (res) => { + reslove(res.tapIndex); + }, + fail: function(res) { + reject(res.errMsg); + } + }); + }) +} +//灏嗛〉闈㈡粴鍔ㄥ埌鐩爣浣嶇疆銆 +export function ScrollTo(ScrollTop) { + uni.pageScrollTo({ + scrollTop: ScrollTop, + duration: 300 + }) +} + +// 鑾峰彇鐢ㄦ埛淇℃伅 +export function GetUserInfo() { + return new Promise((reslove, reject) => { + uni.getUserInfo({ + success(res) { + console.log(res); + reslove(res); + }, + fail(rej) { + reject(rej); + } + }) + }) +} + +// 鑾峰彇鐢ㄦ埛鎺堟潈淇℃伅 +export function Authorize(scoped = 'scope.userInfo') { + return new Promise((reslove, reject) => { + uni.authorize({ + scope: scoped, + success(res) { + reslove(res); + }, + fail(rej) { + reject(rej); + } + }) + }) +} + +// 灏嗗璞¤浆鎹㈡垚浣跨敤 & 杩炴帴鐨勫瓧绗︿覆 +export function convertObj(opt) { + let str = ''; + let arr = []; + Object.keys(opt).forEach(item => { + arr.push(`${item}=${opt[item]}`); + }) + str = arr.join('&'); + return str; +} +// 鑺傛祦鍑芥暟 +// 鑺傛祦鍑芥暟 +export function throttle(fn, delay) { + var lastArgs; + var timer; + var delay = delay || 200; + return function(...args) { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + fn.apply(this, lastArgs); + }, delay); + } + } +} + +// 璋冭捣鐩告満 +export function chooseImage(count) { + return new Promise((reslove, reject) => { + uni.chooseImage({ + count: count, //榛樿9 + sizeType: ['original', 'compressed'], //鍙互鎸囧畾鏄師鍥捐繕鏄帇缂╁浘锛岄粯璁や簩鑰呴兘鏈 + sourceType: ['album', 'camera'], //浠庣浉鍐岄夋嫨 + success: (res) => { + reslove(res); + // const tempFilePaths = res.tempFilePaths; + // let tempPathList = []; + // for (let i = 0; i < tempFilePaths.length; i++) { + // const path = tempFilePaths[i]; + // const src = await compressImageHandler(path) + // tempPathList.push(src); + // } + // reslove(tempPathList); + }, + fail: (rej) => { + reject(rej); + } + }); + }) +} + +// function compressImageHandler(src) { +// // console.log('platform===' + device.platform) +// const tempPath = compressImage(src, device.platform); +// // console.log('tempPath-----' + tempPath); +// return tempPath +// } +//搴忓垪鍖栧璞″拰鏁扮粍 +export function serialize(data) { + if (data != null && data != '') { + try { + return JSON.parse(JSON.stringify(data)); + } catch (e) { + if (data instanceof Array) { + return []; + } + return {}; + } + } + return data; +} +Date.prototype.format = function(fmt) { + let o = { + 'M+': this.getMonth() + 1, //鏈堜唤 + 'd+': this.getDate(), //鏃 + 'h+': this.getHours(), //灏忔椂 + 'm+': this.getMinutes(), //鍒 + 's+': this.getSeconds(), //绉 + 'q+': Math.floor((this.getMonth() + 3) / 3), //瀛e害 + S: this.getMilliseconds() //姣 + }; + + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, String(this.getFullYear()).substr(4 - RegExp.$1.length)); + } + for (let k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(String(o[k]).length)); + } + } + return fmt; +}; + +//鏍煎紡鍖栨棩鏈 +export function formatDate(nS, format) { + //鏃ユ湡鏍煎紡鍖 + if (!nS) { + return ''; + } + format = format || 'yyyy-MM-dd hh:mm:ss'; + return new Date(nS).format(format); +} + +// 鍥剧墖杞琤ase64 +export function pathToBase64(path) { + return new Promise(function(resolve, reject) { + if (typeof window === 'object' && 'document' in window) { + if (typeof FileReader === 'function') { + var xhr = new XMLHttpRequest() + xhr.open('GET', path, true) + xhr.responseType = 'blob' + xhr.onload = function() { + if (this.status === 200) { + let fileReader = new FileReader() + fileReader.onload = function(e) { + resolve(e.target.result) + } + fileReader.onerror = reject + fileReader.readAsDataURL(this.response) + } + } + xhr.onerror = reject + xhr.send() + return + } + var canvas = document.createElement('canvas') + var c2x = canvas.getContext('2d') + var img = new Image + img.onload = function() { + canvas.width = img.width + canvas.height = img.height + c2x.drawImage(img, 0, 0) + resolve(canvas.toDataURL()) + canvas.height = canvas.width = 0 + } + img.onerror = reject + img.src = path + return + } + if (typeof plus === 'object') { + plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) { + entry.file(function(file) { + var fileReader = new plus.io.FileReader() + fileReader.onload = function(data) { + resolve(data.target.result) + } + fileReader.onerror = function(error) { + reject(error) + } + fileReader.readAsDataURL(file) + }, function(error) { + reject(error) + }) + }, function(error) { + reject(error) + }) + return + } + if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { + wx.getFileSystemManager().readFile({ + filePath: path, + encoding: 'base64', + success: function(res) { + resolve('data:image/png;base64,' + res.data) + }, + fail: function(error) { + reject(error) + } + }) + return + } + reject(new Error('not support')) + }) +} + + + + +/* +@value 瑕佹嫹璐濈殑鍐呭 +*/ +// export function copyText(value) { +// // 鏉′欢缂栬瘧锛屼互涓嬩唬鐮佷粎鍦℉5鍑虹幇 +// //#ifdef H5 +// return new Promise((reslove, reject) => { +// uniCopy({ +// content: value, +// success: (res) => { +// reslove(res); +// }, +// error: (e) => { +// reject(res) +// } +// }) +// }) + +// //#endif + +// // 浠ヤ笅浠g爜鍦ㄩ櫎H5浠ュ鐨勫钩鍙板嚭鐜 +// //#ifndef H5 + +// //#endif +// } + +// 鑾峰彇鏈懆鐨勭涓澶 +export function showWeekFirstDay() { + var date = new Date(); + var weekday = date.getDay() || 7; //鑾峰彇鏄熸湡鍑,getDay()杩斿洖鍊兼槸 0锛堝懆鏃ワ級 鍒 6锛堝懆鍏級 涔嬮棿鐨勪竴涓暣鏁般0||7涓7锛屽嵆weekday鐨勫间负1-7 + date.setDate(date.getDate() - weekday + 1); //寰鍓嶇畻锛坵eekday-1锛夊ぉ锛屽勾浠姐佹湀浠戒細鑷姩鍙樺寲 + return formatDate(date, 'yyyy-MM-dd'); +} + + + +// 鑾峰彇鏈湀绗竴澶 +export function showMonthFirstDay() { + var MonthFirstDay = new Date().setDate(1); + return formatDate(new Date(MonthFirstDay).getTime(), 'yyyy-MM-dd'); +} + +var now = new Date(); //褰撳墠鏃ユ湡 +// var nowDayOfWeek = now.getDay(); //浠婂ぉ鏈懆鐨勭鍑犲ぉ +// var nowDay = now.getDate(); //褰撳墠鏃 +var nowMonth = now.getMonth(); //褰撳墠鏈 +var nowYear = now.getYear(); //褰撳墠骞 +nowYear += (nowYear < 2000) ? 1900 : 0; // +//鑾峰緱鏈搴︾殑寮濮嬫湀浠 +function getQuarterStartMonth() { + var quarterStartMonth = 0; + if (nowMonth < 3) { + quarterStartMonth = 0; + } + if (2 < nowMonth && nowMonth < 6) { + quarterStartMonth = 3; + } + if (5 < nowMonth && nowMonth < 9) { + quarterStartMonth = 6; + } + if (nowMonth > 8) { + quarterStartMonth = 9; + } + return quarterStartMonth; +} + +//鎴栫殑鏈搴︾殑缁撴潫鏃ユ湡 +//鑾峰緱鏈搴︾殑寮濮嬫棩鏈 +export function getQuarterStartDate() { + var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1); + return formatDate(quarterStartDate, 'yyyy-MM-dd'); +} +// 鍒犻櫎鏁扮粍涓噸澶嶆暟鎹 +export function unique(data) { + data = data || []; + var n = {}; //瀛樻斁鏂扮殑鏁版嵁 + for (var i = 0; i < data.length; i++) { + var v = JSON.stringify(data[i]); + if (typeof(v) == "undefined") { + n[v] = 1; + } + } + data.length = 0; + for (var i in n) { + data[data.length] = i; + } + return data; +} diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..03d1724 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,21 @@ +{ + "name": "OAsystem", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, + "engines": { + "node": "*" + } + } + } +} diff --git a/node_modules/crypto-js/CONTRIBUTING.md b/node_modules/crypto-js/CONTRIBUTING.md new file mode 100644 index 0000000..09bf774 --- /dev/null +++ b/node_modules/crypto-js/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# Contribution + +# Git Flow + +The crypto-js project uses [git flow](https://github.com/nvie/gitflow) to manage branches. +Do your changes on the `develop` or even better on a `feature/*` branch. Don't do any changes on the `master` branch. + +# Pull request + +Target your pull request on `develop` branch. Other pull request won't be accepted. + +# How to build + +1. Clone + +2. Run + + ```sh + npm install + ``` + +3. Run + + ```sh + npm run build + ``` + +4. Check `build` folder \ No newline at end of file diff --git a/node_modules/crypto-js/LICENSE b/node_modules/crypto-js/LICENSE new file mode 100644 index 0000000..b0828e5 --- /dev/null +++ b/node_modules/crypto-js/LICENSE @@ -0,0 +1,24 @@ +# License + +[The MIT License (MIT)](http://opensource.org/licenses/MIT) + +Copyright (c) 2009-2013 Jeff Mott +Copyright (c) 2013-2016 Evan Vosberg + +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/node_modules/crypto-js/README.md b/node_modules/crypto-js/README.md new file mode 100644 index 0000000..6a9bcdf --- /dev/null +++ b/node_modules/crypto-js/README.md @@ -0,0 +1,275 @@ +# crypto-js + +JavaScript library of crypto standards. + +## Discontinued + +Active development of CryptoJS has been discontinued. This library is no longer maintained. + +Nowadays, NodeJS and modern browsers have a native `Crypto` module. The latest version of CryptoJS already uses the native Crypto module for random number generation, since `Math.random()` is not crypto-safe. Further development of CryptoJS would result in it only being a wrapper of native Crypto. Therefore, development and maintenance has been discontinued, it is time to go for the native `crypto` module. + +## Node.js (Install) + +Requirements: + +- Node.js +- npm (Node.js package manager) + +```bash +npm install crypto-js +``` + +### Usage + +ES6 import for typical API call signing use case: + +```javascript +import sha256 from 'crypto-js/sha256'; +import hmacSHA512 from 'crypto-js/hmac-sha512'; +import Base64 from 'crypto-js/enc-base64'; + +const message, nonce, path, privateKey; // ... +const hashDigest = sha256(nonce + message); +const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey)); +``` + +Modular include: + +```javascript +var AES = require("crypto-js/aes"); +var SHA256 = require("crypto-js/sha256"); +... +console.log(SHA256("Message")); +``` + +Including all libraries, for access to extra methods: + +```javascript +var CryptoJS = require("crypto-js"); +console.log(CryptoJS.HmacSHA1("Message", "Key")); +``` + +## Client (browser) + +Requirements: + +- Node.js +- Bower (package manager for frontend) + +```bash +bower install crypto-js +``` + +### Usage + +Modular include: + +```javascript +require.config({ + packages: [ + { + name: 'crypto-js', + location: 'path-to/bower_components/crypto-js', + main: 'index' + } + ] +}); + +require(["crypto-js/aes", "crypto-js/sha256"], function (AES, SHA256) { + console.log(SHA256("Message")); +}); +``` + +Including all libraries, for access to extra methods: + +```javascript +// Above-mentioned will work or use this simple form +require.config({ + paths: { + 'crypto-js': 'path-to/bower_components/crypto-js/crypto-js' + } +}); + +require(["crypto-js"], function (CryptoJS) { + console.log(CryptoJS.HmacSHA1("Message", "Key")); +}); +``` + +### Usage without RequireJS + +```html + + +``` + +## API + +See: https://cryptojs.gitbook.io/docs/ + +### AES Encryption + +#### Plain text encryption + +```javascript +var CryptoJS = require("crypto-js"); + +// Encrypt +var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString(); + +// Decrypt +var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); +var originalText = bytes.toString(CryptoJS.enc.Utf8); + +console.log(originalText); // 'my message' +``` + +#### Object encryption + +```javascript +var CryptoJS = require("crypto-js"); + +var data = [{id: 1}, {id: 2}] + +// Encrypt +var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString(); + +// Decrypt +var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123'); +var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); + +console.log(decryptedData); // [{id: 1}, {id: 2}] +``` + +### List of modules + + +- ```crypto-js/core``` +- ```crypto-js/x64-core``` +- ```crypto-js/lib-typedarrays``` + +--- + +- ```crypto-js/md5``` +- ```crypto-js/sha1``` +- ```crypto-js/sha256``` +- ```crypto-js/sha224``` +- ```crypto-js/sha512``` +- ```crypto-js/sha384``` +- ```crypto-js/sha3``` +- ```crypto-js/ripemd160``` + +--- + +- ```crypto-js/hmac-md5``` +- ```crypto-js/hmac-sha1``` +- ```crypto-js/hmac-sha256``` +- ```crypto-js/hmac-sha224``` +- ```crypto-js/hmac-sha512``` +- ```crypto-js/hmac-sha384``` +- ```crypto-js/hmac-sha3``` +- ```crypto-js/hmac-ripemd160``` + +--- + +- ```crypto-js/pbkdf2``` + +--- + +- ```crypto-js/aes``` +- ```crypto-js/tripledes``` +- ```crypto-js/rc4``` +- ```crypto-js/rabbit``` +- ```crypto-js/rabbit-legacy``` +- ```crypto-js/evpkdf``` + +--- + +- ```crypto-js/format-openssl``` +- ```crypto-js/format-hex``` + +--- + +- ```crypto-js/enc-latin1``` +- ```crypto-js/enc-utf8``` +- ```crypto-js/enc-hex``` +- ```crypto-js/enc-utf16``` +- ```crypto-js/enc-base64``` + +--- + +- ```crypto-js/mode-cfb``` +- ```crypto-js/mode-ctr``` +- ```crypto-js/mode-ctr-gladman``` +- ```crypto-js/mode-ofb``` +- ```crypto-js/mode-ecb``` + +--- + +- ```crypto-js/pad-pkcs7``` +- ```crypto-js/pad-ansix923``` +- ```crypto-js/pad-iso10126``` +- ```crypto-js/pad-iso97971``` +- ```crypto-js/pad-zeropadding``` +- ```crypto-js/pad-nopadding``` + + +## Release notes + +### 4.2.0 + +Change default hash algorithm and iteration's for PBKDF2 to prevent weak security by using the default configuration. + +Custom KDF Hasher + +Blowfish support + +### 4.1.1 + +Fix module order in bundled release. + +Include the browser field in the released package.json. + +### 4.1.0 + +Added url safe variant of base64 encoding. [357](https://github.com/brix/crypto-js/pull/357) + +Avoid webpack to add crypto-browser package. [364](https://github.com/brix/crypto-js/pull/364) + +### 4.0.0 + +This is an update including breaking changes for some environments. + +In this version `Math.random()` has been replaced by the random methods of the native crypto module. + +For this reason CryptoJS might not run in some JavaScript environments without native crypto module. Such as IE 10 or before or React Native. + +### 3.3.0 + +Rollback, `3.3.0` is the same as `3.1.9-1`. + +The move of using native secure crypto module will be shifted to a new `4.x.x` version. As it is a breaking change the impact is too big for a minor release. + +### 3.2.1 + +The usage of the native crypto module has been fixed. The import and access of the native crypto module has been improved. + +### 3.2.0 + +In this version `Math.random()` has been replaced by the random methods of the native crypto module. + +For this reason CryptoJS might does not run in some JavaScript environments without native crypto module. Such as IE 10 or before. + +If it's absolute required to run CryptoJS in such an environment, stay with `3.1.x` version. Encrypting and decrypting stays compatible. But keep in mind `3.1.x` versions still use `Math.random()` which is cryptographically not secure, as it's not random enough. + +This version came along with `CRITICAL` `BUG`. + +DO NOT USE THIS VERSION! Please, go for a newer version! + +### 3.1.x + +The `3.1.x` are based on the original CryptoJS, wrapped in CommonJS modules. + + diff --git a/node_modules/crypto-js/aes.js b/node_modules/crypto-js/aes.js new file mode 100644 index 0000000..166e3ea --- /dev/null +++ b/node_modules/crypto-js/aes.js @@ -0,0 +1,234 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + return CryptoJS.AES; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/blowfish.js b/node_modules/crypto-js/blowfish.js new file mode 100644 index 0000000..149812f --- /dev/null +++ b/node_modules/crypto-js/blowfish.js @@ -0,0 +1,471 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + const N = 16; + + //Origin pbox and sbox, derived from PI + const ORIG_P = [ + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B + ]; + + const ORIG_S = [ + [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ], + [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ], + [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ], + [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ] + ]; + + var BLOWFISH_CTX = { + pbox: [], + sbox: [] + } + + function F(ctx, x){ + let a = (x >> 24) & 0xFF; + let b = (x >> 16) & 0xFF; + let c = (x >> 8) & 0xFF; + let d = x & 0xFF; + + let y = ctx.sbox[0][a] + ctx.sbox[1][b]; + y = y ^ ctx.sbox[2][c]; + y = y + ctx.sbox[3][d]; + + return y; + } + + function BlowFish_Encrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = 0; i < N; ++i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[N]; + Xl = Xl ^ ctx.pbox[N + 1]; + + return {left: Xl, right: Xr}; + } + + function BlowFish_Decrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = N + 1; i > 1; --i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[1]; + Xl = Xl ^ ctx.pbox[0]; + + return {left: Xl, right: Xr}; + } + + /** + * Initialization ctx's pbox and sbox. + * + * @param {Object} ctx The object has pbox and sbox. + * @param {Array} key An array of 32-bit words. + * @param {int} keysize The length of the key. + * + * @example + * + * BlowFishInit(BLOWFISH_CTX, key, 128/32); + */ + function BlowFishInit(ctx, key, keysize) + { + for(let Row = 0; Row < 4; Row++) + { + ctx.sbox[Row] = []; + for(let Col = 0; Col < 256; Col++) + { + ctx.sbox[Row][Col] = ORIG_S[Row][Col]; + } + } + + let keyIndex = 0; + for(let index = 0; index < N + 2; index++) + { + ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; + keyIndex++; + if(keyIndex >= keysize) + { + keyIndex = 0; + } + } + + let Data1 = 0; + let Data2 = 0; + let res = 0; + for(let i = 0; i < N + 2; i += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.pbox[i] = Data1; + ctx.pbox[i + 1] = Data2; + } + + for(let i = 0; i < 4; i++) + { + for(let j = 0; j < 256; j += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.sbox[i][j] = Data1; + ctx.sbox[i][j + 1] = Data2; + } + } + + return true; + } + + /** + * Blowfish block cipher algorithm. + */ + var Blowfish = C_algo.Blowfish = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + //Initialization pbox and sbox + BlowFishInit(BLOWFISH_CTX, keyWords, keySize); + }, + + encryptBlock: function (M, offset) { + var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + decryptBlock: function (M, offset) { + var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + blockSize: 64/32, + + keySize: 128/32, + + ivSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); + */ + C.Blowfish = BlockCipher._createHelper(Blowfish); + }()); + + + return CryptoJS.Blowfish; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/bower.json b/node_modules/crypto-js/bower.json new file mode 100644 index 0000000..4dee617 --- /dev/null +++ b/node_modules/crypto-js/bower.json @@ -0,0 +1,39 @@ +{ + "name": "crypto-js", + "version": "4.2.0", + "description": "JavaScript library of crypto standards.", + "license": "MIT", + "homepage": "http://github.com/brix/crypto-js", + "repository": { + "type": "git", + "url": "http://github.com/brix/crypto-js.git" + }, + "keywords": [ + "security", + "crypto", + "Hash", + "MD5", + "SHA1", + "SHA-1", + "SHA256", + "SHA-256", + "RC4", + "Rabbit", + "AES", + "DES", + "PBKDF2", + "HMAC", + "OFB", + "CFB", + "CTR", + "CBC", + "Base64", + "Base64url" + ], + "main": "index.js", + "dependencies": {}, + "browser": { + "crypto": false + }, + "ignore": [] +} diff --git a/node_modules/crypto-js/cipher-core.js b/node_modules/crypto-js/cipher-core.js new file mode 100644 index 0000000..903f462 --- /dev/null +++ b/node_modules/crypto-js/cipher-core.js @@ -0,0 +1,895 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./evpkdf")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./evpkdf"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/core.js b/node_modules/crypto-js/core.js new file mode 100644 index 0000000..e3a498b --- /dev/null +++ b/node_modules/crypto-js/core.js @@ -0,0 +1,807 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } + else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(); + } +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof global !== 'undefined' && global.crypto) { + crypto = global.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && typeof require === 'function') { + try { + crypto = require('crypto'); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/crypto-js.js b/node_modules/crypto-js/crypto-js.js new file mode 100644 index 0000000..958ee53 --- /dev/null +++ b/node_modules/crypto-js/crypto-js.js @@ -0,0 +1,6657 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(); + } + else if (typeof define === "function" && define.amd) { + // AMD + define([], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(); + } +}(this, function () { + + /*globals window, global, require*/ + + /** + * CryptoJS core components. + */ + var CryptoJS = CryptoJS || (function (Math, undefined) { + + var crypto; + + // Native crypto from window (Browser) + if (typeof window !== 'undefined' && window.crypto) { + crypto = window.crypto; + } + + // Native crypto in web worker (Browser) + if (typeof self !== 'undefined' && self.crypto) { + crypto = self.crypto; + } + + // Native crypto from worker + if (typeof globalThis !== 'undefined' && globalThis.crypto) { + crypto = globalThis.crypto; + } + + // Native (experimental IE 11) crypto from window (Browser) + if (!crypto && typeof window !== 'undefined' && window.msCrypto) { + crypto = window.msCrypto; + } + + // Native crypto from global (NodeJS) + if (!crypto && typeof global !== 'undefined' && global.crypto) { + crypto = global.crypto; + } + + // Native crypto import via require (NodeJS) + if (!crypto && typeof require === 'function') { + try { + crypto = require('crypto'); + } catch (err) {} + } + + /* + * Cryptographically secure pseudorandom number generator + * + * As Math.random() is cryptographically not safe to use + */ + var cryptoSecureRandomInt = function () { + if (crypto) { + // Use getRandomValues method (Browser) + if (typeof crypto.getRandomValues === 'function') { + try { + return crypto.getRandomValues(new Uint32Array(1))[0]; + } catch (err) {} + } + + // Use randomBytes method (NodeJS) + if (typeof crypto.randomBytes === 'function') { + try { + return crypto.randomBytes(4).readInt32LE(); + } catch (err) {} + } + } + + throw new Error('Native crypto module could not be used to get secure random number.'); + }; + + /* + * Local polyfill of Object.create + + */ + var create = Object.create || (function () { + function F() {} + + return function (obj) { + var subtype; + + F.prototype = obj; + + subtype = new F(); + + F.prototype = null; + + return subtype; + }; + }()); + + /** + * CryptoJS namespace. + */ + var C = {}; + + /** + * Library namespace. + */ + var C_lib = C.lib = {}; + + /** + * Base object for prototypal inheritance. + */ + var Base = C_lib.Base = (function () { + + + return { + /** + * Creates a new object that inherits from this object. + * + * @param {Object} overrides Properties to copy into the new object. + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * field: 'value', + * + * method: function () { + * } + * }); + */ + extend: function (overrides) { + // Spawn + var subtype = create(this); + + // Augment + if (overrides) { + subtype.mixIn(overrides); + } + + // Create default initializer + if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { + subtype.init = function () { + subtype.$super.init.apply(this, arguments); + }; + } + + // Initializer's prototype is the subtype object + subtype.init.prototype = subtype; + + // Reference supertype + subtype.$super = this; + + return subtype; + }, + + /** + * Extends this object and runs the init method. + * Arguments to create() will be passed to init(). + * + * @return {Object} The new object. + * + * @static + * + * @example + * + * var instance = MyType.create(); + */ + create: function () { + var instance = this.extend(); + instance.init.apply(instance, arguments); + + return instance; + }, + + /** + * Initializes a newly created object. + * Override this method to add some logic when your objects are created. + * + * @example + * + * var MyType = CryptoJS.lib.Base.extend({ + * init: function () { + * // ... + * } + * }); + */ + init: function () { + }, + + /** + * Copies properties into this object. + * + * @param {Object} properties The properties to mix in. + * + * @example + * + * MyType.mixIn({ + * field: 'value' + * }); + */ + mixIn: function (properties) { + for (var propertyName in properties) { + if (properties.hasOwnProperty(propertyName)) { + this[propertyName] = properties[propertyName]; + } + } + + // IE won't copy toString using the loop above + if (properties.hasOwnProperty('toString')) { + this.toString = properties.toString; + } + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = instance.clone(); + */ + clone: function () { + return this.init.prototype.extend(this); + } + }; + }()); + + /** + * An array of 32-bit words. + * + * @property {Array} words The array of 32-bit words. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var WordArray = C_lib.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of 32-bit words. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.create(); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); + * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 4; + } + }, + + /** + * Converts this word array to a string. + * + * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex + * + * @return {string} The stringified word array. + * + * @example + * + * var string = wordArray + ''; + * var string = wordArray.toString(); + * var string = wordArray.toString(CryptoJS.enc.Utf8); + */ + toString: function (encoder) { + return (encoder || Hex).stringify(this); + }, + + /** + * Concatenates a word array to this word array. + * + * @param {WordArray} wordArray The word array to append. + * + * @return {WordArray} This word array. + * + * @example + * + * wordArray1.concat(wordArray2); + */ + concat: function (wordArray) { + // Shortcuts + var thisWords = this.words; + var thatWords = wordArray.words; + var thisSigBytes = this.sigBytes; + var thatSigBytes = wordArray.sigBytes; + + // Clamp excess bits + this.clamp(); + + // Concat + if (thisSigBytes % 4) { + // Copy one byte at a time + for (var i = 0; i < thatSigBytes; i++) { + var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); + } + } else { + // Copy one word at a time + for (var j = 0; j < thatSigBytes; j += 4) { + thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2]; + } + } + this.sigBytes += thatSigBytes; + + // Chainable + return this; + }, + + /** + * Removes insignificant bits. + * + * @example + * + * wordArray.clamp(); + */ + clamp: function () { + // Shortcuts + var words = this.words; + var sigBytes = this.sigBytes; + + // Clamp + words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); + words.length = Math.ceil(sigBytes / 4); + }, + + /** + * Creates a copy of this word array. + * + * @return {WordArray} The clone. + * + * @example + * + * var clone = wordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone.words = this.words.slice(0); + + return clone; + }, + + /** + * Creates a word array filled with random bytes. + * + * @param {number} nBytes The number of random bytes to generate. + * + * @return {WordArray} The random word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.lib.WordArray.random(16); + */ + random: function (nBytes) { + var words = []; + + for (var i = 0; i < nBytes; i += 4) { + words.push(cryptoSecureRandomInt()); + } + + return new WordArray.init(words, nBytes); + } + }); + + /** + * Encoder namespace. + */ + var C_enc = C.enc = {}; + + /** + * Hex encoding strategy. + */ + var Hex = C_enc.Hex = { + /** + * Converts a word array to a hex string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The hex string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.enc.Hex.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var hexChars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + hexChars.push((bite >>> 4).toString(16)); + hexChars.push((bite & 0x0f).toString(16)); + } + + return hexChars.join(''); + }, + + /** + * Converts a hex string to a word array. + * + * @param {string} hexStr The hex string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Hex.parse(hexString); + */ + parse: function (hexStr) { + // Shortcut + var hexStrLength = hexStr.length; + + // Convert + var words = []; + for (var i = 0; i < hexStrLength; i += 2) { + words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); + } + + return new WordArray.init(words, hexStrLength / 2); + } + }; + + /** + * Latin1 encoding strategy. + */ + var Latin1 = C_enc.Latin1 = { + /** + * Converts a word array to a Latin1 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Latin1 string. + * + * @static + * + * @example + * + * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var latin1Chars = []; + for (var i = 0; i < sigBytes; i++) { + var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + latin1Chars.push(String.fromCharCode(bite)); + } + + return latin1Chars.join(''); + }, + + /** + * Converts a Latin1 string to a word array. + * + * @param {string} latin1Str The Latin1 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); + */ + parse: function (latin1Str) { + // Shortcut + var latin1StrLength = latin1Str.length; + + // Convert + var words = []; + for (var i = 0; i < latin1StrLength; i++) { + words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); + } + + return new WordArray.init(words, latin1StrLength); + } + }; + + /** + * UTF-8 encoding strategy. + */ + var Utf8 = C_enc.Utf8 = { + /** + * Converts a word array to a UTF-8 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-8 string. + * + * @static + * + * @example + * + * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); + */ + stringify: function (wordArray) { + try { + return decodeURIComponent(escape(Latin1.stringify(wordArray))); + } catch (e) { + throw new Error('Malformed UTF-8 data'); + } + }, + + /** + * Converts a UTF-8 string to a word array. + * + * @param {string} utf8Str The UTF-8 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); + */ + parse: function (utf8Str) { + return Latin1.parse(unescape(encodeURIComponent(utf8Str))); + } + }; + + /** + * Abstract buffered block algorithm template. + * + * The property blockSize must be implemented in a concrete subtype. + * + * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 + */ + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ + /** + * Resets this block algorithm's data buffer to its initial state. + * + * @example + * + * bufferedBlockAlgorithm.reset(); + */ + reset: function () { + // Initial values + this._data = new WordArray.init(); + this._nDataBytes = 0; + }, + + /** + * Adds new data to this block algorithm's buffer. + * + * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. + * + * @example + * + * bufferedBlockAlgorithm._append('data'); + * bufferedBlockAlgorithm._append(wordArray); + */ + _append: function (data) { + // Convert string to WordArray, else assume WordArray already + if (typeof data == 'string') { + data = Utf8.parse(data); + } + + // Append + this._data.concat(data); + this._nDataBytes += data.sigBytes; + }, + + /** + * Processes available data blocks. + * + * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. + * + * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. + * + * @return {WordArray} The processed data. + * + * @example + * + * var processedData = bufferedBlockAlgorithm._process(); + * var processedData = bufferedBlockAlgorithm._process(!!'flush'); + */ + _process: function (doFlush) { + var processedWords; + + // Shortcuts + var data = this._data; + var dataWords = data.words; + var dataSigBytes = data.sigBytes; + var blockSize = this.blockSize; + var blockSizeBytes = blockSize * 4; + + // Count blocks ready + var nBlocksReady = dataSigBytes / blockSizeBytes; + if (doFlush) { + // Round up to include partial blocks + nBlocksReady = Math.ceil(nBlocksReady); + } else { + // Round down to include only full blocks, + // less the number of blocks that must remain in the buffer + nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); + } + + // Count words ready + var nWordsReady = nBlocksReady * blockSize; + + // Count bytes ready + var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); + + // Process blocks + if (nWordsReady) { + for (var offset = 0; offset < nWordsReady; offset += blockSize) { + // Perform concrete-algorithm logic + this._doProcessBlock(dataWords, offset); + } + + // Remove processed words + processedWords = dataWords.splice(0, nWordsReady); + data.sigBytes -= nBytesReady; + } + + // Return processed words + return new WordArray.init(processedWords, nBytesReady); + }, + + /** + * Creates a copy of this object. + * + * @return {Object} The clone. + * + * @example + * + * var clone = bufferedBlockAlgorithm.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + clone._data = this._data.clone(); + + return clone; + }, + + _minBufferSize: 0 + }); + + /** + * Abstract hasher template. + * + * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) + */ + var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + */ + cfg: Base.extend(), + + /** + * Initializes a newly created hasher. + * + * @param {Object} cfg (Optional) The configuration options to use for this hash computation. + * + * @example + * + * var hasher = CryptoJS.algo.SHA256.create(); + */ + init: function (cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Set initial values + this.reset(); + }, + + /** + * Resets this hasher to its initial state. + * + * @example + * + * hasher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-hasher logic + this._doReset(); + }, + + /** + * Updates this hasher with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {Hasher} This hasher. + * + * @example + * + * hasher.update('message'); + * hasher.update(wordArray); + */ + update: function (messageUpdate) { + // Append + this._append(messageUpdate); + + // Update the hash + this._process(); + + // Chainable + return this; + }, + + /** + * Finalizes the hash computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The hash. + * + * @example + * + * var hash = hasher.finalize(); + * var hash = hasher.finalize('message'); + * var hash = hasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Final message update + if (messageUpdate) { + this._append(messageUpdate); + } + + // Perform concrete-hasher logic + var hash = this._doFinalize(); + + return hash; + }, + + blockSize: 512/32, + + /** + * Creates a shortcut function to a hasher's object interface. + * + * @param {Hasher} hasher The hasher to create a helper for. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); + */ + _createHelper: function (hasher) { + return function (message, cfg) { + return new hasher.init(cfg).finalize(message); + }; + }, + + /** + * Creates a shortcut function to the HMAC's object interface. + * + * @param {Hasher} hasher The hasher to use in this HMAC helper. + * + * @return {Function} The shortcut function. + * + * @static + * + * @example + * + * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); + */ + _createHmacHelper: function (hasher) { + return function (message, key) { + return new C_algo.HMAC.init(hasher, key).finalize(message); + }; + } + }); + + /** + * Algorithm namespace. + */ + var C_algo = C.algo = {}; + + return C; + }(Math)); + + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); + }()); + + + (function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64url encoding strategy. + */ + var Base64url = C_enc.Base64url = { + /** + * Converts a word array to a Base64url string. + * + * @param {WordArray} wordArray The word array. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {string} The Base64url string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); + */ + stringify: function (wordArray, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = urlSafe ? this._safe_map : this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64url string to a word array. + * + * @param {string} base64Str The Base64url string. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64url.parse(base64String); + */ + parse: function (base64Str, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + + // Shortcuts + var base64StrLength = base64Str.length; + var map = urlSafe ? this._safe_map : this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + var Wil; + var Wih; + + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + Wih = Wi.high = M[offset + i * 2] | 0; + Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + Wil = gamma0l + Wi7l; + Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + Wil = Wil + gamma1l; + Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + Wil = Wil + Wi16l; + Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); + }()); + + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + var tMsw; + var tLsw; + + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); + }(Math)); + + + /** @preserve + (c) 2012 by C茅dric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); + }(Math)); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA256 + * @property {number} iterations The number of iterations to perform. Default: 250000 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA256, + iterations: 250000 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + /** + * Cipher core components. + */ + CryptoJS.lib.Cipher || (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var Base64 = C_enc.Base64; + var C_algo = C.algo; + var EvpKDF = C_algo.EvpKDF; + + /** + * Abstract base cipher template. + * + * @property {number} keySize This cipher's key size. Default: 4 (128 bits) + * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) + * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. + * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. + */ + var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ + /** + * Configuration options. + * + * @property {WordArray} iv The IV to use for this operation. + */ + cfg: Base.extend(), + + /** + * Creates this cipher in encryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); + */ + createEncryptor: function (key, cfg) { + return this.create(this._ENC_XFORM_MODE, key, cfg); + }, + + /** + * Creates this cipher in decryption mode. + * + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {Cipher} A cipher instance. + * + * @static + * + * @example + * + * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); + */ + createDecryptor: function (key, cfg) { + return this.create(this._DEC_XFORM_MODE, key, cfg); + }, + + /** + * Initializes a newly created cipher. + * + * @param {number} xformMode Either the encryption or decryption transormation mode constant. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @example + * + * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); + */ + init: function (xformMode, key, cfg) { + // Apply config defaults + this.cfg = this.cfg.extend(cfg); + + // Store transform mode and key + this._xformMode = xformMode; + this._key = key; + + // Set initial values + this.reset(); + }, + + /** + * Resets this cipher to its initial state. + * + * @example + * + * cipher.reset(); + */ + reset: function () { + // Reset data buffer + BufferedBlockAlgorithm.reset.call(this); + + // Perform concrete-cipher logic + this._doReset(); + }, + + /** + * Adds data to be encrypted or decrypted. + * + * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. + * + * @return {WordArray} The data after processing. + * + * @example + * + * var encrypted = cipher.process('data'); + * var encrypted = cipher.process(wordArray); + */ + process: function (dataUpdate) { + // Append + this._append(dataUpdate); + + // Process available blocks + return this._process(); + }, + + /** + * Finalizes the encryption or decryption process. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. + * + * @return {WordArray} The data after final processing. + * + * @example + * + * var encrypted = cipher.finalize(); + * var encrypted = cipher.finalize('data'); + * var encrypted = cipher.finalize(wordArray); + */ + finalize: function (dataUpdate) { + // Final data update + if (dataUpdate) { + this._append(dataUpdate); + } + + // Perform concrete-cipher logic + var finalProcessedData = this._doFinalize(); + + return finalProcessedData; + }, + + keySize: 128/32, + + ivSize: 128/32, + + _ENC_XFORM_MODE: 1, + + _DEC_XFORM_MODE: 2, + + /** + * Creates shortcut functions to a cipher's object interface. + * + * @param {Cipher} cipher The cipher to create a helper for. + * + * @return {Object} An object with encrypt and decrypt shortcut functions. + * + * @static + * + * @example + * + * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); + */ + _createHelper: (function () { + function selectCipherStrategy(key) { + if (typeof key == 'string') { + return PasswordBasedCipher; + } else { + return SerializableCipher; + } + } + + return function (cipher) { + return { + encrypt: function (message, key, cfg) { + return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); + }, + + decrypt: function (ciphertext, key, cfg) { + return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); + } + }; + }; + }()) + }); + + /** + * Abstract base stream cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) + */ + var StreamCipher = C_lib.StreamCipher = Cipher.extend({ + _doFinalize: function () { + // Process partial blocks + var finalProcessedBlocks = this._process(!!'flush'); + + return finalProcessedBlocks; + }, + + blockSize: 1 + }); + + /** + * Mode namespace. + */ + var C_mode = C.mode = {}; + + /** + * Abstract base block cipher mode template. + */ + var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ + /** + * Creates this mode for encryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); + */ + createEncryptor: function (cipher, iv) { + return this.Encryptor.create(cipher, iv); + }, + + /** + * Creates this mode for decryption. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @static + * + * @example + * + * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); + */ + createDecryptor: function (cipher, iv) { + return this.Decryptor.create(cipher, iv); + }, + + /** + * Initializes a newly created mode. + * + * @param {Cipher} cipher A block cipher instance. + * @param {Array} iv The IV words. + * + * @example + * + * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); + */ + init: function (cipher, iv) { + this._cipher = cipher; + this._iv = iv; + } + }); + + /** + * Cipher Block Chaining mode. + */ + var CBC = C_mode.CBC = (function () { + /** + * Abstract base CBC mode. + */ + var CBC = BlockCipherMode.extend(); + + /** + * CBC encryptor. + */ + CBC.Encryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // XOR and encrypt + xorBlock.call(this, words, offset, blockSize); + cipher.encryptBlock(words, offset); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + /** + * CBC decryptor. + */ + CBC.Decryptor = CBC.extend({ + /** + * Processes the data block at offset. + * + * @param {Array} words The data words to operate on. + * @param {number} offset The offset where the block starts. + * + * @example + * + * mode.processBlock(data.words, offset); + */ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + // Decrypt and XOR + cipher.decryptBlock(words, offset); + xorBlock.call(this, words, offset, blockSize); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function xorBlock(words, offset, blockSize) { + var block; + + // Shortcut + var iv = this._iv; + + // Choose mixing block + if (iv) { + block = iv; + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + block = this._prevBlock; + } + + // XOR blocks + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= block[i]; + } + } + + return CBC; + }()); + + /** + * Padding namespace. + */ + var C_pad = C.pad = {}; + + /** + * PKCS #5/7 padding strategy. + */ + var Pkcs7 = C_pad.Pkcs7 = { + /** + * Pads data using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to pad. + * @param {number} blockSize The multiple that the data should be padded to. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.pad(wordArray, 4); + */ + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Create padding word + var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; + + // Create padding + var paddingWords = []; + for (var i = 0; i < nPaddingBytes; i += 4) { + paddingWords.push(paddingWord); + } + var padding = WordArray.create(paddingWords, nPaddingBytes); + + // Add padding + data.concat(padding); + }, + + /** + * Unpads data that had been padded using the algorithm defined in PKCS #5/7. + * + * @param {WordArray} data The data to unpad. + * + * @static + * + * @example + * + * CryptoJS.pad.Pkcs7.unpad(wordArray); + */ + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + /** + * Abstract base block cipher template. + * + * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) + */ + var BlockCipher = C_lib.BlockCipher = Cipher.extend({ + /** + * Configuration options. + * + * @property {Mode} mode The block mode to use. Default: CBC + * @property {Padding} padding The padding strategy to use. Default: Pkcs7 + */ + cfg: Cipher.cfg.extend({ + mode: CBC, + padding: Pkcs7 + }), + + reset: function () { + var modeCreator; + + // Reset cipher + Cipher.reset.call(this); + + // Shortcuts + var cfg = this.cfg; + var iv = cfg.iv; + var mode = cfg.mode; + + // Reset block mode + if (this._xformMode == this._ENC_XFORM_MODE) { + modeCreator = mode.createEncryptor; + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + modeCreator = mode.createDecryptor; + // Keep at least one block in the buffer for unpadding + this._minBufferSize = 1; + } + + if (this._mode && this._mode.__creator == modeCreator) { + this._mode.init(this, iv && iv.words); + } else { + this._mode = modeCreator.call(mode, this, iv && iv.words); + this._mode.__creator = modeCreator; + } + }, + + _doProcessBlock: function (words, offset) { + this._mode.processBlock(words, offset); + }, + + _doFinalize: function () { + var finalProcessedBlocks; + + // Shortcut + var padding = this.cfg.padding; + + // Finalize + if (this._xformMode == this._ENC_XFORM_MODE) { + // Pad data + padding.pad(this._data, this.blockSize); + + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { + // Process final blocks + finalProcessedBlocks = this._process(!!'flush'); + + // Unpad data + padding.unpad(finalProcessedBlocks); + } + + return finalProcessedBlocks; + }, + + blockSize: 128/32 + }); + + /** + * A collection of cipher parameters. + * + * @property {WordArray} ciphertext The raw ciphertext. + * @property {WordArray} key The key to this ciphertext. + * @property {WordArray} iv The IV used in the ciphering operation. + * @property {WordArray} salt The salt used with a key derivation function. + * @property {Cipher} algorithm The cipher algorithm. + * @property {Mode} mode The block mode used in the ciphering operation. + * @property {Padding} padding The padding scheme used in the ciphering operation. + * @property {number} blockSize The block size of the cipher. + * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. + */ + var CipherParams = C_lib.CipherParams = Base.extend({ + /** + * Initializes a newly created cipher params object. + * + * @param {Object} cipherParams An object with any of the possible cipher parameters. + * + * @example + * + * var cipherParams = CryptoJS.lib.CipherParams.create({ + * ciphertext: ciphertextWordArray, + * key: keyWordArray, + * iv: ivWordArray, + * salt: saltWordArray, + * algorithm: CryptoJS.algo.AES, + * mode: CryptoJS.mode.CBC, + * padding: CryptoJS.pad.PKCS7, + * blockSize: 4, + * formatter: CryptoJS.format.OpenSSL + * }); + */ + init: function (cipherParams) { + this.mixIn(cipherParams); + }, + + /** + * Converts this cipher params object to a string. + * + * @param {Format} formatter (Optional) The formatting strategy to use. + * + * @return {string} The stringified cipher params. + * + * @throws Error If neither the formatter nor the default formatter is set. + * + * @example + * + * var string = cipherParams + ''; + * var string = cipherParams.toString(); + * var string = cipherParams.toString(CryptoJS.format.OpenSSL); + */ + toString: function (formatter) { + return (formatter || this.formatter).stringify(this); + } + }); + + /** + * Format namespace. + */ + var C_format = C.format = {}; + + /** + * OpenSSL formatting strategy. + */ + var OpenSSLFormatter = C_format.OpenSSL = { + /** + * Converts a cipher params object to an OpenSSL-compatible string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The OpenSSL-compatible string. + * + * @static + * + * @example + * + * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); + */ + stringify: function (cipherParams) { + var wordArray; + + // Shortcuts + var ciphertext = cipherParams.ciphertext; + var salt = cipherParams.salt; + + // Format + if (salt) { + wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); + } else { + wordArray = ciphertext; + } + + return wordArray.toString(Base64); + }, + + /** + * Converts an OpenSSL-compatible string to a cipher params object. + * + * @param {string} openSSLStr The OpenSSL-compatible string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); + */ + parse: function (openSSLStr) { + var salt; + + // Parse base64 + var ciphertext = Base64.parse(openSSLStr); + + // Shortcut + var ciphertextWords = ciphertext.words; + + // Test for salt + if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { + // Extract salt + salt = WordArray.create(ciphertextWords.slice(2, 4)); + + // Remove salt from ciphertext + ciphertextWords.splice(0, 4); + ciphertext.sigBytes -= 16; + } + + return CipherParams.create({ ciphertext: ciphertext, salt: salt }); + } + }; + + /** + * A cipher wrapper that returns ciphertext as a serializable cipher params object. + */ + var SerializableCipher = C_lib.SerializableCipher = Base.extend({ + /** + * Configuration options. + * + * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL + */ + cfg: Base.extend({ + format: OpenSSLFormatter + }), + + /** + * Encrypts a message. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); + * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Encrypt + var encryptor = cipher.createEncryptor(key, cfg); + var ciphertext = encryptor.finalize(message); + + // Shortcut + var cipherCfg = encryptor.cfg; + + // Create and return serializable cipher params + return CipherParams.create({ + ciphertext: ciphertext, + key: key, + iv: cipherCfg.iv, + algorithm: cipher, + mode: cipherCfg.mode, + padding: cipherCfg.padding, + blockSize: cipher.blockSize, + formatter: cfg.format + }); + }, + + /** + * Decrypts serialized ciphertext. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {WordArray} key The key. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, key, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Decrypt + var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); + + return plaintext; + }, + + /** + * Converts serialized ciphertext to CipherParams, + * else assumed CipherParams already and returns ciphertext unchanged. + * + * @param {CipherParams|string} ciphertext The ciphertext. + * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. + * + * @return {CipherParams} The unserialized ciphertext. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); + */ + _parse: function (ciphertext, format) { + if (typeof ciphertext == 'string') { + return format.parse(ciphertext, this); + } else { + return ciphertext; + } + } + }); + + /** + * Key derivation function namespace. + */ + var C_kdf = C.kdf = {}; + + /** + * OpenSSL key derivation function. + */ + var OpenSSLKdf = C_kdf.OpenSSL = { + /** + * Derives a key and IV from a password. + * + * @param {string} password The password to derive from. + * @param {number} keySize The size in words of the key to generate. + * @param {number} ivSize The size in words of the IV to generate. + * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. + * + * @return {CipherParams} A cipher params object with the key, IV, and salt. + * + * @static + * + * @example + * + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); + * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); + */ + execute: function (password, keySize, ivSize, salt, hasher) { + // Generate random salt + if (!salt) { + salt = WordArray.random(64/8); + } + + // Derive key and IV + if (!hasher) { + var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); + } else { + var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt); + } + + + // Separate key and IV + var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); + key.sigBytes = keySize * 4; + + // Return params + return CipherParams.create({ key: key, iv: iv, salt: salt }); + } + }; + + /** + * A serializable cipher wrapper that derives the key from a password, + * and returns ciphertext as a serializable cipher params object. + */ + var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ + /** + * Configuration options. + * + * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL + */ + cfg: SerializableCipher.cfg.extend({ + kdf: OpenSSLKdf + }), + + /** + * Encrypts a message using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {WordArray|string} message The message to encrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {CipherParams} A cipher params object. + * + * @static + * + * @example + * + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); + * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); + */ + encrypt: function (cipher, message, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Encrypt + var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); + + // Mix in derived params + ciphertext.mixIn(derivedParams); + + return ciphertext; + }, + + /** + * Decrypts serialized ciphertext using a password. + * + * @param {Cipher} cipher The cipher algorithm to use. + * @param {CipherParams|string} ciphertext The ciphertext to decrypt. + * @param {string} password The password. + * @param {Object} cfg (Optional) The configuration options to use for this operation. + * + * @return {WordArray} The plaintext. + * + * @static + * + * @example + * + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); + * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); + */ + decrypt: function (cipher, ciphertext, password, cfg) { + // Apply config defaults + cfg = this.cfg.extend(cfg); + + // Convert string to CipherParams + ciphertext = this._parse(ciphertext, cfg.format); + + // Derive key and other params + var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher); + + // Add IV to config + cfg.iv = derivedParams.iv; + + // Decrypt + var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); + + return plaintext; + } + }); + }()); + + + /** + * Cipher Feedback block mode. + */ + CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + var keystream; + + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; + }()); + + + /** + * Counter block mode. + */ + CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; + }()); + + + /** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ + CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; + }()); + + + + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + /** + * Electronic Codebook block mode. + */ + CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }()); + + + /** + * ANSI X.923 padding strategy. + */ + CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + /** + * ISO 10126 padding strategy. + */ + CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + /** + * ISO/IEC 9797-1 Padding Method 2. + */ + CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } + }; + + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + for (var i = data.sigBytes - 1; i >= 0; i--) { + if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + data.sigBytes = i + 1; + break; + } + } + } + }; + + + /** + * A noop padding strategy. + */ + CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } + }; + + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Lookup tables + var SBOX = []; + var INV_SBOX = []; + var SUB_MIX_0 = []; + var SUB_MIX_1 = []; + var SUB_MIX_2 = []; + var SUB_MIX_3 = []; + var INV_SUB_MIX_0 = []; + var INV_SUB_MIX_1 = []; + var INV_SUB_MIX_2 = []; + var INV_SUB_MIX_3 = []; + + // Compute lookup tables + (function () { + // Compute double table + var d = []; + for (var i = 0; i < 256; i++) { + if (i < 128) { + d[i] = i << 1; + } else { + d[i] = (i << 1) ^ 0x11b; + } + } + + // Walk GF(2^8) + var x = 0; + var xi = 0; + for (var i = 0; i < 256; i++) { + // Compute sbox + var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); + sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; + SBOX[x] = sx; + INV_SBOX[sx] = x; + + // Compute multiplication + var x2 = d[x]; + var x4 = d[x2]; + var x8 = d[x4]; + + // Compute sub bytes, mix columns tables + var t = (d[sx] * 0x101) ^ (sx * 0x1010100); + SUB_MIX_0[x] = (t << 24) | (t >>> 8); + SUB_MIX_1[x] = (t << 16) | (t >>> 16); + SUB_MIX_2[x] = (t << 8) | (t >>> 24); + SUB_MIX_3[x] = t; + + // Compute inv sub bytes, inv mix columns tables + var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); + INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); + INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); + INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); + INV_SUB_MIX_3[sx] = t; + + // Compute next counter + if (!x) { + x = xi = 1; + } else { + x = x2 ^ d[d[d[x8 ^ x2]]]; + xi ^= d[d[xi]]; + } + } + }()); + + // Precomputed Rcon lookup + var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; + + /** + * AES block cipher algorithm. + */ + var AES = C_algo.AES = BlockCipher.extend({ + _doReset: function () { + var t; + + // Skip reset of nRounds has been set before and key did not change + if (this._nRounds && this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + // Compute number of rounds + var nRounds = this._nRounds = keySize + 6; + + // Compute number of key schedule rows + var ksRows = (nRounds + 1) * 4; + + // Compute key schedule + var keySchedule = this._keySchedule = []; + for (var ksRow = 0; ksRow < ksRows; ksRow++) { + if (ksRow < keySize) { + keySchedule[ksRow] = keyWords[ksRow]; + } else { + t = keySchedule[ksRow - 1]; + + if (!(ksRow % keySize)) { + // Rot word + t = (t << 8) | (t >>> 24); + + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + + // Mix Rcon + t ^= RCON[(ksRow / keySize) | 0] << 24; + } else if (keySize > 6 && ksRow % keySize == 4) { + // Sub word + t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; + } + + keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; + } + } + + // Compute inv key schedule + var invKeySchedule = this._invKeySchedule = []; + for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { + var ksRow = ksRows - invKsRow; + + if (invKsRow % 4) { + var t = keySchedule[ksRow]; + } else { + var t = keySchedule[ksRow - 4]; + } + + if (invKsRow < 4 || ksRow <= 4) { + invKeySchedule[invKsRow] = t; + } else { + invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ + INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; + } + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); + }, + + decryptBlock: function (M, offset) { + // Swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + + this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); + + // Inv swap 2nd and 4th rows + var t = M[offset + 1]; + M[offset + 1] = M[offset + 3]; + M[offset + 3] = t; + }, + + _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { + // Shortcut + var nRounds = this._nRounds; + + // Get input, add round key + var s0 = M[offset] ^ keySchedule[0]; + var s1 = M[offset + 1] ^ keySchedule[1]; + var s2 = M[offset + 2] ^ keySchedule[2]; + var s3 = M[offset + 3] ^ keySchedule[3]; + + // Key schedule row counter + var ksRow = 4; + + // Rounds + for (var round = 1; round < nRounds; round++) { + // Shift rows, sub bytes, mix columns, add round key + var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; + var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; + var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; + var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; + + // Update state + s0 = t0; + s1 = t1; + s2 = t2; + s3 = t3; + } + + // Shift rows, sub bytes, add round key + var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; + var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; + var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; + var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; + + // Set output + M[offset] = t0; + M[offset + 1] = t1; + M[offset + 2] = t2; + M[offset + 3] = t3; + }, + + keySize: 256/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); + */ + C.AES = BlockCipher._createHelper(AES); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + // Make sure the key length is valid (64, 128 or >= 192 bit) + if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { + throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); + } + + // Extend the key according to the keying options defined in 3DES standard + var key1 = keyWords.slice(0, 2); + var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); + var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(key1)); + this._des2 = DES.createEncryptor(WordArray.create(key2)); + this._des3 = DES.createEncryptor(WordArray.create(key3)); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); + }()); + + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + const N = 16; + + //Origin pbox and sbox, derived from PI + const ORIG_P = [ + 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344, + 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89, + 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C, + 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917, + 0x9216D5D9, 0x8979FB1B + ]; + + const ORIG_S = [ + [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7, + 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99, + 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16, + 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E, + 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE, + 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013, + 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF, + 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E, + 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60, + 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440, + 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE, + 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A, + 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E, + 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677, + 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193, + 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032, + 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88, + 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239, + 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E, + 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0, + 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3, + 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98, + 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88, + 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE, + 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6, + 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D, + 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B, + 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7, + 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA, + 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463, + 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F, + 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09, + 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3, + 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB, + 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279, + 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8, + 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB, + 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82, + 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB, + 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573, + 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0, + 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B, + 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790, + 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8, + 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4, + 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0, + 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7, + 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C, + 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD, + 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1, + 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299, + 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9, + 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477, + 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF, + 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49, + 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF, + 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA, + 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5, + 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41, + 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915, + 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400, + 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915, + 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664, + 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ], + [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623, + 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266, + 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1, + 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E, + 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6, + 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1, + 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E, + 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1, + 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737, + 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8, + 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF, + 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD, + 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701, + 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7, + 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41, + 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331, + 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF, + 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF, + 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E, + 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87, + 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C, + 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2, + 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16, + 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD, + 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B, + 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509, + 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E, + 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3, + 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F, + 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A, + 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4, + 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960, + 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66, + 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28, + 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802, + 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84, + 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510, + 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF, + 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14, + 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E, + 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50, + 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7, + 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8, + 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281, + 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99, + 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696, + 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128, + 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73, + 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0, + 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0, + 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105, + 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250, + 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3, + 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285, + 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00, + 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061, + 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB, + 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E, + 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735, + 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC, + 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9, + 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340, + 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20, + 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ], + [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934, + 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068, + 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF, + 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840, + 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45, + 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504, + 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A, + 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB, + 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE, + 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6, + 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42, + 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B, + 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2, + 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB, + 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527, + 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B, + 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33, + 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C, + 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3, + 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC, + 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17, + 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564, + 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B, + 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115, + 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922, + 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728, + 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0, + 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E, + 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37, + 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D, + 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804, + 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B, + 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3, + 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB, + 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D, + 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C, + 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350, + 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9, + 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A, + 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE, + 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D, + 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC, + 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F, + 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61, + 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2, + 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9, + 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2, + 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C, + 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E, + 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633, + 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10, + 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169, + 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52, + 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027, + 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5, + 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62, + 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634, + 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76, + 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24, + 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC, + 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4, + 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C, + 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837, + 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ], + [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B, + 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE, + 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B, + 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4, + 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8, + 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6, + 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304, + 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22, + 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4, + 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6, + 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9, + 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59, + 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593, + 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51, + 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28, + 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C, + 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B, + 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28, + 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C, + 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD, + 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A, + 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319, + 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB, + 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F, + 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991, + 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32, + 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680, + 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166, + 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE, + 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB, + 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5, + 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47, + 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370, + 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D, + 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84, + 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048, + 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8, + 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD, + 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9, + 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7, + 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38, + 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F, + 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C, + 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525, + 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1, + 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442, + 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964, + 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E, + 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8, + 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D, + 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F, + 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299, + 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02, + 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC, + 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614, + 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A, + 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6, + 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B, + 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0, + 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060, + 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E, + 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9, + 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F, + 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ] + ]; + + var BLOWFISH_CTX = { + pbox: [], + sbox: [] + } + + function F(ctx, x){ + let a = (x >> 24) & 0xFF; + let b = (x >> 16) & 0xFF; + let c = (x >> 8) & 0xFF; + let d = x & 0xFF; + + let y = ctx.sbox[0][a] + ctx.sbox[1][b]; + y = y ^ ctx.sbox[2][c]; + y = y + ctx.sbox[3][d]; + + return y; + } + + function BlowFish_Encrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = 0; i < N; ++i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[N]; + Xl = Xl ^ ctx.pbox[N + 1]; + + return {left: Xl, right: Xr}; + } + + function BlowFish_Decrypt(ctx, left, right){ + let Xl = left; + let Xr = right; + let temp; + + for(let i = N + 1; i > 1; --i){ + Xl = Xl ^ ctx.pbox[i]; + Xr = F(ctx, Xl) ^ Xr; + + temp = Xl; + Xl = Xr; + Xr = temp; + } + + temp = Xl; + Xl = Xr; + Xr = temp; + + Xr = Xr ^ ctx.pbox[1]; + Xl = Xl ^ ctx.pbox[0]; + + return {left: Xl, right: Xr}; + } + + /** + * Initialization ctx's pbox and sbox. + * + * @param {Object} ctx The object has pbox and sbox. + * @param {Array} key An array of 32-bit words. + * @param {int} keysize The length of the key. + * + * @example + * + * BlowFishInit(BLOWFISH_CTX, key, 128/32); + */ + function BlowFishInit(ctx, key, keysize) + { + for(let Row = 0; Row < 4; Row++) + { + ctx.sbox[Row] = []; + for(let Col = 0; Col < 256; Col++) + { + ctx.sbox[Row][Col] = ORIG_S[Row][Col]; + } + } + + let keyIndex = 0; + for(let index = 0; index < N + 2; index++) + { + ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex]; + keyIndex++; + if(keyIndex >= keysize) + { + keyIndex = 0; + } + } + + let Data1 = 0; + let Data2 = 0; + let res = 0; + for(let i = 0; i < N + 2; i += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.pbox[i] = Data1; + ctx.pbox[i + 1] = Data2; + } + + for(let i = 0; i < 4; i++) + { + for(let j = 0; j < 256; j += 2) + { + res = BlowFish_Encrypt(ctx, Data1, Data2); + Data1 = res.left; + Data2 = res.right; + ctx.sbox[i][j] = Data1; + ctx.sbox[i][j + 1] = Data2; + } + } + + return true; + } + + /** + * Blowfish block cipher algorithm. + */ + var Blowfish = C_algo.Blowfish = BlockCipher.extend({ + _doReset: function () { + // Skip reset of nRounds has been set before and key did not change + if (this._keyPriorReset === this._key) { + return; + } + + // Shortcuts + var key = this._keyPriorReset = this._key; + var keyWords = key.words; + var keySize = key.sigBytes / 4; + + //Initialization pbox and sbox + BlowFishInit(BLOWFISH_CTX, keyWords, keySize); + }, + + encryptBlock: function (M, offset) { + var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + decryptBlock: function (M, offset) { + var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]); + M[offset] = res.left; + M[offset + 1] = res.right; + }, + + blockSize: 64/32, + + keySize: 128/32, + + ivSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg); + */ + C.Blowfish = BlockCipher._createHelper(Blowfish); + }()); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/docs/QuickStartGuide.wiki b/node_modules/crypto-js/docs/QuickStartGuide.wiki new file mode 100644 index 0000000..2bee35d --- /dev/null +++ b/node_modules/crypto-js/docs/QuickStartGuide.wiki @@ -0,0 +1,470 @@ + + +---- + += Quick-start Guide = + +== Hashers == + +=== The Hasher Algorithms === + +==== MD5 ==== + +MD5 is a widely used hash function. It's been used in a variety of security applications and is also commonly used to check the integrity of files. Though, MD5 is not collision resistant, and it isn't suitable for applications like SSL certificates or digital signatures that rely on this property. + +{{{ + + +}}} + +==== SHA-1 ==== + +The SHA hash functions were designed by the National Security Agency (NSA). SHA-1 is the most established of the existing SHA hash functions, and it's used in a variety of security applications and protocols. Though, SHA-1's collision resistance has been weakening as new attacks are discovered or improved. + +{{{ + + +}}} + +==== SHA-2 ==== + +SHA-256 is one of the four variants in the SHA-2 set. It isn't as widely used as SHA-1, though it appears to provide much better security. + +{{{ + + +}}} + +SHA-512 is largely identical to SHA-256 but operates on 64-bit words rather than 32. + +{{{ + + +}}} + +CryptoJS also supports SHA-224 and SHA-384, which are largely identical but truncated versions of SHA-256 and SHA-512 respectively. + +==== SHA-3 ==== + +SHA-3 is the winner of a five-year competition to select a new cryptographic hash algorithm where 64 competing designs were evaluated. + +{{{ + + +}}} + +SHA-3 can be configured to output hash lengths of one of 224, 256, 384, or 512 bits. The default is 512 bits. + +{{{ + + +}}} + +==== RIPEMD-160 ==== + +{{{ + + +}}} + +=== The Hasher Input === + +The hash algorithms accept either strings or instances of CryptoJS.lib.WordArray. A WordArray object represents an array of 32-bit words. When you pass a string, it's automatically converted to a WordArray encoded as UTF-8. + +=== The Hasher Output === + +The hash you get back isn't a string yet. It's a WordArray object. When you use a WordArray object in a string context, it's automatically converted to a hex string. + +{{{ + + +}}} + +You can convert a WordArray object to other formats by explicitly calling the toString method and passing an encoder. + +{{{ + + + +}}} + +=== Progressive Hashing === + +{{{ + + +}}} + +== HMAC == + +Keyed-hash message authentication codes (HMAC) is a mechanism for message authentication using cryptographic hash functions. + +HMAC can be used in combination with any iterated cryptographic hash function. + +{{{ + + + + + +}}} + +=== Progressive HMAC Hashing === + +{{{ + + +}}} + +== PBKDF2 == + +PBKDF2 is a password-based key derivation function. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required. + +A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack. + +{{{ + + +}}} + +== Ciphers == + +=== The Cipher Algorithms === + +==== AES ==== + +The Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated. + +{{{ + + +}}} + +CryptoJS supports AES-128, AES-192, and AES-256. It will pick the variant by the size of the key you pass in. If you use a passphrase, then it will generate a 256-bit key. + +==== DES, Triple DES ==== + +DES is a previously dominant algorithm for encryption, and was published as an official Federal Information Processing Standard (FIPS). DES is now considered to be insecure due to the small key size. + +{{{ + + +}}} + +Triple DES applies DES three times to each block to increase the key size. The algorithm is believed to be secure in this form. + +{{{ + + +}}} + +==== Rabbit ==== + +Rabbit is a high-performance stream cipher and a finalist in the eSTREAM Portfolio. It is one of the four designs selected after a 3 1/2-year process where 22 designs were evaluated. + +{{{ + + +}}} + +==== RC4, RC4Drop ==== + +RC4 is a widely-used stream cipher. It's used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security. + +{{{ + + +}}} + +It was discovered that the first few bytes of keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop. + +By default, 192 words (768 bytes) are dropped, but you can configure the algorithm to drop any number of words. + +{{{ + + +}}} + +=== Custom Key and IV === + +{{{ + + +}}} + +=== Block Modes and Padding === + +{{{ + + + + +}}} + +CryptoJS supports the following modes: + + * CBC (the default) + * CFB + * CTR + * OFB + * ECB + +And CryptoJS supports the following padding schemes: + + * Pkcs7 (the default) + * Iso97971 + * AnsiX923 + * Iso10126 + * ZeroPadding + * NoPadding + +=== The Cipher Input === + +For the plaintext message, the cipher algorithms accept either strings or instances of CryptoJS.lib.WordArray. + +For the key, when you pass a string, it's treated as a passphrase and used to derive an actual key and IV. Or you can pass a WordArray that represents the actual key. If you pass the actual key, you must also pass the actual IV. + +For the ciphertext, the cipher algorithms accept either strings or instances of CryptoJS.lib.CipherParams. A CipherParams object represents a collection of parameters such as the IV, a salt, and the raw ciphertext itself. When you pass a string, it's automatically converted to a CipherParams object according to a configurable format strategy. + +=== The Cipher Output === + +The plaintext you get back after decryption is a WordArray object. See Hashers' Output for more detail. + +The ciphertext you get back after encryption isn't a string yet. It's a CipherParams object. A CipherParams object gives you access to all the parameters used during encryption. When you use a CipherParams object in a string context, it's automatically converted to a string according to a format strategy. The default is an OpenSSL-compatible format. + +{{{ + + +}}} + +You can define your own formats in order to be compatible with other crypto implementations. A format is an object with two methods鈥攕tringify and parse鈥攖hat converts between CipherParams objects and ciphertext strings. + +Here's how you might write a JSON formatter: + +{{{ + + +}}} + +=== Progressive Ciphering === + +{{{ + + +}}} + +=== Interoperability === + +==== With OpenSSL ==== + +Encrypt with OpenSSL: + +{{{ +openssl enc -aes-256-cbc -in infile -out outfile -pass pass:"Secret Passphrase" -e -base64 +}}} + +Decrypt with CryptoJS: + +{{{ + + +}}} + +== Encoders == + +CryptoJS can convert from encoding formats such as Base64, Latin1 or Hex to WordArray objects and vica versa. + +{{{ + + + + +}}} \ No newline at end of file diff --git a/node_modules/crypto-js/enc-base64.js b/node_modules/crypto-js/enc-base64.js new file mode 100644 index 0000000..0ffcd53 --- /dev/null +++ b/node_modules/crypto-js/enc-base64.js @@ -0,0 +1,136 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64 encoding strategy. + */ + var Base64 = C_enc.Base64 = { + /** + * Converts a word array to a Base64 string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The Base64 string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64 string to a word array. + * + * @param {string} base64Str The Base64 string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64.parse(base64String); + */ + parse: function (base64Str) { + // Shortcuts + var base64StrLength = base64Str.length; + var map = this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-base64url.js b/node_modules/crypto-js/enc-base64url.js new file mode 100644 index 0000000..af682e3 --- /dev/null +++ b/node_modules/crypto-js/enc-base64url.js @@ -0,0 +1,148 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * Base64url encoding strategy. + */ + var Base64url = C_enc.Base64url = { + /** + * Converts a word array to a Base64url string. + * + * @param {WordArray} wordArray The word array. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {string} The Base64url string. + * + * @static + * + * @example + * + * var base64String = CryptoJS.enc.Base64url.stringify(wordArray); + */ + stringify: function (wordArray, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + var map = urlSafe ? this._safe_map : this._map; + + // Clamp excess bits + wordArray.clamp(); + + // Convert + var base64Chars = []; + for (var i = 0; i < sigBytes; i += 3) { + var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; + var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; + var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; + + var triplet = (byte1 << 16) | (byte2 << 8) | byte3; + + for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { + base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); + } + } + + // Add padding + var paddingChar = map.charAt(64); + if (paddingChar) { + while (base64Chars.length % 4) { + base64Chars.push(paddingChar); + } + } + + return base64Chars.join(''); + }, + + /** + * Converts a Base64url string to a word array. + * + * @param {string} base64Str The Base64url string. + * + * @param {boolean} urlSafe Whether to use url safe + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Base64url.parse(base64String); + */ + parse: function (base64Str, urlSafe) { + if (urlSafe === undefined) { + urlSafe = true + } + + // Shortcuts + var base64StrLength = base64Str.length; + var map = urlSafe ? this._safe_map : this._map; + var reverseMap = this._reverseMap; + + if (!reverseMap) { + reverseMap = this._reverseMap = []; + for (var j = 0; j < map.length; j++) { + reverseMap[map.charCodeAt(j)] = j; + } + } + + // Ignore padding + var paddingChar = map.charAt(64); + if (paddingChar) { + var paddingIndex = base64Str.indexOf(paddingChar); + if (paddingIndex !== -1) { + base64StrLength = paddingIndex; + } + } + + // Convert + return parseLoop(base64Str, base64StrLength, reverseMap); + + }, + + _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', + _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', + }; + + function parseLoop(base64Str, base64StrLength, reverseMap) { + var words = []; + var nBytes = 0; + for (var i = 0; i < base64StrLength; i++) { + if (i % 4) { + var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); + var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); + var bitsCombined = bits1 | bits2; + words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8); + nBytes++; + } + } + return WordArray.create(words, nBytes); + } + }()); + + + return CryptoJS.enc.Base64url; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-hex.js b/node_modules/crypto-js/enc-hex.js new file mode 100644 index 0000000..88161ff --- /dev/null +++ b/node_modules/crypto-js/enc-hex.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Hex; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-latin1.js b/node_modules/crypto-js/enc-latin1.js new file mode 100644 index 0000000..ade56dc --- /dev/null +++ b/node_modules/crypto-js/enc-latin1.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Latin1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-utf16.js b/node_modules/crypto-js/enc-utf16.js new file mode 100644 index 0000000..7de6245 --- /dev/null +++ b/node_modules/crypto-js/enc-utf16.js @@ -0,0 +1,149 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_enc = C.enc; + + /** + * UTF-16 BE encoding strategy. + */ + var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { + /** + * Converts a word array to a UTF-16 BE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 BE string. + * + * @static + * + * @example + * + * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 BE string to a word array. + * + * @param {string} utf16Str The UTF-16 BE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + /** + * UTF-16 LE encoding strategy. + */ + C_enc.Utf16LE = { + /** + * Converts a word array to a UTF-16 LE string. + * + * @param {WordArray} wordArray The word array. + * + * @return {string} The UTF-16 LE string. + * + * @static + * + * @example + * + * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); + */ + stringify: function (wordArray) { + // Shortcuts + var words = wordArray.words; + var sigBytes = wordArray.sigBytes; + + // Convert + var utf16Chars = []; + for (var i = 0; i < sigBytes; i += 2) { + var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); + utf16Chars.push(String.fromCharCode(codePoint)); + } + + return utf16Chars.join(''); + }, + + /** + * Converts a UTF-16 LE string to a word array. + * + * @param {string} utf16Str The UTF-16 LE string. + * + * @return {WordArray} The word array. + * + * @static + * + * @example + * + * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); + */ + parse: function (utf16Str) { + // Shortcut + var utf16StrLength = utf16Str.length; + + // Convert + var words = []; + for (var i = 0; i < utf16StrLength; i++) { + words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); + } + + return WordArray.create(words, utf16StrLength * 2); + } + }; + + function swapEndian(word) { + return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); + } + }()); + + + return CryptoJS.enc.Utf16; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/enc-utf8.js b/node_modules/crypto-js/enc-utf8.js new file mode 100644 index 0000000..e7a251d --- /dev/null +++ b/node_modules/crypto-js/enc-utf8.js @@ -0,0 +1,18 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.enc.Utf8; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/evpkdf.js b/node_modules/crypto-js/evpkdf.js new file mode 100644 index 0000000..578974a --- /dev/null +++ b/node_modules/crypto-js/evpkdf.js @@ -0,0 +1,134 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha1", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var MD5 = C_algo.MD5; + + /** + * This key derivation function is meant to conform with EVP_BytesToKey. + * www.openssl.org/docs/crypto/EVP_BytesToKey.html + */ + var EvpKDF = C_algo.EvpKDF = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hash algorithm to use. Default: MD5 + * @property {number} iterations The number of iterations to perform. Default: 1 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: MD5, + iterations: 1 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.EvpKDF.create(); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + var block; + + // Shortcut + var cfg = this.cfg; + + // Init hasher + var hasher = cfg.hasher.create(); + + // Initial values + var derivedKey = WordArray.create(); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + if (block) { + hasher.update(block); + } + block = hasher.update(password).finalize(salt); + hasher.reset(); + + // Iterations + for (var i = 1; i < iterations; i++) { + block = hasher.finalize(block); + hasher.reset(); + } + + derivedKey.concat(block); + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Derives a key from a password. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.EvpKDF(password, salt); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); + * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.EvpKDF = function (password, salt, cfg) { + return EvpKDF.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.EvpKDF; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/format-hex.js b/node_modules/crypto-js/format-hex.js new file mode 100644 index 0000000..2e9a861 --- /dev/null +++ b/node_modules/crypto-js/format-hex.js @@ -0,0 +1,66 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var CipherParams = C_lib.CipherParams; + var C_enc = C.enc; + var Hex = C_enc.Hex; + var C_format = C.format; + + var HexFormatter = C_format.Hex = { + /** + * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. + * + * @param {CipherParams} cipherParams The cipher params object. + * + * @return {string} The hexadecimally encoded string. + * + * @static + * + * @example + * + * var hexString = CryptoJS.format.Hex.stringify(cipherParams); + */ + stringify: function (cipherParams) { + return cipherParams.ciphertext.toString(Hex); + }, + + /** + * Converts a hexadecimally encoded ciphertext string to a cipher params object. + * + * @param {string} input The hexadecimally encoded string. + * + * @return {CipherParams} The cipher params object. + * + * @static + * + * @example + * + * var cipherParams = CryptoJS.format.Hex.parse(hexString); + */ + parse: function (input) { + var ciphertext = Hex.parse(input); + return CipherParams.create({ ciphertext: ciphertext }); + } + }; + }()); + + + return CryptoJS.format.Hex; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/format-openssl.js b/node_modules/crypto-js/format-openssl.js new file mode 100644 index 0000000..3373edc --- /dev/null +++ b/node_modules/crypto-js/format-openssl.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.format.OpenSSL; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-md5.js b/node_modules/crypto-js/hmac-md5.js new file mode 100644 index 0000000..ad7a90a --- /dev/null +++ b/node_modules/crypto-js/hmac-md5.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./md5", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacMD5; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-ripemd160.js b/node_modules/crypto-js/hmac-ripemd160.js new file mode 100644 index 0000000..73d55a7 --- /dev/null +++ b/node_modules/crypto-js/hmac-ripemd160.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./ripemd160", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacRIPEMD160; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha1.js b/node_modules/crypto-js/hmac-sha1.js new file mode 100644 index 0000000..0b570cb --- /dev/null +++ b/node_modules/crypto-js/hmac-sha1.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha1", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha224.js b/node_modules/crypto-js/hmac-sha224.js new file mode 100644 index 0000000..3778863 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha224.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./sha224", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA224; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha256.js b/node_modules/crypto-js/hmac-sha256.js new file mode 100644 index 0000000..33b0c9f --- /dev/null +++ b/node_modules/crypto-js/hmac-sha256.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA256; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha3.js b/node_modules/crypto-js/hmac-sha3.js new file mode 100644 index 0000000..1248804 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha3.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha3", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA3; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha384.js b/node_modules/crypto-js/hmac-sha384.js new file mode 100644 index 0000000..0036e2b --- /dev/null +++ b/node_modules/crypto-js/hmac-sha384.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA384; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac-sha512.js b/node_modules/crypto-js/hmac-sha512.js new file mode 100644 index 0000000..c1005b6 --- /dev/null +++ b/node_modules/crypto-js/hmac-sha512.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.HmacSHA512; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/hmac.js b/node_modules/crypto-js/hmac.js new file mode 100644 index 0000000..8c09851 --- /dev/null +++ b/node_modules/crypto-js/hmac.js @@ -0,0 +1,143 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var C_enc = C.enc; + var Utf8 = C_enc.Utf8; + var C_algo = C.algo; + + /** + * HMAC algorithm. + */ + var HMAC = C_algo.HMAC = Base.extend({ + /** + * Initializes a newly created HMAC. + * + * @param {Hasher} hasher The hash algorithm to use. + * @param {WordArray|string} key The secret key. + * + * @example + * + * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); + */ + init: function (hasher, key) { + // Init hasher + hasher = this._hasher = new hasher.init(); + + // Convert string to WordArray, else assume WordArray already + if (typeof key == 'string') { + key = Utf8.parse(key); + } + + // Shortcuts + var hasherBlockSize = hasher.blockSize; + var hasherBlockSizeBytes = hasherBlockSize * 4; + + // Allow arbitrary length keys + if (key.sigBytes > hasherBlockSizeBytes) { + key = hasher.finalize(key); + } + + // Clamp excess bits + key.clamp(); + + // Clone key for inner and outer pads + var oKey = this._oKey = key.clone(); + var iKey = this._iKey = key.clone(); + + // Shortcuts + var oKeyWords = oKey.words; + var iKeyWords = iKey.words; + + // XOR keys with pad constants + for (var i = 0; i < hasherBlockSize; i++) { + oKeyWords[i] ^= 0x5c5c5c5c; + iKeyWords[i] ^= 0x36363636; + } + oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; + + // Set initial values + this.reset(); + }, + + /** + * Resets this HMAC to its initial state. + * + * @example + * + * hmacHasher.reset(); + */ + reset: function () { + // Shortcut + var hasher = this._hasher; + + // Reset + hasher.reset(); + hasher.update(this._iKey); + }, + + /** + * Updates this HMAC with a message. + * + * @param {WordArray|string} messageUpdate The message to append. + * + * @return {HMAC} This HMAC instance. + * + * @example + * + * hmacHasher.update('message'); + * hmacHasher.update(wordArray); + */ + update: function (messageUpdate) { + this._hasher.update(messageUpdate); + + // Chainable + return this; + }, + + /** + * Finalizes the HMAC computation. + * Note that the finalize operation is effectively a destructive, read-once operation. + * + * @param {WordArray|string} messageUpdate (Optional) A final message update. + * + * @return {WordArray} The HMAC. + * + * @example + * + * var hmac = hmacHasher.finalize(); + * var hmac = hmacHasher.finalize('message'); + * var hmac = hmacHasher.finalize(wordArray); + */ + finalize: function (messageUpdate) { + // Shortcut + var hasher = this._hasher; + + // Compute HMAC + var innerHash = hasher.finalize(messageUpdate); + hasher.reset(); + var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); + + return hmac; + } + }); + }()); + + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/index.js b/node_modules/crypto-js/index.js new file mode 100644 index 0000000..b696646 --- /dev/null +++ b/node_modules/crypto-js/index.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./lib-typedarrays"), require("./enc-utf16"), require("./enc-base64"), require("./enc-base64url"), require("./md5"), require("./sha1"), require("./sha256"), require("./sha224"), require("./sha512"), require("./sha384"), require("./sha3"), require("./ripemd160"), require("./hmac"), require("./pbkdf2"), require("./evpkdf"), require("./cipher-core"), require("./mode-cfb"), require("./mode-ctr"), require("./mode-ctr-gladman"), require("./mode-ofb"), require("./mode-ecb"), require("./pad-ansix923"), require("./pad-iso10126"), require("./pad-iso97971"), require("./pad-zeropadding"), require("./pad-nopadding"), require("./format-hex"), require("./aes"), require("./tripledes"), require("./rc4"), require("./rabbit"), require("./rabbit-legacy"), require("./blowfish")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./lib-typedarrays", "./enc-utf16", "./enc-base64", "./enc-base64url", "./md5", "./sha1", "./sha256", "./sha224", "./sha512", "./sha384", "./sha3", "./ripemd160", "./hmac", "./pbkdf2", "./evpkdf", "./cipher-core", "./mode-cfb", "./mode-ctr", "./mode-ctr-gladman", "./mode-ofb", "./mode-ecb", "./pad-ansix923", "./pad-iso10126", "./pad-iso97971", "./pad-zeropadding", "./pad-nopadding", "./format-hex", "./aes", "./tripledes", "./rc4", "./rabbit", "./rabbit-legacy", "./blowfish"], factory); + } + else { + // Global (browser) + root.CryptoJS = factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/lib-typedarrays.js b/node_modules/crypto-js/lib-typedarrays.js new file mode 100644 index 0000000..264b210 --- /dev/null +++ b/node_modules/crypto-js/lib-typedarrays.js @@ -0,0 +1,76 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Check if typed arrays are supported + if (typeof ArrayBuffer != 'function') { + return; + } + + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + + // Reference original init + var superInit = WordArray.init; + + // Augment WordArray.init to handle typed arrays + var subInit = WordArray.init = function (typedArray) { + // Convert buffers to uint8 + if (typedArray instanceof ArrayBuffer) { + typedArray = new Uint8Array(typedArray); + } + + // Convert other array views to uint8 + if ( + typedArray instanceof Int8Array || + (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || + typedArray instanceof Int16Array || + typedArray instanceof Uint16Array || + typedArray instanceof Int32Array || + typedArray instanceof Uint32Array || + typedArray instanceof Float32Array || + typedArray instanceof Float64Array + ) { + typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); + } + + // Handle Uint8Array + if (typedArray instanceof Uint8Array) { + // Shortcut + var typedArrayByteLength = typedArray.byteLength; + + // Extract bytes + var words = []; + for (var i = 0; i < typedArrayByteLength; i++) { + words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); + } + + // Initialize this word array + superInit.call(this, words, typedArrayByteLength); + } else { + // Else call normal init + superInit.apply(this, arguments); + } + }; + + subInit.prototype = WordArray; + }()); + + + return CryptoJS.lib.WordArray; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/md5.js b/node_modules/crypto-js/md5.js new file mode 100644 index 0000000..72fce03 --- /dev/null +++ b/node_modules/crypto-js/md5.js @@ -0,0 +1,268 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var T = []; + + // Compute constants + (function () { + for (var i = 0; i < 64; i++) { + T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; + } + }()); + + /** + * MD5 hash algorithm. + */ + var MD5 = C_algo.MD5 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + + // Shortcuts + var H = this._hash.words; + + var M_offset_0 = M[offset + 0]; + var M_offset_1 = M[offset + 1]; + var M_offset_2 = M[offset + 2]; + var M_offset_3 = M[offset + 3]; + var M_offset_4 = M[offset + 4]; + var M_offset_5 = M[offset + 5]; + var M_offset_6 = M[offset + 6]; + var M_offset_7 = M[offset + 7]; + var M_offset_8 = M[offset + 8]; + var M_offset_9 = M[offset + 9]; + var M_offset_10 = M[offset + 10]; + var M_offset_11 = M[offset + 11]; + var M_offset_12 = M[offset + 12]; + var M_offset_13 = M[offset + 13]; + var M_offset_14 = M[offset + 14]; + var M_offset_15 = M[offset + 15]; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + + // Computation + a = FF(a, b, c, d, M_offset_0, 7, T[0]); + d = FF(d, a, b, c, M_offset_1, 12, T[1]); + c = FF(c, d, a, b, M_offset_2, 17, T[2]); + b = FF(b, c, d, a, M_offset_3, 22, T[3]); + a = FF(a, b, c, d, M_offset_4, 7, T[4]); + d = FF(d, a, b, c, M_offset_5, 12, T[5]); + c = FF(c, d, a, b, M_offset_6, 17, T[6]); + b = FF(b, c, d, a, M_offset_7, 22, T[7]); + a = FF(a, b, c, d, M_offset_8, 7, T[8]); + d = FF(d, a, b, c, M_offset_9, 12, T[9]); + c = FF(c, d, a, b, M_offset_10, 17, T[10]); + b = FF(b, c, d, a, M_offset_11, 22, T[11]); + a = FF(a, b, c, d, M_offset_12, 7, T[12]); + d = FF(d, a, b, c, M_offset_13, 12, T[13]); + c = FF(c, d, a, b, M_offset_14, 17, T[14]); + b = FF(b, c, d, a, M_offset_15, 22, T[15]); + + a = GG(a, b, c, d, M_offset_1, 5, T[16]); + d = GG(d, a, b, c, M_offset_6, 9, T[17]); + c = GG(c, d, a, b, M_offset_11, 14, T[18]); + b = GG(b, c, d, a, M_offset_0, 20, T[19]); + a = GG(a, b, c, d, M_offset_5, 5, T[20]); + d = GG(d, a, b, c, M_offset_10, 9, T[21]); + c = GG(c, d, a, b, M_offset_15, 14, T[22]); + b = GG(b, c, d, a, M_offset_4, 20, T[23]); + a = GG(a, b, c, d, M_offset_9, 5, T[24]); + d = GG(d, a, b, c, M_offset_14, 9, T[25]); + c = GG(c, d, a, b, M_offset_3, 14, T[26]); + b = GG(b, c, d, a, M_offset_8, 20, T[27]); + a = GG(a, b, c, d, M_offset_13, 5, T[28]); + d = GG(d, a, b, c, M_offset_2, 9, T[29]); + c = GG(c, d, a, b, M_offset_7, 14, T[30]); + b = GG(b, c, d, a, M_offset_12, 20, T[31]); + + a = HH(a, b, c, d, M_offset_5, 4, T[32]); + d = HH(d, a, b, c, M_offset_8, 11, T[33]); + c = HH(c, d, a, b, M_offset_11, 16, T[34]); + b = HH(b, c, d, a, M_offset_14, 23, T[35]); + a = HH(a, b, c, d, M_offset_1, 4, T[36]); + d = HH(d, a, b, c, M_offset_4, 11, T[37]); + c = HH(c, d, a, b, M_offset_7, 16, T[38]); + b = HH(b, c, d, a, M_offset_10, 23, T[39]); + a = HH(a, b, c, d, M_offset_13, 4, T[40]); + d = HH(d, a, b, c, M_offset_0, 11, T[41]); + c = HH(c, d, a, b, M_offset_3, 16, T[42]); + b = HH(b, c, d, a, M_offset_6, 23, T[43]); + a = HH(a, b, c, d, M_offset_9, 4, T[44]); + d = HH(d, a, b, c, M_offset_12, 11, T[45]); + c = HH(c, d, a, b, M_offset_15, 16, T[46]); + b = HH(b, c, d, a, M_offset_2, 23, T[47]); + + a = II(a, b, c, d, M_offset_0, 6, T[48]); + d = II(d, a, b, c, M_offset_7, 10, T[49]); + c = II(c, d, a, b, M_offset_14, 15, T[50]); + b = II(b, c, d, a, M_offset_5, 21, T[51]); + a = II(a, b, c, d, M_offset_12, 6, T[52]); + d = II(d, a, b, c, M_offset_3, 10, T[53]); + c = II(c, d, a, b, M_offset_10, 15, T[54]); + b = II(b, c, d, a, M_offset_1, 21, T[55]); + a = II(a, b, c, d, M_offset_8, 6, T[56]); + d = II(d, a, b, c, M_offset_15, 10, T[57]); + c = II(c, d, a, b, M_offset_6, 15, T[58]); + b = II(b, c, d, a, M_offset_13, 21, T[59]); + a = II(a, b, c, d, M_offset_4, 6, T[60]); + d = II(d, a, b, c, M_offset_11, 10, T[61]); + c = II(c, d, a, b, M_offset_2, 15, T[62]); + b = II(b, c, d, a, M_offset_9, 21, T[63]); + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + + var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); + var nBitsTotalL = nBitsTotal; + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( + (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | + (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) + ); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | + (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) + ); + + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 4; i++) { + // Shortcut + var H_i = H[i]; + + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + function FF(a, b, c, d, x, s, t) { + var n = a + ((b & c) | (~b & d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function GG(a, b, c, d, x, s, t) { + var n = a + ((b & d) | (c & ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function HH(a, b, c, d, x, s, t) { + var n = a + (b ^ c ^ d) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + function II(a, b, c, d, x, s, t) { + var n = a + (c ^ (b | ~d)) + x + t; + return ((n << s) | (n >>> (32 - s))) + b; + } + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.MD5('message'); + * var hash = CryptoJS.MD5(wordArray); + */ + C.MD5 = Hasher._createHelper(MD5); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacMD5(message, key); + */ + C.HmacMD5 = Hasher._createHmacHelper(MD5); + }(Math)); + + + return CryptoJS.MD5; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-cfb.js b/node_modules/crypto-js/mode-cfb.js new file mode 100644 index 0000000..444c9cb --- /dev/null +++ b/node_modules/crypto-js/mode-cfb.js @@ -0,0 +1,80 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Cipher Feedback block mode. + */ + CryptoJS.mode.CFB = (function () { + var CFB = CryptoJS.lib.BlockCipherMode.extend(); + + CFB.Encryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // Remember this block to use with next block + this._prevBlock = words.slice(offset, offset + blockSize); + } + }); + + CFB.Decryptor = CFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher; + var blockSize = cipher.blockSize; + + // Remember this block to use with next block + var thisBlock = words.slice(offset, offset + blockSize); + + generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); + + // This block becomes the previous block + this._prevBlock = thisBlock; + } + }); + + function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { + var keystream; + + // Shortcut + var iv = this._iv; + + // Generate keystream + if (iv) { + keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } else { + keystream = this._prevBlock; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + + return CFB; + }()); + + + return CryptoJS.mode.CFB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ctr-gladman.js b/node_modules/crypto-js/mode-ctr-gladman.js new file mode 100644 index 0000000..bbc5687 --- /dev/null +++ b/node_modules/crypto-js/mode-ctr-gladman.js @@ -0,0 +1,116 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + * Counter block mode compatible with Dr Brian Gladman fileenc.c + * derived from CryptoJS.mode.CTR + * Jan Hruby jhruby.web@gmail.com + */ + CryptoJS.mode.CTRGladman = (function () { + var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); + + function incWord(word) + { + if (((word >> 24) & 0xff) === 0xff) { //overflow + var b1 = (word >> 16)&0xff; + var b2 = (word >> 8)&0xff; + var b3 = word & 0xff; + + if (b1 === 0xff) // overflow b1 + { + b1 = 0; + if (b2 === 0xff) + { + b2 = 0; + if (b3 === 0xff) + { + b3 = 0; + } + else + { + ++b3; + } + } + else + { + ++b2; + } + } + else + { + ++b1; + } + + word = 0; + word += (b1 << 16); + word += (b2 << 8); + word += b3; + } + else + { + word += (0x01 << 24); + } + return word; + } + + function incCounter(counter) + { + if ((counter[0] = incWord(counter[0])) === 0) + { + // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 + counter[1] = incWord(counter[1]); + } + return counter; + } + + var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + + incCounter(counter); + + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTRGladman.Decryptor = Encryptor; + + return CTRGladman; + }()); + + + + + return CryptoJS.mode.CTRGladman; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ctr.js b/node_modules/crypto-js/mode-ctr.js new file mode 100644 index 0000000..c3d470a --- /dev/null +++ b/node_modules/crypto-js/mode-ctr.js @@ -0,0 +1,58 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Counter block mode. + */ + CryptoJS.mode.CTR = (function () { + var CTR = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = CTR.Encryptor = CTR.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var counter = this._counter; + + // Generate keystream + if (iv) { + counter = this._counter = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + var keystream = counter.slice(0); + cipher.encryptBlock(keystream, 0); + + // Increment counter + counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + CTR.Decryptor = Encryptor; + + return CTR; + }()); + + + return CryptoJS.mode.CTR; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ecb.js b/node_modules/crypto-js/mode-ecb.js new file mode 100644 index 0000000..ff06921 --- /dev/null +++ b/node_modules/crypto-js/mode-ecb.js @@ -0,0 +1,40 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Electronic Codebook block mode. + */ + CryptoJS.mode.ECB = (function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + + ECB.Encryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + + ECB.Decryptor = ECB.extend({ + processBlock: function (words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + + return ECB; + }()); + + + return CryptoJS.mode.ECB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/mode-ofb.js b/node_modules/crypto-js/mode-ofb.js new file mode 100644 index 0000000..c01314c --- /dev/null +++ b/node_modules/crypto-js/mode-ofb.js @@ -0,0 +1,54 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Output Feedback block mode. + */ + CryptoJS.mode.OFB = (function () { + var OFB = CryptoJS.lib.BlockCipherMode.extend(); + + var Encryptor = OFB.Encryptor = OFB.extend({ + processBlock: function (words, offset) { + // Shortcuts + var cipher = this._cipher + var blockSize = cipher.blockSize; + var iv = this._iv; + var keystream = this._keystream; + + // Generate keystream + if (iv) { + keystream = this._keystream = iv.slice(0); + + // Remove IV for subsequent blocks + this._iv = undefined; + } + cipher.encryptBlock(keystream, 0); + + // Encrypt + for (var i = 0; i < blockSize; i++) { + words[offset + i] ^= keystream[i]; + } + } + }); + + OFB.Decryptor = Encryptor; + + return OFB; + }()); + + + return CryptoJS.mode.OFB; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/package.json b/node_modules/crypto-js/package.json new file mode 100644 index 0000000..4b9a8e2 --- /dev/null +++ b/node_modules/crypto-js/package.json @@ -0,0 +1,42 @@ +{ + "name": "crypto-js", + "version": "4.2.0", + "description": "JavaScript library of crypto standards.", + "license": "MIT", + "author": { + "name": "Evan Vosberg", + "url": "http://github.com/evanvosberg" + }, + "homepage": "http://github.com/brix/crypto-js", + "repository": { + "type": "git", + "url": "http://github.com/brix/crypto-js.git" + }, + "keywords": [ + "security", + "crypto", + "Hash", + "MD5", + "SHA1", + "SHA-1", + "SHA256", + "SHA-256", + "RC4", + "Rabbit", + "AES", + "DES", + "PBKDF2", + "HMAC", + "OFB", + "CFB", + "CTR", + "CBC", + "Base64", + "Base64url" + ], + "main": "index.js", + "dependencies": {}, + "browser": { + "crypto": false + } +} diff --git a/node_modules/crypto-js/pad-ansix923.js b/node_modules/crypto-js/pad-ansix923.js new file mode 100644 index 0000000..f01f21e --- /dev/null +++ b/node_modules/crypto-js/pad-ansix923.js @@ -0,0 +1,49 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ANSI X.923 padding strategy. + */ + CryptoJS.pad.AnsiX923 = { + pad: function (data, blockSize) { + // Shortcuts + var dataSigBytes = data.sigBytes; + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; + + // Compute last byte position + var lastBytePos = dataSigBytes + nPaddingBytes - 1; + + // Pad + data.clamp(); + data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); + data.sigBytes += nPaddingBytes; + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Ansix923; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-iso10126.js b/node_modules/crypto-js/pad-iso10126.js new file mode 100644 index 0000000..6e2aefd --- /dev/null +++ b/node_modules/crypto-js/pad-iso10126.js @@ -0,0 +1,44 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO 10126 padding strategy. + */ + CryptoJS.pad.Iso10126 = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Count padding bytes + var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; + + // Pad + data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). + concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); + }, + + unpad: function (data) { + // Get number of padding bytes from last byte + var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; + + // Remove padding + data.sigBytes -= nPaddingBytes; + } + }; + + + return CryptoJS.pad.Iso10126; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-iso97971.js b/node_modules/crypto-js/pad-iso97971.js new file mode 100644 index 0000000..41049b4 --- /dev/null +++ b/node_modules/crypto-js/pad-iso97971.js @@ -0,0 +1,40 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * ISO/IEC 9797-1 Padding Method 2. + */ + CryptoJS.pad.Iso97971 = { + pad: function (data, blockSize) { + // Add 0x80 byte + data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); + + // Zero pad the rest + CryptoJS.pad.ZeroPadding.pad(data, blockSize); + }, + + unpad: function (data) { + // Remove zero padding + CryptoJS.pad.ZeroPadding.unpad(data); + + // Remove one more byte -- the 0x80 byte + data.sigBytes--; + } + }; + + + return CryptoJS.pad.Iso97971; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-nopadding.js b/node_modules/crypto-js/pad-nopadding.js new file mode 100644 index 0000000..c7787c9 --- /dev/null +++ b/node_modules/crypto-js/pad-nopadding.js @@ -0,0 +1,30 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * A noop padding strategy. + */ + CryptoJS.pad.NoPadding = { + pad: function () { + }, + + unpad: function () { + } + }; + + + return CryptoJS.pad.NoPadding; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-pkcs7.js b/node_modules/crypto-js/pad-pkcs7.js new file mode 100644 index 0000000..3555168 --- /dev/null +++ b/node_modules/crypto-js/pad-pkcs7.js @@ -0,0 +1,18 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + return CryptoJS.pad.Pkcs7; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pad-zeropadding.js b/node_modules/crypto-js/pad-zeropadding.js new file mode 100644 index 0000000..a1a459e --- /dev/null +++ b/node_modules/crypto-js/pad-zeropadding.js @@ -0,0 +1,47 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** + * Zero padding strategy. + */ + CryptoJS.pad.ZeroPadding = { + pad: function (data, blockSize) { + // Shortcut + var blockSizeBytes = blockSize * 4; + + // Pad + data.clamp(); + data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); + }, + + unpad: function (data) { + // Shortcut + var dataWords = data.words; + + // Unpad + var i = data.sigBytes - 1; + for (var i = data.sigBytes - 1; i >= 0; i--) { + if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { + data.sigBytes = i + 1; + break; + } + } + } + }; + + + return CryptoJS.pad.ZeroPadding; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/pbkdf2.js b/node_modules/crypto-js/pbkdf2.js new file mode 100644 index 0000000..6850934 --- /dev/null +++ b/node_modules/crypto-js/pbkdf2.js @@ -0,0 +1,145 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256", "./hmac"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + var HMAC = C_algo.HMAC; + + /** + * Password-Based Key Derivation Function 2 algorithm. + */ + var PBKDF2 = C_algo.PBKDF2 = Base.extend({ + /** + * Configuration options. + * + * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) + * @property {Hasher} hasher The hasher to use. Default: SHA256 + * @property {number} iterations The number of iterations to perform. Default: 250000 + */ + cfg: Base.extend({ + keySize: 128/32, + hasher: SHA256, + iterations: 250000 + }), + + /** + * Initializes a newly created key derivation function. + * + * @param {Object} cfg (Optional) The configuration options to use for the derivation. + * + * @example + * + * var kdf = CryptoJS.algo.PBKDF2.create(); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); + * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); + */ + init: function (cfg) { + this.cfg = this.cfg.extend(cfg); + }, + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * + * @return {WordArray} The derived key. + * + * @example + * + * var key = kdf.compute(password, salt); + */ + compute: function (password, salt) { + // Shortcut + var cfg = this.cfg; + + // Init HMAC + var hmac = HMAC.create(cfg.hasher, password); + + // Initial values + var derivedKey = WordArray.create(); + var blockIndex = WordArray.create([0x00000001]); + + // Shortcuts + var derivedKeyWords = derivedKey.words; + var blockIndexWords = blockIndex.words; + var keySize = cfg.keySize; + var iterations = cfg.iterations; + + // Generate key + while (derivedKeyWords.length < keySize) { + var block = hmac.update(salt).finalize(blockIndex); + hmac.reset(); + + // Shortcuts + var blockWords = block.words; + var blockWordsLength = blockWords.length; + + // Iterations + var intermediate = block; + for (var i = 1; i < iterations; i++) { + intermediate = hmac.finalize(intermediate); + hmac.reset(); + + // Shortcut + var intermediateWords = intermediate.words; + + // XOR intermediate with block + for (var j = 0; j < blockWordsLength; j++) { + blockWords[j] ^= intermediateWords[j]; + } + } + + derivedKey.concat(block); + blockIndexWords[0]++; + } + derivedKey.sigBytes = keySize * 4; + + return derivedKey; + } + }); + + /** + * Computes the Password-Based Key Derivation Function 2. + * + * @param {WordArray|string} password The password. + * @param {WordArray|string} salt A salt. + * @param {Object} cfg (Optional) The configuration options to use for this computation. + * + * @return {WordArray} The derived key. + * + * @static + * + * @example + * + * var key = CryptoJS.PBKDF2(password, salt); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); + * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); + */ + C.PBKDF2 = function (password, salt, cfg) { + return PBKDF2.create(cfg).compute(password, salt); + }; + }()); + + + return CryptoJS.PBKDF2; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rabbit-legacy.js b/node_modules/crypto-js/rabbit-legacy.js new file mode 100644 index 0000000..e118b6b --- /dev/null +++ b/node_modules/crypto-js/rabbit-legacy.js @@ -0,0 +1,190 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm. + * + * This is a legacy version that neglected to convert the key to little-endian. + * This error doesn't affect the cipher's security, + * but it does affect its compatibility with other implementations. + */ + var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); + */ + C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); + }()); + + + return CryptoJS.RabbitLegacy; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rabbit.js b/node_modules/crypto-js/rabbit.js new file mode 100644 index 0000000..1b06833 --- /dev/null +++ b/node_modules/crypto-js/rabbit.js @@ -0,0 +1,192 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + // Reusable objects + var S = []; + var C_ = []; + var G = []; + + /** + * Rabbit stream cipher algorithm + */ + var Rabbit = C_algo.Rabbit = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var K = this._key.words; + var iv = this.cfg.iv; + + // Swap endian + for (var i = 0; i < 4; i++) { + K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | + (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); + } + + // Generate initial state values + var X = this._X = [ + K[0], (K[3] << 16) | (K[2] >>> 16), + K[1], (K[0] << 16) | (K[3] >>> 16), + K[2], (K[1] << 16) | (K[0] >>> 16), + K[3], (K[2] << 16) | (K[1] >>> 16) + ]; + + // Generate initial counter values + var C = this._C = [ + (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), + (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), + (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), + (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) + ]; + + // Carry bit + this._b = 0; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + + // Modify the counters + for (var i = 0; i < 8; i++) { + C[i] ^= X[(i + 4) & 7]; + } + + // IV setup + if (iv) { + // Shortcuts + var IV = iv.words; + var IV_0 = IV[0]; + var IV_1 = IV[1]; + + // Generate four subvectors + var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); + var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); + var i1 = (i0 >>> 16) | (i2 & 0xffff0000); + var i3 = (i2 << 16) | (i0 & 0x0000ffff); + + // Modify counter values + C[0] ^= i0; + C[1] ^= i1; + C[2] ^= i2; + C[3] ^= i3; + C[4] ^= i0; + C[5] ^= i1; + C[6] ^= i2; + C[7] ^= i3; + + // Iterate the system four times + for (var i = 0; i < 4; i++) { + nextState.call(this); + } + } + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var X = this._X; + + // Iterate the system + nextState.call(this); + + // Generate four keystream words + S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); + S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); + S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); + S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); + + for (var i = 0; i < 4; i++) { + // Swap endian + S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | + (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); + + // Encrypt + M[offset + i] ^= S[i]; + } + }, + + blockSize: 128/32, + + ivSize: 64/32 + }); + + function nextState() { + // Shortcuts + var X = this._X; + var C = this._C; + + // Save old counter values + for (var i = 0; i < 8; i++) { + C_[i] = C[i]; + } + + // Calculate new counter values + C[0] = (C[0] + 0x4d34d34d + this._b) | 0; + C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; + C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; + C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; + C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; + C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; + C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; + C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; + this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; + + // Calculate the g-values + for (var i = 0; i < 8; i++) { + var gx = X[i] + C[i]; + + // Construct high and low argument for squaring + var ga = gx & 0xffff; + var gb = gx >>> 16; + + // Calculate high and low result of squaring + var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; + var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); + + // High XOR low + G[i] = gh ^ gl; + } + + // Calculate new state values + X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; + X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; + X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; + X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; + X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; + X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; + X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; + X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); + * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); + */ + C.Rabbit = StreamCipher._createHelper(Rabbit); + }()); + + + return CryptoJS.Rabbit; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/rc4.js b/node_modules/crypto-js/rc4.js new file mode 100644 index 0000000..0e4bdff --- /dev/null +++ b/node_modules/crypto-js/rc4.js @@ -0,0 +1,139 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var StreamCipher = C_lib.StreamCipher; + var C_algo = C.algo; + + /** + * RC4 stream cipher algorithm. + */ + var RC4 = C_algo.RC4 = StreamCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + var keySigBytes = key.sigBytes; + + // Init sbox + var S = this._S = []; + for (var i = 0; i < 256; i++) { + S[i] = i; + } + + // Key setup + for (var i = 0, j = 0; i < 256; i++) { + var keyByteIndex = i % keySigBytes; + var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; + + j = (j + S[i] + keyByte) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + } + + // Counters + this._i = this._j = 0; + }, + + _doProcessBlock: function (M, offset) { + M[offset] ^= generateKeystreamWord.call(this); + }, + + keySize: 256/32, + + ivSize: 0 + }); + + function generateKeystreamWord() { + // Shortcuts + var S = this._S; + var i = this._i; + var j = this._j; + + // Generate keystream word + var keystreamWord = 0; + for (var n = 0; n < 4; n++) { + i = (i + 1) % 256; + j = (j + S[i]) % 256; + + // Swap + var t = S[i]; + S[i] = S[j]; + S[j] = t; + + keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); + } + + // Update counters + this._i = i; + this._j = j; + + return keystreamWord; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); + */ + C.RC4 = StreamCipher._createHelper(RC4); + + /** + * Modified RC4 stream cipher algorithm. + */ + var RC4Drop = C_algo.RC4Drop = RC4.extend({ + /** + * Configuration options. + * + * @property {number} drop The number of keystream words to drop. Default 192 + */ + cfg: RC4.cfg.extend({ + drop: 192 + }), + + _doReset: function () { + RC4._doReset.call(this); + + // Drop + for (var i = this.cfg.drop; i > 0; i--) { + generateKeystreamWord.call(this); + } + } + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); + * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); + */ + C.RC4Drop = StreamCipher._createHelper(RC4Drop); + }()); + + + return CryptoJS.RC4; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/ripemd160.js b/node_modules/crypto-js/ripemd160.js new file mode 100644 index 0000000..24feb47 --- /dev/null +++ b/node_modules/crypto-js/ripemd160.js @@ -0,0 +1,267 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + /** @preserve + (c) 2012 by C茅dric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Constants table + var _zl = WordArray.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, + 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, + 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, + 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); + var _zr = WordArray.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, + 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, + 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, + 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, + 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); + var _sl = WordArray.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, + 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, + 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, + 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, + 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); + var _sr = WordArray.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, + 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, + 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, + 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, + 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); + + var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); + var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); + + /** + * RIPEMD160 hash algorithm. + */ + var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ + _doReset: function () { + this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); + }, + + _doProcessBlock: function (M, offset) { + + // Swap endian + for (var i = 0; i < 16; i++) { + // Shortcuts + var offset_i = offset + i; + var M_offset_i = M[offset_i]; + + // Swap + M[offset_i] = ( + (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | + (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) + ); + } + // Shortcut + var H = this._hash.words; + var hl = _hl.words; + var hr = _hr.words; + var zl = _zl.words; + var zr = _zr.words; + var sl = _sl.words; + var sr = _sr.words; + + // Working variables + var al, bl, cl, dl, el; + var ar, br, cr, dr, er; + + ar = al = H[0]; + br = bl = H[1]; + cr = cl = H[2]; + dr = dl = H[3]; + er = el = H[4]; + // Computation + var t; + for (var i = 0; i < 80; i += 1) { + t = (al + M[offset+zl[i]])|0; + if (i<16){ + t += f1(bl,cl,dl) + hl[0]; + } else if (i<32) { + t += f2(bl,cl,dl) + hl[1]; + } else if (i<48) { + t += f3(bl,cl,dl) + hl[2]; + } else if (i<64) { + t += f4(bl,cl,dl) + hl[3]; + } else {// if (i<80) { + t += f5(bl,cl,dl) + hl[4]; + } + t = t|0; + t = rotl(t,sl[i]); + t = (t+el)|0; + al = el; + el = dl; + dl = rotl(cl, 10); + cl = bl; + bl = t; + + t = (ar + M[offset+zr[i]])|0; + if (i<16){ + t += f5(br,cr,dr) + hr[0]; + } else if (i<32) { + t += f4(br,cr,dr) + hr[1]; + } else if (i<48) { + t += f3(br,cr,dr) + hr[2]; + } else if (i<64) { + t += f2(br,cr,dr) + hr[3]; + } else {// if (i<80) { + t += f1(br,cr,dr) + hr[4]; + } + t = t|0; + t = rotl(t,sr[i]) ; + t = (t+er)|0; + ar = er; + er = dr; + dr = rotl(cr, 10); + cr = br; + br = t; + } + // Intermediate hash value + t = (H[1] + cl + dr)|0; + H[1] = (H[2] + dl + er)|0; + H[2] = (H[3] + el + ar)|0; + H[3] = (H[4] + al + br)|0; + H[4] = (H[0] + bl + cr)|0; + H[0] = t; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( + (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | + (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) + ); + data.sigBytes = (dataWords.length + 1) * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var hash = this._hash; + var H = hash.words; + + // Swap endian + for (var i = 0; i < 5; i++) { + // Shortcut + var H_i = H[i]; + + // Swap + H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | + (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); + } + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + + function f1(x, y, z) { + return ((x) ^ (y) ^ (z)); + + } + + function f2(x, y, z) { + return (((x)&(y)) | ((~x)&(z))); + } + + function f3(x, y, z) { + return (((x) | (~(y))) ^ (z)); + } + + function f4(x, y, z) { + return (((x) & (z)) | ((y)&(~(z)))); + } + + function f5(x, y, z) { + return ((x) ^ ((y) |(~(z)))); + + } + + function rotl(x,n) { + return (x<>>(32-n)); + } + + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.RIPEMD160('message'); + * var hash = CryptoJS.RIPEMD160(wordArray); + */ + C.RIPEMD160 = Hasher._createHelper(RIPEMD160); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacRIPEMD160(message, key); + */ + C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); + }(Math)); + + + return CryptoJS.RIPEMD160; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha1.js b/node_modules/crypto-js/sha1.js new file mode 100644 index 0000000..6691149 --- /dev/null +++ b/node_modules/crypto-js/sha1.js @@ -0,0 +1,150 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Reusable object + var W = []; + + /** + * SHA-1 hash algorithm. + */ + var SHA1 = C_algo.SHA1 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0x67452301, 0xefcdab89, + 0x98badcfe, 0x10325476, + 0xc3d2e1f0 + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + + // Computation + for (var i = 0; i < 80; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; + W[i] = (n << 1) | (n >>> 31); + } + + var t = ((a << 5) | (a >>> 27)) + e + W[i]; + if (i < 20) { + t += ((b & c) | (~b & d)) + 0x5a827999; + } else if (i < 40) { + t += (b ^ c ^ d) + 0x6ed9eba1; + } else if (i < 60) { + t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; + } else /* if (i < 80) */ { + t += (b ^ c ^ d) - 0x359d3e2a; + } + + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = t; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA1('message'); + * var hash = CryptoJS.SHA1(wordArray); + */ + C.SHA1 = Hasher._createHelper(SHA1); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA1(message, key); + */ + C.HmacSHA1 = Hasher._createHmacHelper(SHA1); + }()); + + + return CryptoJS.SHA1; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha224.js b/node_modules/crypto-js/sha224.js new file mode 100644 index 0000000..d8ce988 --- /dev/null +++ b/node_modules/crypto-js/sha224.js @@ -0,0 +1,80 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./sha256")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./sha256"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var C_algo = C.algo; + var SHA256 = C_algo.SHA256; + + /** + * SHA-224 hash algorithm. + */ + var SHA224 = C_algo.SHA224 = SHA256.extend({ + _doReset: function () { + this._hash = new WordArray.init([ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 + ]); + }, + + _doFinalize: function () { + var hash = SHA256._doFinalize.call(this); + + hash.sigBytes -= 4; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA224('message'); + * var hash = CryptoJS.SHA224(wordArray); + */ + C.SHA224 = SHA256._createHelper(SHA224); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA224(message, key); + */ + C.HmacSHA224 = SHA256._createHmacHelper(SHA224); + }()); + + + return CryptoJS.SHA224; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha256.js b/node_modules/crypto-js/sha256.js new file mode 100644 index 0000000..de2d7fc --- /dev/null +++ b/node_modules/crypto-js/sha256.js @@ -0,0 +1,199 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_algo = C.algo; + + // Initialization and round constants tables + var H = []; + var K = []; + + // Compute constants + (function () { + function isPrime(n) { + var sqrtN = Math.sqrt(n); + for (var factor = 2; factor <= sqrtN; factor++) { + if (!(n % factor)) { + return false; + } + } + + return true; + } + + function getFractionalBits(n) { + return ((n - (n | 0)) * 0x100000000) | 0; + } + + var n = 2; + var nPrime = 0; + while (nPrime < 64) { + if (isPrime(n)) { + if (nPrime < 8) { + H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); + } + K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); + + nPrime++; + } + + n++; + } + }()); + + // Reusable object + var W = []; + + /** + * SHA-256 hash algorithm. + */ + var SHA256 = C_algo.SHA256 = Hasher.extend({ + _doReset: function () { + this._hash = new WordArray.init(H.slice(0)); + }, + + _doProcessBlock: function (M, offset) { + // Shortcut + var H = this._hash.words; + + // Working variables + var a = H[0]; + var b = H[1]; + var c = H[2]; + var d = H[3]; + var e = H[4]; + var f = H[5]; + var g = H[6]; + var h = H[7]; + + // Computation + for (var i = 0; i < 64; i++) { + if (i < 16) { + W[i] = M[offset + i] | 0; + } else { + var gamma0x = W[i - 15]; + var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ + ((gamma0x << 14) | (gamma0x >>> 18)) ^ + (gamma0x >>> 3); + + var gamma1x = W[i - 2]; + var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ + ((gamma1x << 13) | (gamma1x >>> 19)) ^ + (gamma1x >>> 10); + + W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; + } + + var ch = (e & f) ^ (~e & g); + var maj = (a & b) ^ (a & c) ^ (b & c); + + var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); + var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); + + var t1 = h + sigma1 + ch + K[i] + W[i]; + var t2 = sigma0 + maj; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + // Intermediate hash value + H[0] = (H[0] + a) | 0; + H[1] = (H[1] + b) | 0; + H[2] = (H[2] + c) | 0; + H[3] = (H[3] + d) | 0; + H[4] = (H[4] + e) | 0; + H[5] = (H[5] + f) | 0; + H[6] = (H[6] + g) | 0; + H[7] = (H[7] + h) | 0; + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Return final computed hash + return this._hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA256('message'); + * var hash = CryptoJS.SHA256(wordArray); + */ + C.SHA256 = Hasher._createHelper(SHA256); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA256(message, key); + */ + C.HmacSHA256 = Hasher._createHmacHelper(SHA256); + }(Math)); + + + return CryptoJS.SHA256; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha3.js b/node_modules/crypto-js/sha3.js new file mode 100644 index 0000000..34ad86c --- /dev/null +++ b/node_modules/crypto-js/sha3.js @@ -0,0 +1,326 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (Math) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var C_algo = C.algo; + + // Constants tables + var RHO_OFFSETS = []; + var PI_INDEXES = []; + var ROUND_CONSTANTS = []; + + // Compute Constants + (function () { + // Compute rho offset constants + var x = 1, y = 0; + for (var t = 0; t < 24; t++) { + RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; + + var newX = y % 5; + var newY = (2 * x + 3 * y) % 5; + x = newX; + y = newY; + } + + // Compute pi index constants + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; + } + } + + // Compute round constants + var LFSR = 0x01; + for (var i = 0; i < 24; i++) { + var roundConstantMsw = 0; + var roundConstantLsw = 0; + + for (var j = 0; j < 7; j++) { + if (LFSR & 0x01) { + var bitPosition = (1 << j) - 1; + if (bitPosition < 32) { + roundConstantLsw ^= 1 << bitPosition; + } else /* if (bitPosition >= 32) */ { + roundConstantMsw ^= 1 << (bitPosition - 32); + } + } + + // Compute next LFSR + if (LFSR & 0x80) { + // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 + LFSR = (LFSR << 1) ^ 0x71; + } else { + LFSR <<= 1; + } + } + + ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); + } + }()); + + // Reusable objects for temporary values + var T = []; + (function () { + for (var i = 0; i < 25; i++) { + T[i] = X64Word.create(); + } + }()); + + /** + * SHA-3 hash algorithm. + */ + var SHA3 = C_algo.SHA3 = Hasher.extend({ + /** + * Configuration options. + * + * @property {number} outputLength + * The desired number of bits in the output hash. + * Only values permitted are: 224, 256, 384, 512. + * Default: 512 + */ + cfg: Hasher.cfg.extend({ + outputLength: 512 + }), + + _doReset: function () { + var state = this._state = [] + for (var i = 0; i < 25; i++) { + state[i] = new X64Word.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var state = this._state; + var nBlockSizeLanes = this.blockSize / 2; + + // Absorb + for (var i = 0; i < nBlockSizeLanes; i++) { + // Shortcuts + var M2i = M[offset + 2 * i]; + var M2i1 = M[offset + 2 * i + 1]; + + // Swap endian + M2i = ( + (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | + (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) + ); + M2i1 = ( + (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | + (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) + ); + + // Absorb message into state + var lane = state[i]; + lane.high ^= M2i1; + lane.low ^= M2i; + } + + // Rounds + for (var round = 0; round < 24; round++) { + // Theta + for (var x = 0; x < 5; x++) { + // Mix column lanes + var tMsw = 0, tLsw = 0; + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + tMsw ^= lane.high; + tLsw ^= lane.low; + } + + // Temporary values + var Tx = T[x]; + Tx.high = tMsw; + Tx.low = tLsw; + } + for (var x = 0; x < 5; x++) { + // Shortcuts + var Tx4 = T[(x + 4) % 5]; + var Tx1 = T[(x + 1) % 5]; + var Tx1Msw = Tx1.high; + var Tx1Lsw = Tx1.low; + + // Mix surrounding columns + var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); + var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); + for (var y = 0; y < 5; y++) { + var lane = state[x + 5 * y]; + lane.high ^= tMsw; + lane.low ^= tLsw; + } + } + + // Rho Pi + for (var laneIndex = 1; laneIndex < 25; laneIndex++) { + var tMsw; + var tLsw; + + // Shortcuts + var lane = state[laneIndex]; + var laneMsw = lane.high; + var laneLsw = lane.low; + var rhoOffset = RHO_OFFSETS[laneIndex]; + + // Rotate lanes + if (rhoOffset < 32) { + tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); + tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); + } else /* if (rhoOffset >= 32) */ { + tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); + tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); + } + + // Transpose lanes + var TPiLane = T[PI_INDEXES[laneIndex]]; + TPiLane.high = tMsw; + TPiLane.low = tLsw; + } + + // Rho pi at x = y = 0 + var T0 = T[0]; + var state0 = state[0]; + T0.high = state0.high; + T0.low = state0.low; + + // Chi + for (var x = 0; x < 5; x++) { + for (var y = 0; y < 5; y++) { + // Shortcuts + var laneIndex = x + 5 * y; + var lane = state[laneIndex]; + var TLane = T[laneIndex]; + var Tx1Lane = T[((x + 1) % 5) + 5 * y]; + var Tx2Lane = T[((x + 2) % 5) + 5 * y]; + + // Mix rows + lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); + lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); + } + } + + // Iota + var lane = state[0]; + var roundConstant = ROUND_CONSTANTS[round]; + lane.high ^= roundConstant.high; + lane.low ^= roundConstant.low; + } + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + var blockSizeBits = this.blockSize * 32; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); + dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Shortcuts + var state = this._state; + var outputLengthBytes = this.cfg.outputLength / 8; + var outputLengthLanes = outputLengthBytes / 8; + + // Squeeze + var hashWords = []; + for (var i = 0; i < outputLengthLanes; i++) { + // Shortcuts + var lane = state[i]; + var laneMsw = lane.high; + var laneLsw = lane.low; + + // Swap endian + laneMsw = ( + (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | + (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) + ); + laneLsw = ( + (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | + (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) + ); + + // Squeeze state to retrieve hash + hashWords.push(laneLsw); + hashWords.push(laneMsw); + } + + // Return final computed hash + return new WordArray.init(hashWords, outputLengthBytes); + }, + + clone: function () { + var clone = Hasher.clone.call(this); + + var state = clone._state = this._state.slice(0); + for (var i = 0; i < 25; i++) { + state[i] = state[i].clone(); + } + + return clone; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA3('message'); + * var hash = CryptoJS.SHA3(wordArray); + */ + C.SHA3 = Hasher._createHelper(SHA3); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA3(message, key); + */ + C.HmacSHA3 = Hasher._createHmacHelper(SHA3); + }(Math)); + + + return CryptoJS.SHA3; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha384.js b/node_modules/crypto-js/sha384.js new file mode 100644 index 0000000..a0b95bf --- /dev/null +++ b/node_modules/crypto-js/sha384.js @@ -0,0 +1,83 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core", "./sha512"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + var SHA512 = C_algo.SHA512; + + /** + * SHA-384 hash algorithm. + */ + var SHA384 = C_algo.SHA384 = SHA512.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), + new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), + new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), + new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) + ]); + }, + + _doFinalize: function () { + var hash = SHA512._doFinalize.call(this); + + hash.sigBytes -= 16; + + return hash; + } + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA384('message'); + * var hash = CryptoJS.SHA384(wordArray); + */ + C.SHA384 = SHA512._createHelper(SHA384); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA384(message, key); + */ + C.HmacSHA384 = SHA512._createHmacHelper(SHA384); + }()); + + + return CryptoJS.SHA384; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/sha512.js b/node_modules/crypto-js/sha512.js new file mode 100644 index 0000000..d274ab0 --- /dev/null +++ b/node_modules/crypto-js/sha512.js @@ -0,0 +1,326 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./x64-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./x64-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Hasher = C_lib.Hasher; + var C_x64 = C.x64; + var X64Word = C_x64.Word; + var X64WordArray = C_x64.WordArray; + var C_algo = C.algo; + + function X64Word_create() { + return X64Word.create.apply(X64Word, arguments); + } + + // Constants + var K = [ + X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), + X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), + X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), + X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), + X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), + X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), + X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), + X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), + X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), + X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), + X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), + X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), + X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), + X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), + X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), + X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), + X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), + X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), + X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), + X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), + X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), + X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), + X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), + X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), + X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), + X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), + X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), + X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), + X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), + X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), + X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), + X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), + X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), + X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), + X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), + X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), + X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), + X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), + X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), + X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) + ]; + + // Reusable objects + var W = []; + (function () { + for (var i = 0; i < 80; i++) { + W[i] = X64Word_create(); + } + }()); + + /** + * SHA-512 hash algorithm. + */ + var SHA512 = C_algo.SHA512 = Hasher.extend({ + _doReset: function () { + this._hash = new X64WordArray.init([ + new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), + new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), + new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), + new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) + ]); + }, + + _doProcessBlock: function (M, offset) { + // Shortcuts + var H = this._hash.words; + + var H0 = H[0]; + var H1 = H[1]; + var H2 = H[2]; + var H3 = H[3]; + var H4 = H[4]; + var H5 = H[5]; + var H6 = H[6]; + var H7 = H[7]; + + var H0h = H0.high; + var H0l = H0.low; + var H1h = H1.high; + var H1l = H1.low; + var H2h = H2.high; + var H2l = H2.low; + var H3h = H3.high; + var H3l = H3.low; + var H4h = H4.high; + var H4l = H4.low; + var H5h = H5.high; + var H5l = H5.low; + var H6h = H6.high; + var H6l = H6.low; + var H7h = H7.high; + var H7l = H7.low; + + // Working variables + var ah = H0h; + var al = H0l; + var bh = H1h; + var bl = H1l; + var ch = H2h; + var cl = H2l; + var dh = H3h; + var dl = H3l; + var eh = H4h; + var el = H4l; + var fh = H5h; + var fl = H5l; + var gh = H6h; + var gl = H6l; + var hh = H7h; + var hl = H7l; + + // Rounds + for (var i = 0; i < 80; i++) { + var Wil; + var Wih; + + // Shortcut + var Wi = W[i]; + + // Extend message + if (i < 16) { + Wih = Wi.high = M[offset + i * 2] | 0; + Wil = Wi.low = M[offset + i * 2 + 1] | 0; + } else { + // Gamma0 + var gamma0x = W[i - 15]; + var gamma0xh = gamma0x.high; + var gamma0xl = gamma0x.low; + var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); + var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); + + // Gamma1 + var gamma1x = W[i - 2]; + var gamma1xh = gamma1x.high; + var gamma1xl = gamma1x.low; + var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); + var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); + + // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] + var Wi7 = W[i - 7]; + var Wi7h = Wi7.high; + var Wi7l = Wi7.low; + + var Wi16 = W[i - 16]; + var Wi16h = Wi16.high; + var Wi16l = Wi16.low; + + Wil = gamma0l + Wi7l; + Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); + Wil = Wil + gamma1l; + Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); + Wil = Wil + Wi16l; + Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); + + Wi.high = Wih; + Wi.low = Wil; + } + + var chh = (eh & fh) ^ (~eh & gh); + var chl = (el & fl) ^ (~el & gl); + var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); + var majl = (al & bl) ^ (al & cl) ^ (bl & cl); + + var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); + var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); + var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); + var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); + + // t1 = h + sigma1 + ch + K[i] + W[i] + var Ki = K[i]; + var Kih = Ki.high; + var Kil = Ki.low; + + var t1l = hl + sigma1l; + var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); + var t1l = t1l + chl; + var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); + var t1l = t1l + Kil; + var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); + var t1l = t1l + Wil; + var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); + + // t2 = sigma0 + maj + var t2l = sigma0l + majl; + var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); + + // Update working variables + hh = gh; + hl = gl; + gh = fh; + gl = fl; + fh = eh; + fl = el; + el = (dl + t1l) | 0; + eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; + dh = ch; + dl = cl; + ch = bh; + cl = bl; + bh = ah; + bl = al; + al = (t1l + t2l) | 0; + ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; + } + + // Intermediate hash value + H0l = H0.low = (H0l + al); + H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); + H1l = H1.low = (H1l + bl); + H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); + H2l = H2.low = (H2l + cl); + H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); + H3l = H3.low = (H3l + dl); + H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); + H4l = H4.low = (H4l + el); + H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); + H5l = H5.low = (H5l + fl); + H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); + H6l = H6.low = (H6l + gl); + H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); + H7l = H7.low = (H7l + hl); + H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); + }, + + _doFinalize: function () { + // Shortcuts + var data = this._data; + var dataWords = data.words; + + var nBitsTotal = this._nDataBytes * 8; + var nBitsLeft = data.sigBytes * 8; + + // Add padding + dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); + dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; + data.sigBytes = dataWords.length * 4; + + // Hash final blocks + this._process(); + + // Convert hash to 32-bit word array before returning + var hash = this._hash.toX32(); + + // Return final computed hash + return hash; + }, + + clone: function () { + var clone = Hasher.clone.call(this); + clone._hash = this._hash.clone(); + + return clone; + }, + + blockSize: 1024/32 + }); + + /** + * Shortcut function to the hasher's object interface. + * + * @param {WordArray|string} message The message to hash. + * + * @return {WordArray} The hash. + * + * @static + * + * @example + * + * var hash = CryptoJS.SHA512('message'); + * var hash = CryptoJS.SHA512(wordArray); + */ + C.SHA512 = Hasher._createHelper(SHA512); + + /** + * Shortcut function to the HMAC's object interface. + * + * @param {WordArray|string} message The message to hash. + * @param {WordArray|string} key The secret key. + * + * @return {WordArray} The HMAC. + * + * @static + * + * @example + * + * var hmac = CryptoJS.HmacSHA512(message, key); + */ + C.HmacSHA512 = Hasher._createHmacHelper(SHA512); + }()); + + + return CryptoJS.SHA512; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/tripledes.js b/node_modules/crypto-js/tripledes.js new file mode 100644 index 0000000..1a92477 --- /dev/null +++ b/node_modules/crypto-js/tripledes.js @@ -0,0 +1,779 @@ +;(function (root, factory, undef) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core"), require("./enc-base64"), require("./md5"), require("./evpkdf"), require("./cipher-core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core", "./enc-base64", "./md5", "./evpkdf", "./cipher-core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function () { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var WordArray = C_lib.WordArray; + var BlockCipher = C_lib.BlockCipher; + var C_algo = C.algo; + + // Permuted Choice 1 constants + var PC1 = [ + 57, 49, 41, 33, 25, 17, 9, 1, + 58, 50, 42, 34, 26, 18, 10, 2, + 59, 51, 43, 35, 27, 19, 11, 3, + 60, 52, 44, 36, 63, 55, 47, 39, + 31, 23, 15, 7, 62, 54, 46, 38, + 30, 22, 14, 6, 61, 53, 45, 37, + 29, 21, 13, 5, 28, 20, 12, 4 + ]; + + // Permuted Choice 2 constants + var PC2 = [ + 14, 17, 11, 24, 1, 5, + 3, 28, 15, 6, 21, 10, + 23, 19, 12, 4, 26, 8, + 16, 7, 27, 20, 13, 2, + 41, 52, 31, 37, 47, 55, + 30, 40, 51, 45, 33, 48, + 44, 49, 39, 56, 34, 53, + 46, 42, 50, 36, 29, 32 + ]; + + // Cumulative bit shift constants + var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; + + // SBOXes and round permutation constants + var SBOX_P = [ + { + 0x0: 0x808200, + 0x10000000: 0x8000, + 0x20000000: 0x808002, + 0x30000000: 0x2, + 0x40000000: 0x200, + 0x50000000: 0x808202, + 0x60000000: 0x800202, + 0x70000000: 0x800000, + 0x80000000: 0x202, + 0x90000000: 0x800200, + 0xa0000000: 0x8200, + 0xb0000000: 0x808000, + 0xc0000000: 0x8002, + 0xd0000000: 0x800002, + 0xe0000000: 0x0, + 0xf0000000: 0x8202, + 0x8000000: 0x0, + 0x18000000: 0x808202, + 0x28000000: 0x8202, + 0x38000000: 0x8000, + 0x48000000: 0x808200, + 0x58000000: 0x200, + 0x68000000: 0x808002, + 0x78000000: 0x2, + 0x88000000: 0x800200, + 0x98000000: 0x8200, + 0xa8000000: 0x808000, + 0xb8000000: 0x800202, + 0xc8000000: 0x800002, + 0xd8000000: 0x8002, + 0xe8000000: 0x202, + 0xf8000000: 0x800000, + 0x1: 0x8000, + 0x10000001: 0x2, + 0x20000001: 0x808200, + 0x30000001: 0x800000, + 0x40000001: 0x808002, + 0x50000001: 0x8200, + 0x60000001: 0x200, + 0x70000001: 0x800202, + 0x80000001: 0x808202, + 0x90000001: 0x808000, + 0xa0000001: 0x800002, + 0xb0000001: 0x8202, + 0xc0000001: 0x202, + 0xd0000001: 0x800200, + 0xe0000001: 0x8002, + 0xf0000001: 0x0, + 0x8000001: 0x808202, + 0x18000001: 0x808000, + 0x28000001: 0x800000, + 0x38000001: 0x200, + 0x48000001: 0x8000, + 0x58000001: 0x800002, + 0x68000001: 0x2, + 0x78000001: 0x8202, + 0x88000001: 0x8002, + 0x98000001: 0x800202, + 0xa8000001: 0x202, + 0xb8000001: 0x808200, + 0xc8000001: 0x800200, + 0xd8000001: 0x0, + 0xe8000001: 0x8200, + 0xf8000001: 0x808002 + }, + { + 0x0: 0x40084010, + 0x1000000: 0x4000, + 0x2000000: 0x80000, + 0x3000000: 0x40080010, + 0x4000000: 0x40000010, + 0x5000000: 0x40084000, + 0x6000000: 0x40004000, + 0x7000000: 0x10, + 0x8000000: 0x84000, + 0x9000000: 0x40004010, + 0xa000000: 0x40000000, + 0xb000000: 0x84010, + 0xc000000: 0x80010, + 0xd000000: 0x0, + 0xe000000: 0x4010, + 0xf000000: 0x40080000, + 0x800000: 0x40004000, + 0x1800000: 0x84010, + 0x2800000: 0x10, + 0x3800000: 0x40004010, + 0x4800000: 0x40084010, + 0x5800000: 0x40000000, + 0x6800000: 0x80000, + 0x7800000: 0x40080010, + 0x8800000: 0x80010, + 0x9800000: 0x0, + 0xa800000: 0x4000, + 0xb800000: 0x40080000, + 0xc800000: 0x40000010, + 0xd800000: 0x84000, + 0xe800000: 0x40084000, + 0xf800000: 0x4010, + 0x10000000: 0x0, + 0x11000000: 0x40080010, + 0x12000000: 0x40004010, + 0x13000000: 0x40084000, + 0x14000000: 0x40080000, + 0x15000000: 0x10, + 0x16000000: 0x84010, + 0x17000000: 0x4000, + 0x18000000: 0x4010, + 0x19000000: 0x80000, + 0x1a000000: 0x80010, + 0x1b000000: 0x40000010, + 0x1c000000: 0x84000, + 0x1d000000: 0x40004000, + 0x1e000000: 0x40000000, + 0x1f000000: 0x40084010, + 0x10800000: 0x84010, + 0x11800000: 0x80000, + 0x12800000: 0x40080000, + 0x13800000: 0x4000, + 0x14800000: 0x40004000, + 0x15800000: 0x40084010, + 0x16800000: 0x10, + 0x17800000: 0x40000000, + 0x18800000: 0x40084000, + 0x19800000: 0x40000010, + 0x1a800000: 0x40004010, + 0x1b800000: 0x80010, + 0x1c800000: 0x0, + 0x1d800000: 0x4010, + 0x1e800000: 0x40080010, + 0x1f800000: 0x84000 + }, + { + 0x0: 0x104, + 0x100000: 0x0, + 0x200000: 0x4000100, + 0x300000: 0x10104, + 0x400000: 0x10004, + 0x500000: 0x4000004, + 0x600000: 0x4010104, + 0x700000: 0x4010000, + 0x800000: 0x4000000, + 0x900000: 0x4010100, + 0xa00000: 0x10100, + 0xb00000: 0x4010004, + 0xc00000: 0x4000104, + 0xd00000: 0x10000, + 0xe00000: 0x4, + 0xf00000: 0x100, + 0x80000: 0x4010100, + 0x180000: 0x4010004, + 0x280000: 0x0, + 0x380000: 0x4000100, + 0x480000: 0x4000004, + 0x580000: 0x10000, + 0x680000: 0x10004, + 0x780000: 0x104, + 0x880000: 0x4, + 0x980000: 0x100, + 0xa80000: 0x4010000, + 0xb80000: 0x10104, + 0xc80000: 0x10100, + 0xd80000: 0x4000104, + 0xe80000: 0x4010104, + 0xf80000: 0x4000000, + 0x1000000: 0x4010100, + 0x1100000: 0x10004, + 0x1200000: 0x10000, + 0x1300000: 0x4000100, + 0x1400000: 0x100, + 0x1500000: 0x4010104, + 0x1600000: 0x4000004, + 0x1700000: 0x0, + 0x1800000: 0x4000104, + 0x1900000: 0x4000000, + 0x1a00000: 0x4, + 0x1b00000: 0x10100, + 0x1c00000: 0x4010000, + 0x1d00000: 0x104, + 0x1e00000: 0x10104, + 0x1f00000: 0x4010004, + 0x1080000: 0x4000000, + 0x1180000: 0x104, + 0x1280000: 0x4010100, + 0x1380000: 0x0, + 0x1480000: 0x10004, + 0x1580000: 0x4000100, + 0x1680000: 0x100, + 0x1780000: 0x4010004, + 0x1880000: 0x10000, + 0x1980000: 0x4010104, + 0x1a80000: 0x10104, + 0x1b80000: 0x4000004, + 0x1c80000: 0x4000104, + 0x1d80000: 0x4010000, + 0x1e80000: 0x4, + 0x1f80000: 0x10100 + }, + { + 0x0: 0x80401000, + 0x10000: 0x80001040, + 0x20000: 0x401040, + 0x30000: 0x80400000, + 0x40000: 0x0, + 0x50000: 0x401000, + 0x60000: 0x80000040, + 0x70000: 0x400040, + 0x80000: 0x80000000, + 0x90000: 0x400000, + 0xa0000: 0x40, + 0xb0000: 0x80001000, + 0xc0000: 0x80400040, + 0xd0000: 0x1040, + 0xe0000: 0x1000, + 0xf0000: 0x80401040, + 0x8000: 0x80001040, + 0x18000: 0x40, + 0x28000: 0x80400040, + 0x38000: 0x80001000, + 0x48000: 0x401000, + 0x58000: 0x80401040, + 0x68000: 0x0, + 0x78000: 0x80400000, + 0x88000: 0x1000, + 0x98000: 0x80401000, + 0xa8000: 0x400000, + 0xb8000: 0x1040, + 0xc8000: 0x80000000, + 0xd8000: 0x400040, + 0xe8000: 0x401040, + 0xf8000: 0x80000040, + 0x100000: 0x400040, + 0x110000: 0x401000, + 0x120000: 0x80000040, + 0x130000: 0x0, + 0x140000: 0x1040, + 0x150000: 0x80400040, + 0x160000: 0x80401000, + 0x170000: 0x80001040, + 0x180000: 0x80401040, + 0x190000: 0x80000000, + 0x1a0000: 0x80400000, + 0x1b0000: 0x401040, + 0x1c0000: 0x80001000, + 0x1d0000: 0x400000, + 0x1e0000: 0x40, + 0x1f0000: 0x1000, + 0x108000: 0x80400000, + 0x118000: 0x80401040, + 0x128000: 0x0, + 0x138000: 0x401000, + 0x148000: 0x400040, + 0x158000: 0x80000000, + 0x168000: 0x80001040, + 0x178000: 0x40, + 0x188000: 0x80000040, + 0x198000: 0x1000, + 0x1a8000: 0x80001000, + 0x1b8000: 0x80400040, + 0x1c8000: 0x1040, + 0x1d8000: 0x80401000, + 0x1e8000: 0x400000, + 0x1f8000: 0x401040 + }, + { + 0x0: 0x80, + 0x1000: 0x1040000, + 0x2000: 0x40000, + 0x3000: 0x20000000, + 0x4000: 0x20040080, + 0x5000: 0x1000080, + 0x6000: 0x21000080, + 0x7000: 0x40080, + 0x8000: 0x1000000, + 0x9000: 0x20040000, + 0xa000: 0x20000080, + 0xb000: 0x21040080, + 0xc000: 0x21040000, + 0xd000: 0x0, + 0xe000: 0x1040080, + 0xf000: 0x21000000, + 0x800: 0x1040080, + 0x1800: 0x21000080, + 0x2800: 0x80, + 0x3800: 0x1040000, + 0x4800: 0x40000, + 0x5800: 0x20040080, + 0x6800: 0x21040000, + 0x7800: 0x20000000, + 0x8800: 0x20040000, + 0x9800: 0x0, + 0xa800: 0x21040080, + 0xb800: 0x1000080, + 0xc800: 0x20000080, + 0xd800: 0x21000000, + 0xe800: 0x1000000, + 0xf800: 0x40080, + 0x10000: 0x40000, + 0x11000: 0x80, + 0x12000: 0x20000000, + 0x13000: 0x21000080, + 0x14000: 0x1000080, + 0x15000: 0x21040000, + 0x16000: 0x20040080, + 0x17000: 0x1000000, + 0x18000: 0x21040080, + 0x19000: 0x21000000, + 0x1a000: 0x1040000, + 0x1b000: 0x20040000, + 0x1c000: 0x40080, + 0x1d000: 0x20000080, + 0x1e000: 0x0, + 0x1f000: 0x1040080, + 0x10800: 0x21000080, + 0x11800: 0x1000000, + 0x12800: 0x1040000, + 0x13800: 0x20040080, + 0x14800: 0x20000000, + 0x15800: 0x1040080, + 0x16800: 0x80, + 0x17800: 0x21040000, + 0x18800: 0x40080, + 0x19800: 0x21040080, + 0x1a800: 0x0, + 0x1b800: 0x21000000, + 0x1c800: 0x1000080, + 0x1d800: 0x40000, + 0x1e800: 0x20040000, + 0x1f800: 0x20000080 + }, + { + 0x0: 0x10000008, + 0x100: 0x2000, + 0x200: 0x10200000, + 0x300: 0x10202008, + 0x400: 0x10002000, + 0x500: 0x200000, + 0x600: 0x200008, + 0x700: 0x10000000, + 0x800: 0x0, + 0x900: 0x10002008, + 0xa00: 0x202000, + 0xb00: 0x8, + 0xc00: 0x10200008, + 0xd00: 0x202008, + 0xe00: 0x2008, + 0xf00: 0x10202000, + 0x80: 0x10200000, + 0x180: 0x10202008, + 0x280: 0x8, + 0x380: 0x200000, + 0x480: 0x202008, + 0x580: 0x10000008, + 0x680: 0x10002000, + 0x780: 0x2008, + 0x880: 0x200008, + 0x980: 0x2000, + 0xa80: 0x10002008, + 0xb80: 0x10200008, + 0xc80: 0x0, + 0xd80: 0x10202000, + 0xe80: 0x202000, + 0xf80: 0x10000000, + 0x1000: 0x10002000, + 0x1100: 0x10200008, + 0x1200: 0x10202008, + 0x1300: 0x2008, + 0x1400: 0x200000, + 0x1500: 0x10000000, + 0x1600: 0x10000008, + 0x1700: 0x202000, + 0x1800: 0x202008, + 0x1900: 0x0, + 0x1a00: 0x8, + 0x1b00: 0x10200000, + 0x1c00: 0x2000, + 0x1d00: 0x10002008, + 0x1e00: 0x10202000, + 0x1f00: 0x200008, + 0x1080: 0x8, + 0x1180: 0x202000, + 0x1280: 0x200000, + 0x1380: 0x10000008, + 0x1480: 0x10002000, + 0x1580: 0x2008, + 0x1680: 0x10202008, + 0x1780: 0x10200000, + 0x1880: 0x10202000, + 0x1980: 0x10200008, + 0x1a80: 0x2000, + 0x1b80: 0x202008, + 0x1c80: 0x200008, + 0x1d80: 0x0, + 0x1e80: 0x10000000, + 0x1f80: 0x10002008 + }, + { + 0x0: 0x100000, + 0x10: 0x2000401, + 0x20: 0x400, + 0x30: 0x100401, + 0x40: 0x2100401, + 0x50: 0x0, + 0x60: 0x1, + 0x70: 0x2100001, + 0x80: 0x2000400, + 0x90: 0x100001, + 0xa0: 0x2000001, + 0xb0: 0x2100400, + 0xc0: 0x2100000, + 0xd0: 0x401, + 0xe0: 0x100400, + 0xf0: 0x2000000, + 0x8: 0x2100001, + 0x18: 0x0, + 0x28: 0x2000401, + 0x38: 0x2100400, + 0x48: 0x100000, + 0x58: 0x2000001, + 0x68: 0x2000000, + 0x78: 0x401, + 0x88: 0x100401, + 0x98: 0x2000400, + 0xa8: 0x2100000, + 0xb8: 0x100001, + 0xc8: 0x400, + 0xd8: 0x2100401, + 0xe8: 0x1, + 0xf8: 0x100400, + 0x100: 0x2000000, + 0x110: 0x100000, + 0x120: 0x2000401, + 0x130: 0x2100001, + 0x140: 0x100001, + 0x150: 0x2000400, + 0x160: 0x2100400, + 0x170: 0x100401, + 0x180: 0x401, + 0x190: 0x2100401, + 0x1a0: 0x100400, + 0x1b0: 0x1, + 0x1c0: 0x0, + 0x1d0: 0x2100000, + 0x1e0: 0x2000001, + 0x1f0: 0x400, + 0x108: 0x100400, + 0x118: 0x2000401, + 0x128: 0x2100001, + 0x138: 0x1, + 0x148: 0x2000000, + 0x158: 0x100000, + 0x168: 0x401, + 0x178: 0x2100400, + 0x188: 0x2000001, + 0x198: 0x2100000, + 0x1a8: 0x0, + 0x1b8: 0x2100401, + 0x1c8: 0x100401, + 0x1d8: 0x400, + 0x1e8: 0x2000400, + 0x1f8: 0x100001 + }, + { + 0x0: 0x8000820, + 0x1: 0x20000, + 0x2: 0x8000000, + 0x3: 0x20, + 0x4: 0x20020, + 0x5: 0x8020820, + 0x6: 0x8020800, + 0x7: 0x800, + 0x8: 0x8020000, + 0x9: 0x8000800, + 0xa: 0x20800, + 0xb: 0x8020020, + 0xc: 0x820, + 0xd: 0x0, + 0xe: 0x8000020, + 0xf: 0x20820, + 0x80000000: 0x800, + 0x80000001: 0x8020820, + 0x80000002: 0x8000820, + 0x80000003: 0x8000000, + 0x80000004: 0x8020000, + 0x80000005: 0x20800, + 0x80000006: 0x20820, + 0x80000007: 0x20, + 0x80000008: 0x8000020, + 0x80000009: 0x820, + 0x8000000a: 0x20020, + 0x8000000b: 0x8020800, + 0x8000000c: 0x0, + 0x8000000d: 0x8020020, + 0x8000000e: 0x8000800, + 0x8000000f: 0x20000, + 0x10: 0x20820, + 0x11: 0x8020800, + 0x12: 0x20, + 0x13: 0x800, + 0x14: 0x8000800, + 0x15: 0x8000020, + 0x16: 0x8020020, + 0x17: 0x20000, + 0x18: 0x0, + 0x19: 0x20020, + 0x1a: 0x8020000, + 0x1b: 0x8000820, + 0x1c: 0x8020820, + 0x1d: 0x20800, + 0x1e: 0x820, + 0x1f: 0x8000000, + 0x80000010: 0x20000, + 0x80000011: 0x800, + 0x80000012: 0x8020020, + 0x80000013: 0x20820, + 0x80000014: 0x20, + 0x80000015: 0x8020000, + 0x80000016: 0x8000000, + 0x80000017: 0x8000820, + 0x80000018: 0x8020820, + 0x80000019: 0x8000020, + 0x8000001a: 0x8000800, + 0x8000001b: 0x0, + 0x8000001c: 0x20800, + 0x8000001d: 0x820, + 0x8000001e: 0x20020, + 0x8000001f: 0x8020800 + } + ]; + + // Masks that select the SBOX input + var SBOX_MASK = [ + 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, + 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f + ]; + + /** + * DES block cipher algorithm. + */ + var DES = C_algo.DES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + + // Select 56 bits according to PC1 + var keyBits = []; + for (var i = 0; i < 56; i++) { + var keyBitPos = PC1[i] - 1; + keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; + } + + // Assemble 16 subkeys + var subKeys = this._subKeys = []; + for (var nSubKey = 0; nSubKey < 16; nSubKey++) { + // Create subkey + var subKey = subKeys[nSubKey] = []; + + // Shortcut + var bitShift = BIT_SHIFTS[nSubKey]; + + // Select 48 bits according to PC2 + for (var i = 0; i < 24; i++) { + // Select from the left 28 key bits + subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); + + // Select from the right 28 key bits + subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); + } + + // Since each subkey is applied to an expanded 32-bit input, + // the subkey can be broken into 8 values scaled to 32-bits, + // which allows the key to be used without expansion + subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); + for (var i = 1; i < 7; i++) { + subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); + } + subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); + } + + // Compute inverse subkeys + var invSubKeys = this._invSubKeys = []; + for (var i = 0; i < 16; i++) { + invSubKeys[i] = subKeys[15 - i]; + } + }, + + encryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._subKeys); + }, + + decryptBlock: function (M, offset) { + this._doCryptBlock(M, offset, this._invSubKeys); + }, + + _doCryptBlock: function (M, offset, subKeys) { + // Get input + this._lBlock = M[offset]; + this._rBlock = M[offset + 1]; + + // Initial permutation + exchangeLR.call(this, 4, 0x0f0f0f0f); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeRL.call(this, 2, 0x33333333); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeLR.call(this, 1, 0x55555555); + + // Rounds + for (var round = 0; round < 16; round++) { + // Shortcuts + var subKey = subKeys[round]; + var lBlock = this._lBlock; + var rBlock = this._rBlock; + + // Feistel function + var f = 0; + for (var i = 0; i < 8; i++) { + f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; + } + this._lBlock = rBlock; + this._rBlock = lBlock ^ f; + } + + // Undo swap from last round + var t = this._lBlock; + this._lBlock = this._rBlock; + this._rBlock = t; + + // Final permutation + exchangeLR.call(this, 1, 0x55555555); + exchangeRL.call(this, 8, 0x00ff00ff); + exchangeRL.call(this, 2, 0x33333333); + exchangeLR.call(this, 16, 0x0000ffff); + exchangeLR.call(this, 4, 0x0f0f0f0f); + + // Set output + M[offset] = this._lBlock; + M[offset + 1] = this._rBlock; + }, + + keySize: 64/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + // Swap bits across the left and right words + function exchangeLR(offset, mask) { + var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; + this._rBlock ^= t; + this._lBlock ^= t << offset; + } + + function exchangeRL(offset, mask) { + var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; + this._lBlock ^= t; + this._rBlock ^= t << offset; + } + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); + */ + C.DES = BlockCipher._createHelper(DES); + + /** + * Triple-DES block cipher algorithm. + */ + var TripleDES = C_algo.TripleDES = BlockCipher.extend({ + _doReset: function () { + // Shortcuts + var key = this._key; + var keyWords = key.words; + // Make sure the key length is valid (64, 128 or >= 192 bit) + if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) { + throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); + } + + // Extend the key according to the keying options defined in 3DES standard + var key1 = keyWords.slice(0, 2); + var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4); + var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6); + + // Create DES instances + this._des1 = DES.createEncryptor(WordArray.create(key1)); + this._des2 = DES.createEncryptor(WordArray.create(key2)); + this._des3 = DES.createEncryptor(WordArray.create(key3)); + }, + + encryptBlock: function (M, offset) { + this._des1.encryptBlock(M, offset); + this._des2.decryptBlock(M, offset); + this._des3.encryptBlock(M, offset); + }, + + decryptBlock: function (M, offset) { + this._des3.decryptBlock(M, offset); + this._des2.encryptBlock(M, offset); + this._des1.decryptBlock(M, offset); + }, + + keySize: 192/32, + + ivSize: 64/32, + + blockSize: 64/32 + }); + + /** + * Shortcut functions to the cipher's object interface. + * + * @example + * + * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); + * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); + */ + C.TripleDES = BlockCipher._createHelper(TripleDES); + }()); + + + return CryptoJS.TripleDES; + +})); \ No newline at end of file diff --git a/node_modules/crypto-js/x64-core.js b/node_modules/crypto-js/x64-core.js new file mode 100644 index 0000000..57dcc14 --- /dev/null +++ b/node_modules/crypto-js/x64-core.js @@ -0,0 +1,304 @@ +;(function (root, factory) { + if (typeof exports === "object") { + // CommonJS + module.exports = exports = factory(require("./core")); + } + else if (typeof define === "function" && define.amd) { + // AMD + define(["./core"], factory); + } + else { + // Global (browser) + factory(root.CryptoJS); + } +}(this, function (CryptoJS) { + + (function (undefined) { + // Shortcuts + var C = CryptoJS; + var C_lib = C.lib; + var Base = C_lib.Base; + var X32WordArray = C_lib.WordArray; + + /** + * x64 namespace. + */ + var C_x64 = C.x64 = {}; + + /** + * A 64-bit word. + */ + var X64Word = C_x64.Word = Base.extend({ + /** + * Initializes a newly created 64-bit word. + * + * @param {number} high The high 32 bits. + * @param {number} low The low 32 bits. + * + * @example + * + * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); + */ + init: function (high, low) { + this.high = high; + this.low = low; + } + + /** + * Bitwise NOTs this word. + * + * @return {X64Word} A new x64-Word object after negating. + * + * @example + * + * var negated = x64Word.not(); + */ + // not: function () { + // var high = ~this.high; + // var low = ~this.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ANDs this word with the passed word. + * + * @param {X64Word} word The x64-Word to AND with this word. + * + * @return {X64Word} A new x64-Word object after ANDing. + * + * @example + * + * var anded = x64Word.and(anotherX64Word); + */ + // and: function (word) { + // var high = this.high & word.high; + // var low = this.low & word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise ORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to OR with this word. + * + * @return {X64Word} A new x64-Word object after ORing. + * + * @example + * + * var ored = x64Word.or(anotherX64Word); + */ + // or: function (word) { + // var high = this.high | word.high; + // var low = this.low | word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Bitwise XORs this word with the passed word. + * + * @param {X64Word} word The x64-Word to XOR with this word. + * + * @return {X64Word} A new x64-Word object after XORing. + * + * @example + * + * var xored = x64Word.xor(anotherX64Word); + */ + // xor: function (word) { + // var high = this.high ^ word.high; + // var low = this.low ^ word.low; + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the left. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftL(25); + */ + // shiftL: function (n) { + // if (n < 32) { + // var high = (this.high << n) | (this.low >>> (32 - n)); + // var low = this.low << n; + // } else { + // var high = this.low << (n - 32); + // var low = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Shifts this word n bits to the right. + * + * @param {number} n The number of bits to shift. + * + * @return {X64Word} A new x64-Word object after shifting. + * + * @example + * + * var shifted = x64Word.shiftR(7); + */ + // shiftR: function (n) { + // if (n < 32) { + // var low = (this.low >>> n) | (this.high << (32 - n)); + // var high = this.high >>> n; + // } else { + // var low = this.high >>> (n - 32); + // var high = 0; + // } + + // return X64Word.create(high, low); + // }, + + /** + * Rotates this word n bits to the left. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotL(25); + */ + // rotL: function (n) { + // return this.shiftL(n).or(this.shiftR(64 - n)); + // }, + + /** + * Rotates this word n bits to the right. + * + * @param {number} n The number of bits to rotate. + * + * @return {X64Word} A new x64-Word object after rotating. + * + * @example + * + * var rotated = x64Word.rotR(7); + */ + // rotR: function (n) { + // return this.shiftR(n).or(this.shiftL(64 - n)); + // }, + + /** + * Adds this word with the passed word. + * + * @param {X64Word} word The x64-Word to add with this word. + * + * @return {X64Word} A new x64-Word object after adding. + * + * @example + * + * var added = x64Word.add(anotherX64Word); + */ + // add: function (word) { + // var low = (this.low + word.low) | 0; + // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; + // var high = (this.high + word.high + carry) | 0; + + // return X64Word.create(high, low); + // } + }); + + /** + * An array of 64-bit words. + * + * @property {Array} words The array of CryptoJS.x64.Word objects. + * @property {number} sigBytes The number of significant bytes in this word array. + */ + var X64WordArray = C_x64.WordArray = Base.extend({ + /** + * Initializes a newly created word array. + * + * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. + * @param {number} sigBytes (Optional) The number of significant bytes in the words. + * + * @example + * + * var wordArray = CryptoJS.x64.WordArray.create(); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ]); + * + * var wordArray = CryptoJS.x64.WordArray.create([ + * CryptoJS.x64.Word.create(0x00010203, 0x04050607), + * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) + * ], 10); + */ + init: function (words, sigBytes) { + words = this.words = words || []; + + if (sigBytes != undefined) { + this.sigBytes = sigBytes; + } else { + this.sigBytes = words.length * 8; + } + }, + + /** + * Converts this 64-bit word array to a 32-bit word array. + * + * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. + * + * @example + * + * var x32WordArray = x64WordArray.toX32(); + */ + toX32: function () { + // Shortcuts + var x64Words = this.words; + var x64WordsLength = x64Words.length; + + // Convert + var x32Words = []; + for (var i = 0; i < x64WordsLength; i++) { + var x64Word = x64Words[i]; + x32Words.push(x64Word.high); + x32Words.push(x64Word.low); + } + + return X32WordArray.create(x32Words, this.sigBytes); + }, + + /** + * Creates a copy of this word array. + * + * @return {X64WordArray} The clone. + * + * @example + * + * var clone = x64WordArray.clone(); + */ + clone: function () { + var clone = Base.clone.call(this); + + // Clone "words" array + var words = clone.words = this.words.slice(0); + + // Clone each X64Word object + var wordsLength = words.length; + for (var i = 0; i < wordsLength; i++) { + words[i] = words[i].clone(); + } + + return clone; + } + }); + }()); + + + return CryptoJS; + +})); \ No newline at end of file diff --git a/node_modules/moment/CHANGELOG.md b/node_modules/moment/CHANGELOG.md new file mode 100644 index 0000000..19f0e1d --- /dev/null +++ b/node_modules/moment/CHANGELOG.md @@ -0,0 +1,988 @@ +Changelog +========= + +### 2.29.4 + +* Release Jul 6, 2022 + * [#6015](https://github.com/moment/moment/pull/6015) [bugfix] Fix ReDoS in preprocessRFC2822 regex + +### 2.29.3 [Full changelog](https://gist.github.com/ichernev/edebd440f49adcaec72e5e77b791d8be) + +* Release Apr 17, 2022 + * [#5995](https://github.com/moment/moment/pull/5995) [bugfix] Remove const usage + * [#5990](https://github.com/moment/moment/pull/5990) misc: fix advisory link + + +### 2.29.2 [See full changelog](https://gist.github.com/ichernev/1904b564f6679d9aac1ae08ce13bc45c) + +* Release Apr 3 2022 + +Address https://github.com/moment/moment/security/advisories/GHSA-8hfj-j24r-96c4 + +### 2.29.1 [See full changelog](https://gist.github.com/marwahaha/cc478ba01a1292ab4bd4e861d164d99b) + +* Release Oct 6, 2020 + +Updated deprecation message, bugfix in hi locale + +### 2.29.0 [See full changelog](https://gist.github.com/marwahaha/b0111718641a6461800066549957ec14) + +* Release Sept 22, 2020 + +New locales (es-mx, bn-bd). +Minor bugfixes and locale improvements. +More tests. +Moment is in maintenance mode. Read more at this link: +https://momentjs.com/docs/#/-project-status/ + +### 2.28.0 [See full changelog](https://gist.github.com/marwahaha/028fd6c2b2470b2804857cfd63c0e94f) + +* Release Sept 13, 2020 + +Fix bug where .format() modifies original instance, and locale updates + +### 2.27.0 [See full changelog](https://gist.github.com/marwahaha/5100c9c2f42019067b1f6cefc333daa7) + +* Release June 18, 2020 + +Added Turkmen locale, other locale improvements, slight TypeScript fixes + +### 2.26.0 [See full changelog](https://gist.github.com/marwahaha/0725c40740560854a849b096ea7b7590) + +* Release May 19, 2020 + +TypeScript fixes and many locale improvements + +### 2.25.3 + +* Release May 4, 2020 + +Remove package.json module property. It looks like webpack behaves differently +for modules loaded via module vs jsnext:main. + +### 2.25.2 + +* Release May 4, 2020 + +This release includes ES Module bundled moment, separate from it's source code +under dist/ folder. This might alleviate issues with finding the `./locale +subfolder for loading locales. This might also mean now webpack will bundle all +locales automatically, unless told otherwise. + +### 2.25.1 + +* Release May 1, 2020 + +This is a quick patch release to address some of the issues raised after +releasing 2.25.0. + +* [2e268635](https://github.com/moment/moment/commit/2e268635) [misc] Revert #5269 due to webpack warning +* [226799e1](https://github.com/moment/moment/commit/226799e1) [locale] fil: Fix metadata comment +* [a83a521](https://github.com/moment/moment/commit/a83a521) [bugfix] Fix typeoff usages +* [e324334](https://github.com/moment/moment/commit/e324334) [pkg] Add ts3.1-typings in npm package +* [28cc23e](https://github.com/moment/moment/commit/28cc23e) [misc] Remove deleted generated locale en-SG + +### 2.25.0 [See full changelog](https://gist.github.com/ichernev/6148e64df2427e455b10ce6a18de1a65) + +* Release May 1, 2020 + +* [#4611](https://github.com/moment/moment/issues/4611) [022dc038](https://github.com/moment/moment/commit/022dc038) [feature] Support for strict string parsing, fixes [#2469](https://github.com/moment/moment/issues/2469) +* [#4599](https://github.com/moment/moment/issues/4599) [4b615b9d](https://github.com/moment/moment/commit/4b615b9d) [feature] Add support for eras in en and jp +* [#4296](https://github.com/moment/moment/issues/4296) [757d4ff8](https://github.com/moment/moment/commit/757d4ff8) [feature] Accept custom relative thresholds in duration.humanize + +* 18 bigfixes +* 36 locale fixes +* 5 new locales (oc-lnc, zh-mo, en-in, gom-deva, fil) + +### 2.24.0 [See full changelog](https://gist.github.com/marwahaha/12366fe45bee328f33acf125d4cd540e) + +* Release Jan 21, 2019 + +* [#4338](https://github.com/moment/moment/pull/4338) [bugfix] Fix startOf/endOf DST issues while boosting performance +* [#4553](https://github.com/moment/moment/pull/4553) [feature] Add localeSort param to Locale weekday methods +* [#4887](https://github.com/moment/moment/pull/4887) [bugfix] Make Duration#as work with quarters +* 3 new locales (it-ch, ga, en-SG) +* Lots of locale improvements + +### 2.23.0 [See full changelog](https://gist.github.com/marwahaha/eadb7ac11b761290399a576f8b2419a5) + +* Release Dec 12, 2018 + +* [#4863](https://github.com/moment/moment/pull/4863) [new locale] added Kurdish language (ku) +* [#4417](https://github.com/moment/moment/pull/4417) [bugfix] isBetween should return false for invalid dates +* [#4700](https://github.com/moment/moment/pull/4700) [bugfix] Fix [#4698](https://github.com/moment/moment/pull/4698): Use ISO WeekYear for HTML5_FMT.WEEK +* [#4563](https://github.com/moment/moment/pull/4563) [feature] Fix [#4518](https://github.com/moment/moment/pull/4518): Add support to add/subtract ISO weeks +* other locale changes, build process changes, typos + +### 2.22.2 [See full changelog](https://gist.github.com/marwahaha/4d992c13c2dbc0f59d4d8acae1dc6d3a) + +* Release May 31, 2018 + +* [#4564](https://github.com/moment/moment/pull/4564) [bugfix] Avoid using trim() +* [#4453](https://github.com/moment/moment/pull/4453) [bugfix] Treat periods as periods, not regex-anything period, for weekday parsing in strict mode. +* Minor locale improvements (pa-in, be, az) + +### 2.22.1 [See full changelog](https://gist.github.com/marwahaha/ff2cd13d0eda08afb7a237b10aae558c) + +* Release Apr 14, 2018 + +* [#4495](https://github.com/moment/moment/pull/4495) [bugfix] Added HTML5_FMT to moment.d.ts +* Minor locale improvements +* QUnit upgrade and coveralls reporting + +### 2.22.0 [See full changelog](https://gist.github.com/marwahaha/ae895025dac3f0641fa9ec2e36d282bb) + +* Release Mar 30, 2018 + +* [#4423](https://github.com/moment/moment/pull/4423) [new locale] Added Mongolian locale mn +* Various locale improvements +* Minor misc changes + +### 2.21.0 [See full changelog](https://gist.github.com/marwahaha/80d19ef882b71df1948df7865efdd40e) + +* Release Mar 2, 2018 + +* [#4391](https://github.com/moment/moment/pull/4391) [bugfix] Fix [#4390](https://github.com/moment/moment/pull/4390): use offset properly in toISOString +* [#4310](https://github.com/moment/moment/pull/4310) [bugfix] Fix [#3883](https://github.com/moment/moment/pull/3883) lazy load parentLocale in defineLocale, fallback to global if missing +* [#4085](https://github.com/moment/moment/pull/4085) [misc] Print console warning when setting non-existent locales +* [#4371](https://github.com/moment/moment/pull/4371) [misc] fix deprecated rollup options +* New locales: ug-cn, en-il, tg +* Various locale improvements + +### 2.20.1 [See changelog](https://gist.github.com/marwahaha/d72c1cb22076373be889b16272cbd187) + +* Release Dec 18, 2017 + +* [#4359](https://github.com/moment/moment/pull/4359) [locale] Fix Arabic locale for months (again) +* [#4357](https://github.com/moment/moment/pull/4357) [misc] Add optional parameter keepOffset to toISOString + +### 2.20.0 [See full changelog](https://gist.github.com/marwahaha/e0d4135fbf8bb75fa85c4aa2bddc5031) + +* Release Dec 16, 2017 + +* [#4312](https://github.com/moment/moment/pull/4312) [bugfix] Fix [#4251](https://github.com/moment/moment/pull/4251): Avoid RFC2822 in utc() test +* [#4240](https://github.com/moment/moment/pull/4240) [bugfix] Fix incorrect strict parsing with full-width parentheses +* [#4341](https://github.com/moment/moment/pull/4341) [feature] Prevent toISOString converting to UTC (issue [#1751](https://github.com/moment/moment/pull/1751)) +* [#4154](https://github.com/moment/moment/pull/4154) [feature] add format constants to support output to HTML5 input type formats (see [#3928](https://github.com/moment/moment/pull/3928)) +* [#4143](https://github.com/moment/moment/pull/4143) [new locale] mt: Maltese language +* [#4183](https://github.com/moment/moment/pull/4183) [locale] Relative seconds i18n +* Various other locale improvements + +### 2.19.4 [See changelog](https://gist.github.com/marwahaha/d3b7b0ddf4bdae512244f16e8cc59efb) + +* Release Dec 10, 2017 + +* [#4332](https://github.com/moment/moment/pull/4332) [bugfix] Fix weekday verification for UTC and offset days (fixes [#4227](https://github.com/moment/moment/pull/4227)) +* [#4336](https://github.com/moment/moment/pull/4336) [bugfix] Fix [#4334](https://github.com/moment/moment/pull/4334): Remove unused function call argument +* [#4246](https://github.com/moment/moment/pull/4246) [misc] Add 'ss' relative time key to typescript definition + +### 2.19.3 [See changelog](https://gist.github.com/marwahaha/3654006bc0c2e522451c08d12c0bfabf) + +* Release Nov 29, 2017 + +* [#4326](https://github.com/moment/moment/pull/4326) [bugfix] Fix for ReDOS vulnerability (see [#4163](https://github.com/moment/moment/issues/4163)) +* [#4289](https://github.com/moment/moment/pull/4289) [misc] Fix spelling and formatting for U.S. for es-us + +### 2.19.2 [See changelog (it's the same >:D)](https://gist.github.com/ichernev/76b1a3f33d3a8ff9665ce434a45221d0) + +* Release Nov 11, 2017 + +* [#4255](https://github.com/moment/moment/pull/4255) [bugfix] Fix year setter for random days in a leap year, fixes [#4238](https://github.com/moment/moment/issues/4238) +* [#4242](https://github.com/moment/moment/pull/4242) [bugfix] updateLocale now tries to load parent, fixes [#3626](https://github.com/moment/moment/issues/3626) + +### 2.19.1 + +* Release Oct 11, 2017 + +Make react native and webpack both work +* #4225 #4226 #4232 + +### 2.19.0 [See full changelog](https://gist.github.com/ichernev/5f3f4eb02761b4f765a0cccf02cec603) + +* Release Oct 10, 2017 + +## Fix React Native 0.49+ crash +* [#4213](https://github.com/moment/moment/pull/4213) [critical] Rename dynamic + require to avoid React Native crash +* [#4214](https://github.com/moment/moment/pull/4214) [fixup] Move require + rename inside try/catch, fixes + [#4213](https://github.com/moment/moment/issues/4213) + +## Features + +* [#3735](https://github.com/moment/moment/pull/3735) [feature] Ignore NaN values in setters +* [#4106](https://github.com/moment/moment/pull/4106) [fixup] Drop isNumeric utility fn, fixes [#3735](https://github.com/moment/moment/issues/3735) +* [#4080](https://github.com/moment/moment/pull/4080) [feature] Implement a clone method for durations, fixes [#4078](https://github.com/moment/moment/issues/4078) +* [#4215](https://github.com/moment/moment/pull/4215) [misc] TS: Add duration.clone(), for [#4080](https://github.com/moment/moment/issues/4080) + +## Packaging + +* [#4003](https://github.com/moment/moment/pull/4003) [pkg] bower: Remove tests from package +* [#3904](https://github.com/moment/moment/pull/3904) [pkg] jsnext:main -> module in package.json +* [#4060](https://github.com/moment/moment/pull/4060) [pkg] Account for new rollup interface + +Bugfixes, new locales, locale fixes etc... + +### 2.18.1 + +* Release Mar 22, 2017 + +* [#3853](https://github.com/moment/moment/pull/3853) [misc] Fix invalid whitespace character causing inability to parse + moment.js + +### 2.18.0 [See full changelog](https://gist.github.com/ichernev/78920c5a1e419fb28c6e4546d1b7235c) + +* Release Mar 18, 2017 + +## Features + +* [#3708](https://github.com/moment/moment/pull/3708) [feature] RFC2822 parsing +* [#3611](https://github.com/moment/moment/pull/3611) [feature] Durations gain validity +* [#3738](https://github.com/moment/moment/pull/3738) [feature] Enable relative time for multiple seconds, request [#2558](https://github.com/moment/moment/issues/2558) +* [#3766](https://github.com/moment/moment/pull/3766) [feature] Add support for k and kk format parsing + +## Bugfixes + +* [#3643](https://github.com/moment/moment/pull/3643) [bugfix] Fixes [#3520](https://github.com/moment/moment/issues/3520), parseZone incorrectly handled minutes under 16 +* [#3710](https://github.com/moment/moment/pull/3710) [bugfix] Fixes [#3632](https://github.com/moment/moment/issues/3632), toISOString returns null for invalid date +* [#3787](https://github.com/moment/moment/pull/3787) [bugfix] Fixes [#3717](https://github.com/moment/moment/issues/3717), ensure day-of-year is non-zero +* [#3780](https://github.com/moment/moment/pull/3780) [bugfix] Fixes [#3765](https://github.com/moment/moment/issues/3765): Ensure year 0 is formatted with YYYY +* [#3806](https://github.com/moment/moment/pull/3806) [bugfix] Fixes [#3805](https://github.com/moment/moment/issues/3805), fix locale month getters for standalone/format cases + +7 new locales, many locale improvements and some misc changes + +### 2.17.1 [Also available here](https://gist.github.com/ichernev/f38280b2b29c4932914a6d3a4e50bfb2) +* Release Dec 03, 2016 + +* [#3638](https://github.com/moment/moment/pull/3638) [misc] TS: Make typescript definitions work with 1.x +* [#3628](https://github.com/moment/moment/pull/3628) [misc] Adds "sign CLA" link to `CONTRIBUTING.md` +* [#3640](https://github.com/moment/moment/pull/3640) [misc] Fix locale issues + +### 2.17.0 [Also available here](https://gist.github.com/ichernev/ed58f76fb95205eeac653d719972b90c) +* Release Nov 22, 2016 + +* [#3435](https://github.com/moment/moment/pull/3435) [new locale] yo: Yoruba (Nigeria) locale +* [#3595](https://github.com/moment/moment/pull/3595) [bugfix] Fix accidental reference to global "value" variable +* [#3506](https://github.com/moment/moment/pull/3506) [bugfix] Fix invalid moments returning valid dates to method calls +* [#3563](https://github.com/moment/moment/pull/3563) [locale] ca: Change future relative time +* [#3504](https://github.com/moment/moment/pull/3504) [tests] Fixes [#3463](https://github.com/moment/moment/issues/3463), parseZone not handling Z correctly (tests only) +* [#3591](https://github.com/moment/moment/pull/3591) [misc] typescript: update typescript to 2.0.8, add strictNullChecks=true +* [#3597](https://github.com/moment/moment/pull/3597) [misc] Fixed capitalization in nuget spec + +### 2.16.0 [See full changelog](https://gist.github.com/ichernev/17bffc1005a032cb1a8ac4c1558b4994) +* Release Nov 9, 2016 + +## Features +* [#3530](https://github.com/moment/moment/pull/3530) [feature] Check whether input is date before checking if format is array +* [#3515](https://github.com/moment/moment/pull/3515) [feature] Fix [#2300](https://github.com/moment/moment/issues/2300): Default to current week. + +## Bugfixes +* [#3546](https://github.com/moment/moment/pull/3546) [bugfix] Implement lazy-loading of child locales with missing prents +* [#3523](https://github.com/moment/moment/pull/3523) [bugfix] parseZone should handle UTC +* [#3502](https://github.com/moment/moment/pull/3502) [bugfix] Fix [#3500](https://github.com/moment/moment/issues/3500): ISO 8601 parsing should match the full string, not the beginning of the string. +* [#3581](https://github.com/moment/moment/pull/3581) [bugfix] Fix parseZone, redo [#3504](https://github.com/moment/moment/issues/3504), fix [#3463](https://github.com/moment/moment/issues/3463) + +## New Locales +* [#3416](https://github.com/moment/moment/pull/3416) [new locale] nl-be: Dutch (Belgium) locale +* [#3393](https://github.com/moment/moment/pull/3393) [new locale] ar-dz: Arabic (Algeria) locale +* [#3342](https://github.com/moment/moment/pull/3342) [new locale] tet: Tetun Dili (East Timor) locale + +And more locale, build and typescript improvements + +### 2.15.2 +* Release Oct 23, 2016 +* [#3525](https://github.com/moment/moment/pull/3525) Speedup month standalone/format regexes **(IMPORTANT)** +* [#3466](https://github.com/moment/moment/pull/3466) Fix typo of Javanese + +### 2.15.1 +* Release Sept 20, 2016 +* [#3438](https://github.com/moment/moment/pull/3438) Fix locale autoload, revert [#3344](https://github.com/moment/moment/pull/3344) + +### 2.15.0 [See full changelog](https://gist.github.com/ichernev/10e1c5bf647545c72ca30e9628a09ed3) +- Release Sept 12, 2016 + +## New Locales +* [#3255](https://github.com/moment/moment/pull/3255) [new locale] mi: Maori language +* [#3267](https://github.com/moment/moment/pull/3267) [new locale] ar-ly: Arabic (Libya) locale +* [#3333](https://github.com/moment/moment/pull/3333) [new locale] zh-hk: Chinese (Hong Kong) locale + +## Bugfixes +* [#3276](https://github.com/moment/moment/pull/3276) [bugfix] duration: parser: Support ms durations in .NET syntax +* [#3312](https://github.com/moment/moment/pull/3312) [bugfix] locales: Enable locale-data getters without moment (fixes [#3284](https://github.com/moment/moment/issues/3284)) +* [#3381](https://github.com/moment/moment/pull/3381) [bugfix] parsing: Fix parseZone without timezone in string, fixes [#3083](https://github.com/moment/moment/issues/3083) +* [#3383](https://github.com/moment/moment/pull/3383) [bugfix] toJSON: Fix isValid so that toJSON works after a moment is frozen +* [#3427](https://github.com/moment/moment/pull/3427) [bugfix] ie8: Fix IE8 (regression in 2.14.x) + +## Packaging +* [#3299](https://github.com/moment/moment/pull/3299) [pkg] npm: Do not include .npmignore in npm package +* [#3273](https://github.com/moment/moment/pull/3273) [pkg] jspm: Include moment.d.ts file in package +* [#3344](https://github.com/moment/moment/pull/3344) [pkg] exports: use module.require for nodejs + +Also some locale and typescript improvements + +### 2.14.1 +- Release July 20, 2016 +* [#3280](https://github.com/moment/moment/pull/3280) Fix typescript definitions + + +### 2.14.0 [See full changelog](https://gist.github.com/ichernev/812e79ac36a7829a22598fe964bfc18a) + +- Release July 20, 2016 + +## New Features +* [#3233](https://github.com/moment/moment/pull/3233) Introduce month.isFormat for format/standalone discovery +* [#2848](https://github.com/moment/moment/pull/2848) Allow user to get/set the rounding method used when calculating relative time +* [#3112](https://github.com/moment/moment/pull/3112) optimize configFromStringAndFormat +* [#3147](https://github.com/moment/moment/pull/3147) Call calendar format function with moment context +* [#3160](https://github.com/moment/moment/pull/3160) deprecate isDSTShifted +* [#3175](https://github.com/moment/moment/pull/3175) make moment calendar extensible with ad-hoc options +* [#3191](https://github.com/moment/moment/pull/3191) toDate returns a copy of the internal date object +* [#3192](https://github.com/moment/moment/pull/3192) Adding support for rollup import. +* [#3238](https://github.com/moment/moment/pull/3238) Handle empty object and empty array for creation as now +* [#3082](https://github.com/moment/moment/pull/3082) Use relative AMD moment dependency + +## Bugfixes +* [#3241](https://github.com/moment/moment/pull/3241) Escape all 24 mixed pieces, not only first 12 in computeMonthsParse +* [#3008](https://github.com/moment/moment/pull/3008) Object setter orders sets based on size of unit +* [#3177](https://github.com/moment/moment/pull/3177) Bug Fix [#2704](https://github.com/moment/moment/pull/2704) - isoWeekday(String) inconsistent with isoWeekday(Number) +* [#3230](https://github.com/moment/moment/pull/3230) fix passing date with format string to ignore format string +* [#3232](https://github.com/moment/moment/pull/3232) Fix negative 0 in certain diff cases +* [#3235](https://github.com/moment/moment/pull/3235) Use proper locale inheritance for the base locale, fixes [#3137](https://github.com/moment/moment/pull/3137) + +Plus es-do locale and locale bugfixes + +### 2.13.0 [See full changelog](https://gist.github.com/ichernev/0132fcf5b61f7fc140b0bb0090480d49) +- Release April 18, 2016 + +## Enhancements: +* [#2982](https://github.com/moment/moment/pull/2982) Add 'date' as alias to 'day' for startOf() and endOf(). +* [#2955](https://github.com/moment/moment/pull/2955) Add parsing negative components in durations when ISO 8601 +* [#2991](https://github.com/moment/moment/pull/2991) isBetween support for both open and closed intervals +* [#3105](https://github.com/moment/moment/pull/3105) Add localeSorted argument to weekday listers +* [#3102](https://github.com/moment/moment/pull/3102) Add k and kk formatting tokens + +## Bugfixes +* [#3109](https://github.com/moment/moment/pull/3109) Fix [#1756](https://github.com/moment/moment/issues/1756) Resolved thread-safe issue on server side. +* [#3078](https://github.com/moment/moment/pull/3078) Fix parsing for months/weekdays with weird characters +* [#3098](https://github.com/moment/moment/pull/3098) Use Z suffix when in UTC mode ([#3020](https://github.com/moment/moment/issues/3020)) +* [#2995](https://github.com/moment/moment/pull/2995) Fix floating point rounding errors in durations +* [#3059](https://github.com/moment/moment/pull/3059) fix bug where diff returns -0 in month-related diffs +* [#3045](https://github.com/moment/moment/pull/3045) Fix mistaking any input for 'a' token +* [#2877](https://github.com/moment/moment/pull/2877) Use explicit .valueOf() calls instead of coercion +* [#3036](https://github.com/moment/moment/pull/3036) Year setter should keep time when DST changes + +Plus 3 new locales and locale fixes. + +### 2.12.0 [See full changelog](https://gist.github.com/ichernev/6e5bfdf8d6522fc4ac73) + +- Release March 7, 2016 + +## Enhancements: +* [#2932](https://github.com/moment/moment/pull/2932) List loaded locales +* [#2818](https://github.com/moment/moment/pull/2818) Parse ISO-8061 duration containing both day and week values +* [#2774](https://github.com/moment/moment/pull/2774) Implement locale inheritance and locale updating + +## Bugfixes: +* [#2970](https://github.com/moment/moment/pull/2970) change add subtract to handle decimal values by rounding +* [#2887](https://github.com/moment/moment/pull/2887) Fix toJSON casting of invalid moment +* [#2897](https://github.com/moment/moment/pull/2897) parse string arguments for month() correctly, closes #2884 +* [#2946](https://github.com/moment/moment/pull/2946) Fix usage suggestions for min and max + +## New locales: +* [#2917](https://github.com/moment/moment/pull/2917) Locale Punjabi(Gurmukhi) India format conversion + +And more + +### 2.11.2 (Fix ReDoS attack vector) + +- Release February 7, 2016 + +* [#2939](https://github.com/moment/moment/pull/2939) use full-string match to speed up aspnet regex match + +### 2.11.1 [See full changelog](https://gist.github.com/ichernev/8ec3ee25b749b4cff3c2) + +- Release January 9, 2016 + +## Bugfixes: +* [#2881](https://github.com/moment/moment/pull/2881) Revert "Merge pull request #2746 from mbad0la:develop" Sep->Sept +* [#2868](https://github.com/moment/moment/pull/2868) Add format and parse token Y, so it actually works +* [#2865](https://github.com/moment/moment/pull/2865) Use typeof checks for undefined for global variables +* [#2858](https://github.com/moment/moment/pull/2858) Fix Date mocking regression introduced in 2.11.0 +* [#2864](https://github.com/moment/moment/pull/2864) Include changelog in npm release +* [#2830](https://github.com/moment/moment/pull/2830) dep: add grunt-cli +* [#2869](https://github.com/moment/moment/pull/2869) Fix months parsing for some locales + +### 2.11.0 [See full changelog](https://gist.github.com/ichernev/6594bc29719dde6b2f66) + +- Release January 4, 2016 + +* [#2624](https://github.com/moment/moment/pull/2624) Proper handling of invalid moments +* [#2634](https://github.com/moment/moment/pull/2634) Fix strict month parsing issue in cs,ru,sk +* [#2735](https://github.com/moment/moment/pull/2735) Reset the locale back to 'en' after defining all locales in min/locales.js +* [#2702](https://github.com/moment/moment/pull/2702) Week rework +* [#2746](https://github.com/moment/moment/pull/2746) Changed September Abbreviation to "Sept" in locale-specific english + files and default locale file +* [#2646](https://github.com/moment/moment/pull/2646) Fix [#2645](https://github.com/moment/moment/pull/2645) - invalid dates pre-1970 + +* [#2641](https://github.com/moment/moment/pull/2641) Implement basic format and comma as ms separator in ISO 8601 +* [#2665](https://github.com/moment/moment/pull/2665) Implement stricter weekday parsing +* [#2700](https://github.com/moment/moment/pull/2700) Add [Hh]mm and [Hh]mmss formatting tokens, so you can parse 123 with + hmm for example +* [#2565](https://github.com/moment/moment/pull/2565) [#2835](https://github.com/moment/moment/pull/2835) Expose arguments used for moment creation with creationData + (fix [#2443](https://github.com/moment/moment/pull/2443)) +* [#2648](https://github.com/moment/moment/pull/2648) fix issue [#2640](https://github.com/moment/moment/pull/2640): support instanceof operator +* [#2709](https://github.com/moment/moment/pull/2709) Add isSameOrAfter and isSameOrBefore comparison methods +* [#2721](https://github.com/moment/moment/pull/2721) Fix moment creation from object with strings values +* [#2740](https://github.com/moment/moment/pull/2740) Enable 'd hh:mm:ss.sss' format for durations +* [#2766](https://github.com/moment/moment/pull/2766) [#2833](https://github.com/moment/moment/pull/2833) Alternate Clock Source Support + +### 2.10.6 + +- Release July 28, 2015 + +[#2515](https://github.com/moment/moment/pull/2515) Fix regression introduced +in `2.10.5` related to `moment.ISO_8601` parsing. + +### 2.10.5 [See full changelog](https://gist.github.com/ichernev/6ec13ac7efc396da44b2) + +- Release July 26, 2015 + +Important changes: +* [#2357](https://github.com/moment/moment/pull/2357) Improve unit bubbling for ISO dates + this fixes day to year conversions to work around end-of-year (~365 days). As + a side effect 365 days is 11 months and 30 days, and 366 days is one year. +* [#2438](https://github.com/moment/moment/pull/2438) Fix inconsistent moment.min and moment.max results + Return invalid result if any of the inputs is invalid +* [#2494](https://github.com/moment/moment/pull/2494) Fix two digit year parsing with YYYY format + This brings the benefits of YY to YYYY +* [#2368](https://github.com/moment/moment/pull/2368) perf: use faster form of copying dates, across the board improvement + + +### 2.10.3 [See full changelog](https://gist.github.com/ichernev/f264b9bed5b00f8b1b7f) + +- Release May 13, 2015 + +* add `moment.fn.to` and `moment.fn.toNow` (similar to `from` and `fromNow`) +* new locales (Sinhalese (si), Montenegrin (me), Javanese (ja)) +* performance improvements + +### 2.10.2 + +- Release April 9, 2015 + +* fixed moment-with-locales in browser env caused by esperanto change + +### 2.10.1 + +* regression: Add moment.duration.fn back + +### 2.10.0 + +Ported code to es6 modules. + +### 2.9.0 [See full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +- Release January 8, 2015 + +languages: +* [2104](https://github.com/moment/moment/issues/2104) Frisian (fy) language file with unit test +* [2097](https://github.com/moment/moment/issues/2097) add ar-tn locale + +deprecations: +* [2074](https://github.com/moment/moment/issues/2074) Implement `moment.fn.utcOffset`, deprecate `moment.fn.zone` + +features: +* [2088](https://github.com/moment/moment/issues/2088) add moment.fn.isBetween +* [2054](https://github.com/moment/moment/issues/2054) Call updateOffset when creating moment (needed for default timezone in + moment-timezone) +* [1893](https://github.com/moment/moment/issues/1893) Add moment.isDate method +* [1825](https://github.com/moment/moment/issues/1825) Implement toJSON function on Duration +* [1809](https://github.com/moment/moment/issues/1809) Allowing moment.set() to accept a hash of units +* [2128](https://github.com/moment/moment/issues/2128) Add firstDayOfWeek, firstDayOfYear locale getters +* [2131](https://github.com/moment/moment/issues/2131) Add quarter diff support + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/0c9a9b49951111a27ce7) + +### 2.8.4 [See full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +- Release November 19, 2014 + +Features: + +* [#2000](https://github.com/moment/moment/issues/2000) Add LTS localised format that includes seconds +* [#1960](https://github.com/moment/moment/issues/1960) added formatToken 'x' for unix offset in milliseconds #1938 +* [#1965](https://github.com/moment/moment/issues/1965) Support 24:00:00.000 to mean next day, at midnight. +* [#2002](https://github.com/moment/moment/issues/2002) Accept 'date' key when creating moment with object +* [#2009](https://github.com/moment/moment/issues/2009) Use native toISOString when we can + +Some bugfixes and language improvements -- [full changelog](https://gist.github.com/ichernev/a4fcb0a46d74e4b9b996) + +### 2.8.3 + +- Release September 5, 2014 + +Bugfixes: + +* [#1801](https://github.com/moment/moment/issues/1801) proper pluralization for Arabic +* [#1833](https://github.com/moment/moment/issues/1833) improve spm integration +* [#1871](https://github.com/moment/moment/issues/1871) fix zone bug caused by Firefox 24 +* [#1882](https://github.com/moment/moment/issues/1882) Use hh:mm in Czech +* [#1883](https://github.com/moment/moment/issues/1883) Fix 2.8.0 regression in duration as conversions +* [#1890](https://github.com/moment/moment/issues/1890) Faster travis builds +* [#1892](https://github.com/moment/moment/issues/1892) Faster isBefore/After/Same +* [#1848](https://github.com/moment/moment/issues/1848) Fix flaky month diffs +* [#1895](https://github.com/moment/moment/issues/1895) Fix 2.8.0 regression in moment.utc with format array +* [#1896](https://github.com/moment/moment/issues/1896) Support setting invalid instance locale (noop) +* [#1897](https://github.com/moment/moment/issues/1897) Support moment([str]) in addition to moment([int]) + +### 2.8.2 + +- Release August 22, 2014 + +Minor bugfixes: + +* [#1874](https://github.com/moment/moment/issues/1874) use `Object.prototype.hasOwnProperty` + instead of `obj.hasOwnProperty` (ie8 bug) +* [#1873](https://github.com/moment/moment/issues/1873) add `duration#toString()` +* [#1859](https://github.com/moment/moment/issues/1859) better month/weekday names in norwegian +* [#1812](https://github.com/moment/moment/issues/1812) meridiem parsing for greek +* [#1804](https://github.com/moment/moment/issues/1804) spanish del -> de +* [#1800](https://github.com/moment/moment/issues/1800) korean LT improvement + +### 2.8.1 + +- Release August 1, 2014 + +* bugfix [#1813](https://github.com/moment/moment/issues/1813): fix moment().lang([key]) incompatibility + +### 2.8.0 [See changelog](https://gist.github.com/ichernev/ac3899324a5fa6c8c9b4) + +- Release July 31, 2014 + +* incompatible changes + * [#1761](https://github.com/moment/moment/issues/1761): moments created without a language are no longer following the global language, in case it changes. Only newly created moments take the global language by default. In case you're affected by this, wait, comment on [#1797](https://github.com/moment/moment/issues/1797) and wait for a proper reimplementation + * [#1642](https://github.com/moment/moment/issues/1642): 45 days is no longer "a month" according to humanize, cutoffs for month, and year have changed. Hopefully your code does not depend on a particular answer from humanize (which it shouldn't anyway) + * [#1784](https://github.com/moment/moment/issues/1784): if you use the human readable English datetime format in a weird way (like storing them in a database) that would break when the format changes you're at risk. + +* deprecations (old behavior will be dropped in 3.0) + * [#1761](https://github.com/moment/moment/issues/1761) `lang` is renamed to `locale`, `langData` -> `localeData`. Also there is now `defineLocale` that should be used when creating new locales + * [#1763](https://github.com/moment/moment/issues/1763) `add(unit, value)` and `subtract(unit, value)` are now deprecated. Use `add(value, unit)` and `subtract(value, unit)` instead. + * [#1759](https://github.com/moment/moment/issues/1759) rename `duration.toIsoString` to `duration.toISOString`. The js standard library and moment's `toISOString` follow that convention. + +* new locales + * [#1789](https://github.com/moment/moment/issues/1789) Tibetan (bo) + * [#1786](https://github.com/moment/moment/issues/1786) Africaans (af) + * [#1778](https://github.com/moment/moment/issues/1778) Burmese (my) + * [#1727](https://github.com/moment/moment/issues/1727) Belarusian (be) + +* bugfixes, locale bugfixes, performance improvements, features + +### 2.7.0 [See changelog](https://gist.github.com/ichernev/b0a3d456d5a84c9901d7) + +- Release June 12, 2014 + +* new languages + + * [#1678](https://github.com/moment/moment/issues/1678) Bengali (bn) + * [#1628](https://github.com/moment/moment/issues/1628) Azerbaijani (az) + * [#1633](https://github.com/moment/moment/issues/1633) Arabic, Saudi Arabia (ar-sa) + * [#1648](https://github.com/moment/moment/issues/1648) Austrian German (de-at) + +* features + + * [#1663](https://github.com/moment/moment/issues/1663) configurable relative time thresholds + * [#1554](https://github.com/moment/moment/issues/1554) support anchor time in moment.calendar + * [#1693](https://github.com/moment/moment/issues/1693) support moment.ISO_8601 as parsing format + * [#1637](https://github.com/moment/moment/issues/1637) add moment.min and moment.max and deprecate min/max instance methods + * [#1704](https://github.com/moment/moment/issues/1704) support string value in add/subtract + * [#1647](https://github.com/moment/moment/issues/1647) add spm support (package manager) + +* bugfixes + +### 2.6.0 [See changelog](https://gist.github.com/ichernev/10544682) + +- Release April 12 , 2014 + +* languages + * [#1529](https://github.com/moment/moment/issues/1529) Serbian-Cyrillic (sr-cyr) + * [#1544](https://github.com/moment/moment/issues/1544), [#1546](https://github.com/moment/moment/issues/1546) Khmer Cambodia (km) + +* features + * [#1419](https://github.com/moment/moment/issues/1419), [#1468](https://github.com/moment/moment/issues/1468), [#1467](https://github.com/moment/moment/issues/1467), [#1546](https://github.com/moment/moment/issues/1546) better handling of timezone-d moments around DST + * [#1462](https://github.com/moment/moment/issues/1462) add weeksInYear and isoWeeksInYear + * [#1475](https://github.com/moment/moment/issues/1475) support ordinal parsing + * [#1499](https://github.com/moment/moment/issues/1499) composer support + * [#1577](https://github.com/moment/moment/issues/1577), [#1604](https://github.com/moment/moment/issues/1604) put Date parsing in moment.createFromInputFallback so it can be properly deprecated and controlled in the future + * [#1545](https://github.com/moment/moment/issues/1545) extract two-digit year parsing in moment.parseTwoDigitYear, so it can be overwritten + * [#1590](https://github.com/moment/moment/issues/1590) (see [#1574](https://github.com/moment/moment/issues/1574)) set AMD global before module definition to better support non AMD module dependencies used in AMD environment + * [#1589](https://github.com/moment/moment/issues/1589) remove global in Node.JS environment (was not working before, nobody complained, was scheduled for removal anyway) + * [#1586](https://github.com/moment/moment/issues/1586) support quarter setting and parsing + +* 18 bugs fixed + +### 2.5.1 + +- Release January 22, 2014 + +* languages + * [#1392](https://github.com/moment/moment/issues/1392) Armenian (hy-am) + +* bugfixes + * [#1429](https://github.com/moment/moment/issues/1429) fixes [#1423](https://github.com/moment/moment/issues/1423) weird chrome-32 bug with js object creation + * [#1421](https://github.com/moment/moment/issues/1421) remove html entities from Welsh + * [#1418](https://github.com/moment/moment/issues/1418) fixes [#1401](https://github.com/moment/moment/issues/1401) improved non-padded tokens in strict matching + * [#1417](https://github.com/moment/moment/issues/1417) fixes [#1404](https://github.com/moment/moment/issues/1404) handle buggy moment object created by property cloning + * [#1398](https://github.com/moment/moment/issues/1398) fixes [#1397](https://github.com/moment/moment/issues/1397) fix Arabic-like week number parsing + * [#1396](https://github.com/moment/moment/issues/1396) add leftZeroFill(4) to GGGG and gggg formats + * [#1373](https://github.com/moment/moment/issues/1373) use lowercase for months and days in Catalan + +* testing + * [#1374](https://github.com/moment/moment/issues/1374) run tests on multiple browser/os combos via SauceLabs and Travis + +### 2.5.0 [See changelog](https://gist.github.com/ichernev/8104451) + +- Release Dec 24, 2013 + +* New languages + * Luxemburish (lb) [1247](https://github.com/moment/moment/issues/1247) + * Serbian (rs) [1319](https://github.com/moment/moment/issues/1319) + * Tamil (ta) [1324](https://github.com/moment/moment/issues/1324) + * Macedonian (mk) [1337](https://github.com/moment/moment/issues/1337) + +* Features + * [1311](https://github.com/moment/moment/issues/1311) Add quarter getter and format token `Q` + * [1303](https://github.com/moment/moment/issues/1303) strict parsing now respects number of digits per token (fix [1196](https://github.com/moment/moment/issues/1196)) + * 0d30bb7 add jspm support + * [1347](https://github.com/moment/moment/issues/1347) improve zone parsing + * [1362](https://github.com/moment/moment/issues/1362) support merideam parsing in Korean + +* 22 bugfixes + +### 2.4.0 + +- Release Oct 27, 2013 + +* **Deprecate** globally exported moment, will be removed in next major +* New languages + * Farose (fo) [#1206](https://github.com/moment/moment/issues/1206) + * Tagalog/Filipino (tl-ph) [#1197](https://github.com/moment/moment/issues/1197) + * Welsh (cy) [#1215](https://github.com/moment/moment/issues/1215) +* Bugfixes + * properly handle Z at the end of iso RegExp [#1187](https://github.com/moment/moment/issues/1187) + * chinese meridian time improvements [#1076](https://github.com/moment/moment/issues/1076) + * fix language tests [#1177](https://github.com/moment/moment/issues/1177) + * remove some failing tests (that should have never existed :)) + [#1185](https://github.com/moment/moment/issues/1185) + [#1183](https://github.com/moment/moment/issues/1183) + * handle russian noun cases in weird cases [#1195](https://github.com/moment/moment/issues/1195) + +### 2.3.1 + +- Release Oct 9, 2013 + +Removed a trailing comma [1169] and fixed a bug with `months`, `weekdays` getters [#1171](https://github.com/moment/moment/issues/1171). + +### 2.3.0 [See changelog](https://gist.github.com/ichernev/6864354) + +- Release Oct 7, 2013 + +Changed isValid, added strict parsing. +Week tokens parsing. + +### 2.2.1 + +- Release Sep 12, 2013 + +Fixed bug in string prototype test. +Updated authors and contributors. + +### 2.2.0 [See changelog](https://gist.github.com/ichernev/00f837a9baf46a3565e4) + +- Release Sep 11, 2013 + +Added bower support. + +Language files now use UMD. + +Creating moment defaults to current date/month/year. + +Added a bundle of moment and all language files. + +### 2.1.0 [See changelog](https://gist.github.com/timrwood/b8c2d90d528eddb53ab5) + +- Release Jul 8, 2013 + +Added better week support. + +Added ability to set offset with `moment#zone`. + +Added ability to set month or weekday from a string. + +Added `moment#min` and `moment#max` + +### 2.0.0 [See changelog](https://gist.github.com/timrwood/e72f2eef320ed9e37c51) + +- Release Feb 9, 2013 + +Added short form localized tokens. + +Added ability to define language a string should be parsed in. + +Added support for reversed add/subtract arguments. + +Added support for `endOf('week')` and `startOf('week')`. + +Fixed the logic for `moment#diff(Moment, 'months')` and `moment#diff(Moment, 'years')` + +`moment#diff` now floors instead of rounds. + +Normalized `moment#toString`. + +Added `isSame`, `isAfter`, and `isBefore` methods. + +Added better week support. + +Added `moment#toJSON` + +Bugfix: Fixed parsing of first century dates + +Bugfix: Parsing 10Sep2001 should work as expected + +Bugfix: Fixed weirdness with `moment.utc()` parsing. + +Changed language ordinal method to return the number + ordinal instead of just the ordinal. + +Changed two digit year parsing cutoff to match strptime. + +Removed `moment#sod` and `moment#eod` in favor of `moment#startOf` and `moment#endOf`. + +Removed `moment.humanizeDuration()` in favor of `moment.duration().humanize()`. + +Removed the lang data objects from the top level namespace. + +Duplicate `Date` passed to `moment()` instead of referencing it. + +### 1.7.2 [See discussion](https://github.com/timrwood/moment/issues/456) + +- Release Oct 2, 2012 + +Bugfixes + +### 1.7.1 [See discussion](https://github.com/timrwood/moment/issues/384) + +- Release Oct 1, 2012 + +Bugfixes + +### 1.7.0 [See discussion](https://github.com/timrwood/moment/issues/288) + +- Release Jul 26, 2012 + +Added `moment.fn.endOf()` and `moment.fn.startOf()`. + +Added validation via `moment.fn.isValid()`. + +Made formatting method 3x faster. http://jsperf.com/momentjs-cached-format-functions + +Add support for month/weekday callbacks in `moment.fn.format()` + +Added instance specific languages. + +Added two letter weekday abbreviations with the formatting token `dd`. + +Various language updates. + +Various bugfixes. + +### 1.6.0 [See discussion](https://github.com/timrwood/moment/pull/268) + +- Release Apr 26, 2012 + +Added Durations. + +Revamped parser to support parsing non-separated strings (YYYYMMDD vs YYYY-MM-DD). + +Added support for millisecond parsing and formatting tokens (S SS SSS) + +Added a getter for `moment.lang()` + +Various bugfixes. + +There are a few things deprecated in the 1.6.0 release. + +1. The format tokens `z` and `zz` (timezone abbreviations like EST CST MST etc) will no longer be supported. Due to inconsistent browser support, we are unable to consistently produce this value. See [this issue](https://github.com/timrwood/moment/issues/162) for more background. + +2. The method `moment.fn.native` is deprecated in favor of `moment.fn.toDate`. There continue to be issues with Google Closure Compiler throwing errors when using `native`, even in valid instances. + +3. The way to customize am/pm strings is being changed. This would only affect you if you created a custom language file. For more information, see [this issue](https://github.com/timrwood/moment/pull/222). + +### 1.5.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=10&page=1&state=closed) + +- Release Mar 20, 2012 + +Added UTC mode. + +Added automatic ISO8601 parsing. + +Various bugfixes. + +### 1.4.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=8&state=closed) + +- Release Feb 4, 2012 + +Added `moment.fn.toDate` as a replacement for `moment.fn.native`. + +Added `moment.fn.sod` and `moment.fn.eod` to get the start and end of day. + +Various bugfixes. + +### 1.3.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=7&state=closed) + +- Release Jan 5, 2012 + +Added support for parsing month names in the current language. + +Added escape blocks for parsing tokens. + +Added `moment.fn.calendar` to format strings like 'Today 2:30 PM', 'Tomorrow 1:25 AM', and 'Last Sunday 4:30 AM'. + +Added `moment.fn.day` as a setter. + +Various bugfixes + +### 1.2.0 [See milestone](https://github.com/timrwood/moment/issues?milestone=4&state=closed) + +- Release Dec 7, 2011 + +Added timezones to parser and formatter. + +Added `moment.fn.isDST`. + +Added `moment.fn.zone` to get the timezone offset in minutes. + +### 1.1.2 [See milestone](https://github.com/timrwood/moment/issues?milestone=6&state=closed) + +- Release Nov 18, 2011 + +Various bugfixes + +### 1.1.1 [See milestone](https://github.com/timrwood/moment/issues?milestone=5&state=closed) + +- Release Nov 12, 2011 + +Added time specific diffs (months, days, hours, etc) + +### 1.1.0 + +- Release Oct 28, 2011 + +Added `moment.fn.format` localized masks. 'L LL LLL LLLL' [issue 29](https://github.com/timrwood/moment/pull/29) + +Fixed [issue 31](https://github.com/timrwood/moment/pull/31). + +### 1.0.1 + +- Release Oct 18, 2011 + +Added `moment.version` to get the current version. + +Removed `window !== undefined` when checking if module exists to support browserify. [issue 25](https://github.com/timrwood/moment/pull/25) + +### 1.0.0 + +- Release + +Added convenience methods for getting and setting date parts. + +Added better support for `moment.add()`. + +Added better lang support in NodeJS. + +Renamed library from underscore.date to Moment.js + +### 0.6.1 + +- Release Oct 12, 2011 + +Added Portuguese, Italian, and French language support + +### 0.6.0 + +- Release Sep 21, 2011 + +Added _date.lang() support. +Added support for passing multiple formats to try to parse a date. _date("07-10-1986", ["MM-DD-YYYY", "YYYY-MM-DD"]); +Made parse from string and single format 25% faster. + +### 0.5.2 + +- Release Jul 11, 2011 + +Bugfix for [issue 8](https://github.com/timrwood/underscore.date/pull/8) and [issue 9](https://github.com/timrwood/underscore.date/pull/9). + +### 0.5.1 + +- Release Jun 17, 2011 + +Bugfix for [issue 5](https://github.com/timrwood/underscore.date/pull/5). + +### 0.5.0 + +- Release Jun 13, 2011 + +Dropped the redundant `_date.date()` in favor of `_date()`. +Removed `_date.now()`, as it is a duplicate of `_date()` with no parameters. +Removed `_date.isLeapYear(yearNumber)`. Use `_date([yearNumber]).isLeapYear()` instead. +Exposed customization options through the `_date.relativeTime`, `_date.weekdays`, `_date.weekdaysShort`, `_date.months`, `_date.monthsShort`, and `_date.ordinal` variables instead of the `_date.customize()` function. + +### 0.4.1 + +- Release May 9, 2011 + +Added date input formats for input strings. + +### 0.4.0 + +- Release May 9, 2011 + +Added underscore.date to npm. Removed dependencies on underscore. + +### 0.3.2 + +- Release Apr 9, 2011 + +Added `'z'` and `'zz'` to `_.date().format()`. Cleaned up some redundant code to trim off some bytes. + +### 0.3.1 + +- Release Mar 25, 2011 + +Cleaned up the namespace. Moved all date manipulation and display functions to the _.date() object. + +### 0.3.0 + +- Release Mar 25, 2011 + +Switched to the Underscore methodology of not mucking with the native objects' prototypes. +Made chaining possible. + +### 0.2.1 + +- Release + +Changed date names to be a more pseudo standardized 'dddd, MMMM Do YYYY, h:mm:ss a'. +Added `Date.prototype` functions `add`, `subtract`, `isdst`, and `isleapyear`. + +### 0.2.0 + +- Release + +Changed function names to be more concise. +Changed date format from php date format to custom format. + +### 0.1.0 + +- Release + +Initial release + diff --git a/node_modules/moment/LICENSE b/node_modules/moment/LICENSE new file mode 100644 index 0000000..8618b73 --- /dev/null +++ b/node_modules/moment/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) JS Foundation 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/node_modules/moment/README.md b/node_modules/moment/README.md new file mode 100644 index 0000000..38e61bb --- /dev/null +++ b/node_modules/moment/README.md @@ -0,0 +1,55 @@ +# [Moment.js](http://momentjs.com/) + +[![NPM version][npm-version-image]][npm-url] +[![NPM downloads][npm-downloads-image]][npm-downloads-url] +[![MIT License][license-image]][license-url] +[![Build Status][travis-image]][travis-url] +[![Coverage Status][coveralls-image]][coveralls-url] +[![FOSSA Status][fossa-badge-image]][fossa-badge-url] +[![SemVer compatibility][semver-image]][semver-url] + +A JavaScript date library for parsing, validating, manipulating, and formatting dates. + +## Project Status + +Moment.js is a legacy project, now in maintenance mode. In most cases, you should choose a different library. + +For more details and recommendations, please see [Project Status](https://momentjs.com/docs/#/-project-status/) in the docs. + +*Thank you.* + +## Resources + +- [Documentation](https://momentjs.com/docs/) +- [Changelog](CHANGELOG.md) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/momentjs) + +## License + +Moment.js is freely distributable under the terms of the [MIT license][license-url]. + +[![FOSSA Status][fossa-large-image]][fossa-large-url] + +[license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat +[license-url]: LICENSE + +[npm-url]: https://npmjs.org/package/moment +[npm-version-image]: https://img.shields.io/npm/v/moment.svg?style=flat + +[npm-downloads-image]: https://img.shields.io/npm/dm/moment.svg?style=flat +[npm-downloads-url]: https://npmcharts.com/compare/moment?minimal=true + +[travis-url]: https://travis-ci.org/moment/moment +[travis-image]: https://img.shields.io/travis/moment/moment/develop.svg?style=flat + +[coveralls-image]: https://coveralls.io/repos/moment/moment/badge.svg?branch=develop +[coveralls-url]: https://coveralls.io/r/moment/moment?branch=develop + +[fossa-badge-image]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment.svg?type=shield +[fossa-badge-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment?ref=badge_shield + +[fossa-large-image]: https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment.svg?type=large +[fossa-large-url]: https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmoment%2Fmoment?ref=badge_large + +[semver-image]: https://api.dependabot.com/badges/compatibility_score?dependency-name=moment&package-manager=npm_and_yarn&version-scheme=semver +[semver-url]: https://dependabot.com/compatibility-score.html?dependency-name=moment&package-manager=npm_and_yarn&version-scheme=semver diff --git a/node_modules/moment/dist/locale/af.js b/node_modules/moment/dist/locale/af.js new file mode 100644 index 0000000..374d853 --- /dev/null +++ b/node_modules/moment/dist/locale/af.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +import moment from '../moment'; + +export default moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[M么re om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\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 + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-dz.js b/node_modules/moment/dist/locale/ar-dz.js new file mode 100644 index 0000000..12687a6 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-dz.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +import moment from '../moment'; + +var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '噩丕賳賮賷', + '賮賷賮乇賷', + '賲丕乇爻', + '兀賮乇賷賱', + '賲丕賷', + '噩賵丕賳', + '噩賵賷賱賷丞', + '兀賵鬲', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday 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/node_modules/moment/dist/locale/ar-kw.js b/node_modules/moment/dist/locale/ar-kw.js new file mode 100644 index 0000000..c2b0f87 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-kw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +import moment from '../moment'; + +export default moment.defineLocale('ar-kw', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿鬲賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕鬲賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-ly.js b/node_modules/moment/dist/locale/ar-ly.js new file mode 100644 index 0000000..a8d4056 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-ly.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +import moment from '../moment'; + +var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-ma.js b/node_modules/moment/dist/locale/ar-ma.js new file mode 100644 index 0000000..4010aa0 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-ma.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('ar-ma', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕孬賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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/node_modules/moment/dist/locale/ar-sa.js b/node_modules/moment/dist/locale/ar-sa.js new file mode 100644 index 0000000..4505ea1 --- /dev/null +++ b/node_modules/moment/dist/locale/ar-sa.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }; + +export default moment.defineLocale('ar-sa', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ar-tn.js b/node_modules/moment/dist/locale/ar-tn.js new file mode 100644 index 0000000..0f416ae --- /dev/null +++ b/node_modules/moment/dist/locale/ar-tn.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +import moment from '../moment'; + +export default moment.defineLocale('ar-tn', { + months: '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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/node_modules/moment/dist/locale/ar.js b/node_modules/moment/dist/locale/ar.js new file mode 100644 index 0000000..fb430b9 --- /dev/null +++ b/node_modules/moment/dist/locale/ar.js @@ -0,0 +1,189 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/az.js b/node_modules/moment/dist/locale/az.js new file mode 100644 index 0000000..2e06aa1 --- /dev/null +++ b/node_modules/moment/dist/locale/az.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +import moment from '../moment'; + +var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-眉nc眉', + 4: '-眉nc眉', + 100: '-眉nc眉', + 6: '-nc谋', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-谋nc谋', + 90: '-谋nc谋', +}; + +export default moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ert蓹si_脟蓹r艧蓹nb蓹 ax艧am谋_脟蓹r艧蓹nb蓹_C眉m蓹 ax艧am谋_C眉m蓹_艦蓹nb蓹'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_脟Ax_脟蓹r_CAx_C眉m_艦蓹n'.split('_'), + weekdaysMin: 'Bz_BE_脟A_脟蓹_CA_C眉_艦蓹'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[g蓹l蓹n h蓹ft蓹] dddd [saat] LT', + lastDay: '[d眉n蓹n] LT', + lastWeek: '[ke莽蓹n h蓹ft蓹] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 蓹vv蓹l', + s: 'bir ne莽蓹 saniy蓹', + ss: '%d saniy蓹', + m: 'bir d蓹qiq蓹', + mm: '%d d蓹qiq蓹', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gec蓹|s蓹h蓹r|g眉nd眉z|ax艧am/, + isPM: function (input) { + return /^(g眉nd眉z|ax艧am)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gec蓹'; + } else if (hour < 12) { + return 's蓹h蓹r'; + } else if (hour < 17) { + return 'g眉nd眉z'; + } else { + return 'ax艧am'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(谋nc谋|inci|nci|眉nc眉|nc谋|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-谋nc谋'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/be.js b/node_modules/moment/dist/locale/be.js new file mode 100644 index 0000000..4b4d1cb --- /dev/null +++ b/node_modules/moment/dist/locale/be.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elens煤le : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁褨谢褨薪邪_褏胁褨谢褨薪褘_褏胁褨谢褨薪' : '褏胁褨谢褨薪褍_褏胁褨谢褨薪褘_褏胁褨谢褨薪', + hh: withoutSuffix ? '谐邪写蟹褨薪邪_谐邪写蟹褨薪褘_谐邪写蟹褨薪' : '谐邪写蟹褨薪褍_谐邪写蟹褨薪褘_谐邪写蟹褨薪', + dd: '写蟹械薪褜_写薪褨_写蟹褢薪', + MM: '屑械褋褟褑_屑械褋褟褑褘_屑械褋褟褑邪褳', + yy: '谐芯写_谐邪写褘_谐邪写芯褳', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁褨谢褨薪邪' : '褏胁褨谢褨薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐邪写蟹褨薪邪' : '谐邪写蟹褨薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} + +export default moment.defineLocale('be', { + months: { + format: '褋褌褍写蟹械薪褟_谢褞褌邪谐邪_褋邪泻邪胁褨泻邪_泻褉邪褋邪胁褨泻邪_褌褉邪褳薪褟_褔褝褉胁械薪褟_谢褨锌械薪褟_卸薪褨褳薪褟_胁械褉邪褋薪褟_泻邪褋褌褉褘褔薪褨泻邪_谢褨褋褌邪锌邪写邪_褋薪械卸薪褟'.split( + '_' + ), + standalone: + '褋褌褍写蟹械薪褜_谢褞褌褘_褋邪泻邪胁褨泻_泻褉邪褋邪胁褨泻_褌褉邪胁械薪褜_褔褝褉胁械薪褜_谢褨锌械薪褜_卸薪褨胁械薪褜_胁械褉邪褋械薪褜_泻邪褋褌褉褘褔薪褨泻_谢褨褋褌邪锌邪写_褋薪械卸邪薪褜'.split( + '_' + ), + }, + monthsShort: + '褋褌褍写_谢褞褌_褋邪泻_泻褉邪褋_褌褉邪胁_褔褝褉胁_谢褨锌_卸薪褨胁_胁械褉_泻邪褋褌_谢褨褋褌_褋薪械卸'.split('_'), + weekdays: { + format: '薪褟写蟹械谢褞_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写褍_褔邪褑胁械褉_锌褟褌薪褨褑褍_褋褍斜芯褌褍'.split( + '_' + ), + standalone: + '薪褟写蟹械谢褟_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写邪_褔邪褑胁械褉_锌褟褌薪褨褑邪_褋褍斜芯褌邪'.split( + '_' + ), + isFormat: /\[ ?[校褍褳] ?(?:屑褨薪褍谢褍褞|薪邪褋褌褍锌薪褍褞)? ?\] ?dddd/, + }, + weekdaysShort: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., HH:mm', + LLLL: 'dddd, D MMMM YYYY 谐., HH:mm', + }, + calendar: { + sameDay: '[小褢薪薪褟 褳] LT', + nextDay: '[袟邪褳褌褉邪 褳] LT', + lastDay: '[校褔芯褉邪 褳] LT', + nextWeek: function () { + return '[校] dddd [褳] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[校 屑褨薪褍谢褍褞] dddd [褳] LT'; + case 1: + case 2: + case 4: + return '[校 屑褨薪褍谢褘] dddd [褳] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '锌褉邪蟹 %s', + past: '%s 褌邪屑褍', + s: '薪械泻邪谢褜泻褨 褋械泻褍薪写', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: '写蟹械薪褜', + dd: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔褘|褉邪薪褨褑褘|写薪褟|胁械褔邪褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔邪褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褘'; + } else if (hour < 12) { + return '褉邪薪褨褑褘'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔邪褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褨|褘|谐邪)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-褨' + : number + '-褘'; + case 'D': + return number + '-谐邪'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bg.js b/node_modules/moment/dist/locale/bg.js new file mode 100644 index 0000000..e8b060f --- /dev/null +++ b/node_modules/moment/dist/locale/bg.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +import moment from '../moment'; + +export default moment.defineLocale('bg', { + months: '褟薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪泄_褞薪懈_褞谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褟薪褍_褎械胁_屑邪褉_邪锌褉_屑邪泄_褞薪懈_褞谢懈_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢褟_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉褟写邪_褔械褌胁褗褉褌褗泻_锌械褌褗泻_褋褗斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉褟_褔械褌_锌械褌_褋褗斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛薪械褋 胁] LT', + nextDay: '[校褌褉械 胁] LT', + nextWeek: 'dddd [胁] LT', + lastDay: '[袙褔械褉邪 胁] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袦懈薪邪谢邪褌邪] dddd [胁] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袦懈薪邪谢懈褟] dddd [胁] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '褋谢械写 %s', + past: '锌褉械写懈 %s', + s: '薪褟泻芯谢泻芯 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '褔邪褋', + hh: '%d 褔邪褋邪', + d: '写械薪', + dd: '%d 写械薪邪', + w: '褋械写屑懈褑邪', + ww: '%d 褋械写屑懈褑懈', + M: '屑械褋械褑', + MM: '%d 屑械褋械褑邪', + y: '谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bm.js b/node_modules/moment/dist/locale/bm.js new file mode 100644 index 0000000..037d018 --- /dev/null +++ b/node_modules/moment/dist/locale/bm.js @@ -0,0 +1,52 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment +// Language contact person : Abdoufata Kane : https://github.com/abdoufata + +import moment from '../moment'; + +export default moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M蓻kalo_Zuw蓻nkalo_Zuluyekalo_Utikalo_S蓻tanburukalo_蓴kut蓴burukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_M蓻_Zuw_Zul_Uti_S蓻t_蓴ku_Now_Des'.split('_'), + weekdays: 'Kari_Nt蓻n蓻n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Nt蓻_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + }, + calendar: { + sameDay: '[Bi l蓻r蓻] LT', + nextDay: '[Sini l蓻r蓻] LT', + nextWeek: 'dddd [don l蓻r蓻] LT', + lastDay: '[Kunu l蓻r蓻] LT', + lastWeek: 'dddd [t蓻m蓻nen l蓻r蓻] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s k蓴n蓴', + past: 'a b蓻 %s b蓴', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'l蓻r蓻 kelen', + hh: 'l蓻r蓻 %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + 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/node_modules/moment/dist/locale/bn-bd.js b/node_modules/moment/dist/locale/bn-bd.js new file mode 100644 index 0000000..054f44f --- /dev/null +++ b/node_modules/moment/dist/locale/bn-bd.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +import moment from '../moment'; + +var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + +export default moment.defineLocale('bn-bd', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /唳班唳唳唳皘唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳膏Θ唰嵿Η唰嵿Ο唳緗唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '唳班唳') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '唳唳') { + return hour; + } else if (meridiem === '唳膏唳距Σ') { + return hour; + } else if (meridiem === '唳︵唳唳') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === '唳唳曕唳') { + return hour + 12; + } else if (meridiem === '唳膏Θ唰嵿Η唰嵿Ο唳') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 6) { + return '唳唳'; + } else if (hour < 12) { + return '唳膏唳距Σ'; + } else if (hour < 15) { + return '唳︵唳唳'; + } else if (hour < 18) { + return '唳唳曕唳'; + } else if (hour < 20) { + return '唳膏Θ唰嵿Η唰嵿Ο唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bn.js b/node_modules/moment/dist/locale/bn.js new file mode 100644 index 0000000..14ba050 --- /dev/null +++ b/node_modules/moment/dist/locale/bn.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +import moment from '../moment'; + +var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + +export default moment.defineLocale('bn', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /唳班唳唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '唳班唳' && hour >= 4) || + (meridiem === '唳︵唳唳' && hour < 5) || + meridiem === '唳唳曕唳' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 10) { + return '唳膏唳距Σ'; + } else if (hour < 17) { + return '唳︵唳唳'; + } else if (hour < 20) { + return '唳唳曕唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/bo.js b/node_modules/moment/dist/locale/bo.js new file mode 100644 index 0000000..4fbca2e --- /dev/null +++ b/node_modules/moment/dist/locale/bo.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +import moment from '../moment'; + +var symbolMap = { + 1: '嗉', + 2: '嗉', + 3: '嗉', + 4: '嗉', + 5: '嗉', + 6: '嗉', + 7: '嗉', + 8: '嗉', + 9: '嗉', + 0: '嗉', + }, + numberMap = { + '嗉': '1', + '嗉': '2', + '嗉': '3', + '嗉': '4', + '嗉': '5', + '嗉': '6', + '嗉': '7', + '嗉': '8', + '嗉': '9', + '嗉': '0', + }; + +export default moment.defineLocale('bo', { + months: '嘟熰境嗉嬥綎嗉嬥綉嘟勦紜嘟斷郊_嘟熰境嗉嬥綎嗉嬥絺嘟夃讲嘟︵紜嘟擾嘟熰境嗉嬥綎嗉嬥絺嘟︵酱嘟樴紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟炧讲嗉嬥綌_嘟熰境嗉嬥綎嗉嬥剑嗑斷紜嘟擾嘟熰境嗉嬥綎嗉嬥綉嗑侧酱嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟戉酱嘟撪紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟⑧緬嗑编綉嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綉嘟傕酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟呧讲嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟夃讲嘟︵紜嘟'.split( + '_' + ), + monthsShort: + '嘟熰境嗉1_嘟熰境嗉2_嘟熰境嗉3_嘟熰境嗉4_嘟熰境嗉5_嘟熰境嗉6_嘟熰境嗉7_嘟熰境嗉8_嘟熰境嗉9_嘟熰境嗉10_嘟熰境嗉11_嘟熰境嗉12'.split( + '_' + ), + monthsShortRegex: /^(嘟熰境嗉媆d{1,2})/, + monthsParseExact: true, + weekdays: + '嘟傕綗嘟犩紜嘟夃讲嗉嬥綐嗉媉嘟傕綗嘟犩紜嘟熰境嗉嬥綎嗉媉嘟傕綗嘟犩紜嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟傕綗嘟犩紜嘟`痉嘟傕紜嘟斷紜_嘟傕綗嘟犩紜嘟曕酱嘟⑧紜嘟栢酱_嘟傕綗嘟犩紜嘟斷紜嘟︵絼嘟︵紜_嘟傕綗嘟犩紜嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysShort: '嘟夃讲嗉嬥綐嗉媉嘟熰境嗉嬥綎嗉媉嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟`痉嘟傕紜嘟斷紜_嘟曕酱嘟⑧紜嘟栢酱_嘟斷紜嘟︵絼嘟︵紜_嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysMin: '嘟夃讲_嘟熰境_嘟樴讲嘟俖嘟`痉嘟俖嘟曕酱嘟嘟︵絼嘟嘟︵兢嘟亨綋'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嘟戉讲嗉嬥舰嘟侧絼] LT', + nextDay: '[嘟︵絼嗉嬥綁嘟侧綋] LT', + nextWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥舰嗑椸胶嘟︵紜嘟榏, LT', + lastDay: '[嘟佮紜嘟︵絼] LT', + lastWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥綐嘟愢綘嗉嬥綐] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嘟`紜', + past: '%s 嘟︵緮嘟撪紜嘟', + s: '嘟`綐嗉嬥溅嘟', + ss: '%d 嘟︵緪嘟⑧紜嘟嗋紞', + m: '嘟︵緪嘟⑧紜嘟樴紜嘟傕絽嘟侧絺', + mm: '%d 嘟︵緪嘟⑧紜嘟', + h: '嘟嗋酱嗉嬥綒嘟监綉嗉嬥絺嘟呧讲嘟', + hh: '%d 嘟嗋酱嗉嬥綒嘟监綉', + d: '嘟夃讲嘟撪紜嘟傕絽嘟侧絺', + dd: '%d 嘟夃讲嘟撪紜', + M: '嘟熰境嗉嬥綎嗉嬥絺嘟呧讲嘟', + MM: '%d 嘟熰境嗉嬥綎', + y: '嘟`郊嗉嬥絺嘟呧讲嘟', + yy: '%d 嘟`郊', + }, + preparse: function (string) { + return string.replace(/[嗉∴饥嗉`激嗉ム鸡嗉о绩嗉┼紶]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嘟樴綒嘟撪紜嘟樴郊|嘟炧郊嘟傕溅嗉嬥絸嘟嘟夃讲嘟撪紜嘟傕酱嘟剕嘟戉絺嘟监絼嗉嬥綉嘟倈嘟樴綒嘟撪紜嘟樴郊/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '嘟樴綒嘟撪紜嘟樴郊' && hour >= 4) || + (meridiem === '嘟夃讲嘟撪紜嘟傕酱嘟' && hour < 5) || + meridiem === '嘟戉絺嘟监絼嗉嬥綉嘟' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嘟樴綒嘟撪紜嘟樴郊'; + } else if (hour < 10) { + return '嘟炧郊嘟傕溅嗉嬥絸嘟'; + } else if (hour < 17) { + return '嘟夃讲嘟撪紜嘟傕酱嘟'; + } else if (hour < 20) { + return '嘟戉絺嘟监絼嗉嬥綉嘟'; + } else { + return '嘟樴綒嘟撪紜嘟樴郊'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/br.js b/node_modules/moment/dist/locale/br.js new file mode 100644 index 0000000..a7dda49 --- /dev/null +++ b/node_modules/moment/dist/locale/br.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +import moment from '../moment'; + +function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); +} +function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } +} +function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; +} +function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; +} +function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); +} + +var monthsParse = [ + /^gen/i, + /^c[始\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[始\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + +export default moment.defineLocale('br', { + months: 'Genver_C始hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_C始hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Merc始her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warc始hoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Dec始h da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s 始zo', + s: 'un nebeud segondenno霉', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(a帽|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'a帽' : 'vet'; + 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. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, +}); diff --git a/node_modules/moment/dist/locale/bs.js b/node_modules/moment/dist/locale/bs.js new file mode 100644 index 0000000..3d62945 --- /dev/null +++ b/node_modules/moment/dist/locale/bs.js @@ -0,0 +1,150 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Markovi膰 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('bs', { + 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( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[pro拧lu] dddd [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ca.js b/node_modules/moment/dist/locale/ca.js new file mode 100644 index 0000000..0fe9da4 --- /dev/null +++ b/node_modules/moment/dist/locale/ca.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_mar莽_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de mar莽_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[dem脿 a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\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/node_modules/moment/dist/locale/cs.js b/node_modules/moment/dist/locale/cs.js new file mode 100644 index 0000000..7a98aba --- /dev/null +++ b/node_modules/moment/dist/locale/cs.js @@ -0,0 +1,180 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = { + format: 'leden_煤nor_b艡ezen_duben_kv臎ten_膷erven_膷ervenec_srpen_z谩艡铆_艡铆jen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_煤nora_b艡ezna_dubna_kv臎tna_膷ervna_膷ervence_srpna_z谩艡铆_艡铆jna_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_煤no_b艡e_dub_kv臎_膷vn_膷vc_srp_z谩艡_艡铆j_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^煤no/i, + /^b艡e/i, + /^dub/i, + /^kv臎/i, + /^(膷vn|膷erven$|膷ervna)/i, + /^(膷vc|膷ervenec|膷ervence)/i, + /^srp/i, + /^z谩艡/i, + /^艡铆j/i, + /^lis/i, + /^pro/i, + ], + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsRegex = + /^(leden|煤nor|b艡ezen|duben|kv臎ten|膷ervenec|膷ervence|膷erven|膷ervna|srpen|z谩艡铆|艡铆jen|listopad|prosinec|led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sekund' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dn铆'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'm臎s铆c' : 'm臎s铆cem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'm臎s铆ce' : 'm臎s铆c暖'); + } else { + return result + 'm臎s铆ci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } +} + +export default moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|煤nora|煤nor|b艡ezen|b艡ezna|duben|dubna|kv臎ten|kv臎tna|膷ervenec|膷ervence|膷erven|膷ervna|srpen|srpna|z谩艡铆|艡铆jen|艡铆jna|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'ned臎le_pond臎l铆_煤ter媒_st艡eda_膷tvrtek_p谩tek_sobota'.split('_'), + weekdaysShort: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + weekdaysMin: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[z铆tra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v ned臎li v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve st艡edu v] LT'; + case 4: + return '[ve 膷tvrtek v] LT'; + case 5: + return '[v p谩tek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[v膷era v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou ned臎li v] LT'; + case 1: + case 2: + return '[minul茅] dddd [v] LT'; + case 3: + return '[minulou st艡edu v] LT'; + case 4: + case 5: + return '[minul媒] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'p艡ed %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/cv.js b/node_modules/moment/dist/locale/cv.js new file mode 100644 index 0000000..f349157 --- /dev/null +++ b/node_modules/moment/dist/locale/cv.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +import moment from '../moment'; + +export default moment.defineLocale('cv', { + months: '泻討褉谢邪褔_薪邪褉討褋_锌褍褕_邪泻邪_屑邪泄_耀訔褉褌屑械_褍褌討_耀褍褉谢邪_邪胁討薪_褞锌邪_褔映泻_褉邪褕褌邪胁'.split( + '_' + ), + monthsShort: '泻討褉_薪邪褉_锌褍褕_邪泻邪_屑邪泄_耀訔褉_褍褌討_耀褍褉_邪胁薪_褞锌邪_褔映泻_褉邪褕'.split('_'), + weekdays: + '胁褘褉褋邪褉薪懈泻褍薪_褌褍薪褌懈泻褍薪_褘褌谢邪褉懈泻褍薪_褞薪泻褍薪_泻訔耀薪械褉薪懈泻褍薪_褝褉薪械泻褍薪_褕討屑邪褌泻褍薪'.split( + '_' + ), + weekdaysShort: '胁褘褉_褌褍薪_褘褌谢_褞薪_泻訔耀_褝褉薪_褕討屑'.split('_'), + weekdaysMin: '胁褉_褌薪_褘褌_褞薪_泻耀_褝褉_褕屑'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔]', + LLL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + LLLL: 'dddd, YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + }, + calendar: { + sameDay: '[袩邪褟薪] LT [褋械褏械褌褉械]', + nextDay: '[蝎褉邪薪] LT [褋械褏械褌褉械]', + lastDay: '[訓薪械褉] LT [褋械褏械褌褉械]', + nextWeek: '[要懈褌械褋] dddd LT [褋械褏械褌褉械]', + lastWeek: '[袠褉褌薪訔] dddd LT [褋械褏械褌褉械]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /褋械褏械褌$/i.exec(output) + ? '褉械薪' + : /耀褍谢$/i.exec(output) + ? '褌邪薪' + : '褉邪薪'; + return output + affix; + }, + past: '%s 泻邪褟谢谢邪', + s: '锌訔褉-懈泻 耀械泻泻褍薪褌', + ss: '%d 耀械泻泻褍薪褌', + m: '锌訔褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '锌訔褉 褋械褏械褌', + hh: '%d 褋械褏械褌', + d: '锌訔褉 泻褍薪', + dd: '%d 泻褍薪', + M: '锌訔褉 褍泄討褏', + MM: '%d 褍泄討褏', + y: '锌訔褉 耀褍谢', + yy: '%d 耀褍谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-屑訔褕/, + ordinal: '%d-屑訔褕', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/cy.js b/node_modules/moment/dist/locale/cy.js new file mode 100644 index 0000000..e12344a --- /dev/null +++ b/node_modules/moment/dist/locale/cy.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +import moment from '../moment'; + +export default moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn 么l', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\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, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + 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/node_modules/moment/dist/locale/da.js b/node_modules/moment/dist/locale/da.js new file mode 100644 index 0000000..d1fc181 --- /dev/null +++ b/node_modules/moment/dist/locale/da.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +import moment from '../moment'; + +export default moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶n_man_tir_ons_tor_fre_l酶r'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'p氓 dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'f氓 sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'et 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/de-at.js b/node_modules/moment/dist/locale/de-at.js new file mode 100644 index 0000000..8318fec --- /dev/null +++ b/node_modules/moment/dist/locale/de-at.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-at', { + months: 'J盲nner_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'J盲n._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/de-ch.js b/node_modules/moment/dist/locale/de-ch.js new file mode 100644 index 0000000..4e67507 --- /dev/null +++ b/node_modules/moment/dist/locale/de-ch.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-ch', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/de.js b/node_modules/moment/dist/locale/de.js new file mode 100644 index 0000000..cb9c8d5 --- /dev/null +++ b/node_modules/moment/dist/locale/de.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/dv.js b/node_modules/moment/dist/locale/dv.js new file mode 100644 index 0000000..26520d4 --- /dev/null +++ b/node_modules/moment/dist/locale/dv.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +import moment from '../moment'; + +var months = [ + '迻蕃迋蕺迖蕈迌蕞', + '迠蕃迍薨迌蕺迖蕈迌蕞', + '迚蕨迌蕤迼蕺', + '迖蕲迺薨迌蕞迧蕺', + '迚蕲', + '迻瞢迋薨', + '迻蕺迧蕈迖蕤', + '迖薤迬蕈迱薨迵蕺', + '迱蕃迺薨迵蕃迚薨迍蕈迌蕺', + '迖蕻迒薨迵薤迍蕈迌蕺', + '迋蕻迗蕃迚薨迍蕈迌蕺', + '迲蕤迱蕃迚薨迍蕈迌蕺', + ], + weekdays = [ + '迖蕨迡蕤迖薨迣蕈', + '迉薤迚蕈', + '迖蕈迋薨迬蕨迌蕈', + '迍蕺迡蕈', + '迍蕺迌蕨迱薨迠蕈迣蕤', + '迉蕺迒蕺迌蕺', + '迉蕻迋蕤迉蕤迌蕺', + ]; + +export default moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: '迖蕨迡蕤_迉薤迚蕈_迖蕈迋薨_迍蕺迡蕈_迍蕺迌蕨_迉蕺迒蕺_迉蕻迋蕤'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /迚迒|迚迠/, + isPM: function (input) { + return '迚迠' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '迚迒'; + } else { + return '迚迠'; + } + }, + calendar: { + sameDay: '[迚蕤迖蕈迡蕺] LT', + nextDay: '[迚蕨迡蕈迚蕨] LT', + nextWeek: 'dddd LT', + lastDay: '[迖蕤迖薨迶蕃] LT', + lastWeek: '[迠蕨迖蕤迣蕺迗蕤] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '迣蕃迌蕲迬蕈迖蕤 %s', + past: '迒蕺迌蕤迋薨 %s', + s: '迱蕤迒蕺迋薨迣蕺迒蕻迏蕃迖薨', + ss: 'd% 迱蕤迒蕺迋薨迣蕺', + m: '迚蕤迋蕤迵蕃迖薨', + mm: '迚蕤迋蕤迵蕺 %d', + h: '迬蕈迲蕤迖蕤迌蕃迖薨', + hh: '迬蕈迲蕤迖蕤迌蕺 %d', + d: '迡蕺迗蕈迉蕃迖薨', + dd: '迡蕺迗蕈迱薨 %d', + M: '迚蕈迉蕃迖薨', + MM: '迚蕈迱薨 %d', + y: '迖蕈迉蕈迌蕃迖薨', + yy: '迖蕈迉蕈迌蕺 %d', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/el.js b/node_modules/moment/dist/locale/el.js new file mode 100644 index 0000000..8a596f1 --- /dev/null +++ b/node_modules/moment/dist/locale/el.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +import moment from '../moment'; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +export default moment.defineLocale('el', { + monthsNominativeEl: + '螜伪谓慰蠀维蟻喂慰蟼_桅蔚尾蟻慰蠀维蟻喂慰蟼_螠维蟻蟿喂慰蟼_螒蟺蟻委位喂慰蟼_螠维喂慰蟼_螜慰蠉谓喂慰蟼_螜慰蠉位喂慰蟼_螒蠉纬慰蠀蟽蟿慰蟼_危蔚蟺蟿苇渭尾蟻喂慰蟼_螣魏蟿蠋尾蟻喂慰蟼_螡慰苇渭尾蟻喂慰蟼_螖蔚魏苇渭尾蟻喂慰蟼'.split( + '_' + ), + monthsGenitiveEl: + '螜伪谓慰蠀伪蟻委慰蠀_桅蔚尾蟻慰蠀伪蟻委慰蠀_螠伪蟻蟿委慰蠀_螒蟺蟻喂位委慰蠀_螠伪螑慰蠀_螜慰蠀谓委慰蠀_螜慰蠀位委慰蠀_螒蠀纬慰蠉蟽蟿慰蠀_危蔚蟺蟿蔚渭尾蟻委慰蠀_螣魏蟿蠅尾蟻委慰蠀_螡慰蔚渭尾蟻委慰蠀_螖蔚魏蔚渭尾蟻委慰蠀'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: '螜伪谓_桅蔚尾_螠伪蟻_螒蟺蟻_螠伪蠆_螜慰蠀谓_螜慰蠀位_螒蠀纬_危蔚蟺_螣魏蟿_螡慰蔚_螖蔚魏'.split('_'), + weekdays: '螝蠀蟻喂伪魏萎_螖蔚蠀蟿苇蟻伪_韦蟻委蟿畏_韦蔚蟿维蟻蟿畏_螤苇渭蟺蟿畏_螤伪蟻伪蟽魏蔚蠀萎_危维尾尾伪蟿慰'.split( + '_' + ), + weekdaysShort: '螝蠀蟻_螖蔚蠀_韦蟻喂_韦蔚蟿_螤蔚渭_螤伪蟻_危伪尾'.split('_'), + weekdaysMin: '螝蠀_螖蔚_韦蟻_韦蔚_螤蔚_螤伪_危伪'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '渭渭' : '螠螠'; + } else { + return isLower ? '蟺渭' : '螤螠'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === '渭'; + }, + meridiemParse: /[螤螠]\.?螠?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[危萎渭蔚蟻伪 {}] LT', + nextDay: '[螒蠉蟻喂慰 {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[围胃蔚蟼 {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[蟿慰 蟺蟻慰畏纬慰蠉渭蔚谓慰] dddd [{}] LT'; + default: + return '[蟿畏谓 蟺蟻慰畏纬慰蠉渭蔚谓畏] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? '蟽蟿畏' : '蟽蟿喂蟼'); + }, + relativeTime: { + future: '蟽蔚 %s', + past: '%s 蟺蟻喂谓', + s: '位委纬伪 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + ss: '%d 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + m: '苇谓伪 位蔚蟺蟿蠈', + mm: '%d 位蔚蟺蟿维', + h: '渭委伪 蠋蟻伪', + hh: '%d 蠋蟻蔚蟼', + d: '渭委伪 渭苇蟻伪', + dd: '%d 渭苇蟻蔚蟼', + M: '苇谓伪蟼 渭萎谓伪蟼', + MM: '%d 渭萎谓蔚蟼', + y: '苇谓伪蟼 蠂蟻蠈谓慰蟼', + yy: '%d 蠂蟻蠈谓喂伪', + }, + dayOfMonthOrdinalParse: /\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/node_modules/moment/dist/locale/en-au.js b/node_modules/moment/dist/locale/en-au.js new file mode 100644 index 0000000..8ee6197 --- /dev/null +++ b/node_modules/moment/dist/locale/en-au.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +import moment from '../moment'; + +export default moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday 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/node_modules/moment/dist/locale/en-ca.js b/node_modules/moment/dist/locale/en-ca.js new file mode 100644 index 0000000..bc4e9a5 --- /dev/null +++ b/node_modules/moment/dist/locale/en-ca.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/dist/locale/en-gb.js b/node_modules/moment/dist/locale/en-gb.js new file mode 100644 index 0000000..9391cc9 --- /dev/null +++ b/node_modules/moment/dist/locale/en-gb.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/en-ie.js b/node_modules/moment/dist/locale/en-ie.js new file mode 100644 index 0000000..8200e55 --- /dev/null +++ b/node_modules/moment/dist/locale/en-ie.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +import moment from '../moment'; + +export default moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/en-il.js b/node_modules/moment/dist/locale/en-il.js new file mode 100644 index 0000000..ba16f10 --- /dev/null +++ b/node_modules/moment/dist/locale/en-il.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/dist/locale/en-in.js b/node_modules/moment/dist/locale/en-in.js new file mode 100644 index 0000000..7d940d2 --- /dev/null +++ b/node_modules/moment/dist/locale/en-in.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +import moment from '../moment'; + +export default moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/en-nz.js b/node_modules/moment/dist/locale/en-nz.js new file mode 100644 index 0000000..dff324c --- /dev/null +++ b/node_modules/moment/dist/locale/en-nz.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +import moment from '../moment'; + +export default moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/en-sg.js b/node_modules/moment/dist/locale/en-sg.js new file mode 100644 index 0000000..433531e --- /dev/null +++ b/node_modules/moment/dist/locale/en-sg.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +import moment from '../moment'; + +export default moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/eo.js b/node_modules/moment/dist/locale/eo.js new file mode 100644 index 0000000..38d494a --- /dev/null +++ b/node_modules/moment/dist/locale/eo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +import moment from '../moment'; + +export default moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a怒gusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_a怒g_sept_okt_nov_dec'.split('_'), + weekdays: 'diman膲o_lundo_mardo_merkredo_牡a怒do_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_牡a怒_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_牡a_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodia怒 je] LT', + nextDay: '[Morga怒 je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hiera怒 je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'anta怒 %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', 膲ar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/es-do.js b/node_modules/moment/dist/locale/es-do.js new file mode 100644 index 0000000..8c3ccfd --- /dev/null +++ b/node_modules/moment/dist/locale/es-do.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/es-mx.js b/node_modules/moment/dist/locale/es-mx.js new file mode 100644 index 0000000..43dd7cc --- /dev/null +++ b/node_modules/moment/dist/locale/es-mx.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inv谩lida', +}); diff --git a/node_modules/moment/dist/locale/es-us.js b/node_modules/moment/dist/locale/es-us.js new file mode 100644 index 0000000..bac8cd8 --- /dev/null +++ b/node_modules/moment/dist/locale/es-us.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/es.js b/node_modules/moment/dist/locale/es.js new file mode 100644 index 0000000..a3428ad --- /dev/null +++ b/node_modules/moment/dist/locale/es.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napur铆 : https://github.com/julionc + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + invalidDate: 'Fecha inv谩lida', +}); diff --git a/node_modules/moment/dist/locale/et.js b/node_modules/moment/dist/locale/et.js new file mode 100644 index 0000000..5da4ec4 --- /dev/null +++ b/node_modules/moment/dist/locale/et.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['m玫ne sekundi', 'm玫ni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['眉he minuti', '眉ks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['眉he tunni', 'tund aega', '眉ks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['眉he p盲eva', '眉ks p盲ev'], + M: ['kuu aja', 'kuu aega', '眉ks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['眉he aasta', 'aasta', '眉ks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('et', { + months: 'jaanuar_veebruar_m盲rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_m盲rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'p眉hap盲ev_esmasp盲ev_teisip盲ev_kolmap盲ev_neljap盲ev_reede_laup盲ev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[T盲na,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[J盲rgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲rast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d p盲eva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/eu.js b/node_modules/moment/dist/locale/eu.js new file mode 100644 index 0000000..261a17b --- /dev/null +++ b/node_modules/moment/dist/locale/eu.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +import moment from '../moment'; + +export default moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fa.js b/node_modules/moment/dist/locale/fa.js new file mode 100644 index 0000000..52ffb72 --- /dev/null +++ b/node_modules/moment/dist/locale/fa.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +import moment from '../moment'; + +var symbolMap = { + 1: '郾', + 2: '鄄', + 3: '鄢', + 4: '鄞', + 5: '鄣', + 6: '鄱', + 7: '鄯', + 8: '鄹', + 9: '酃', + 0: '郯', + }, + numberMap = { + '郾': '1', + '鄄': '2', + '鄢': '3', + '鄞': '4', + '鄣': '5', + '鄱': '6', + '鄯': '7', + '鄹': '8', + '酃': '9', + '郯': '0', + }; + +export default moment.defineLocale('fa', { + months: '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + monthsShort: + '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + weekdays: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysShort: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysMin: '蹖_丿_爻_趩_倬_噩_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /賯亘賱 丕夭 馗賴乇|亘毓丿 丕夭 馗賴乇/, + isPM: function (input) { + return /亘毓丿 丕夭 馗賴乇/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '賯亘賱 丕夭 馗賴乇'; + } else { + return '亘毓丿 丕夭 馗賴乇'; + } + }, + calendar: { + sameDay: '[丕賲乇賵夭 爻丕毓鬲] LT', + nextDay: '[賮乇丿丕 爻丕毓鬲] LT', + nextWeek: 'dddd [爻丕毓鬲] LT', + lastDay: '[丿蹖乇賵夭 爻丕毓鬲] LT', + lastWeek: 'dddd [倬蹖卮] [爻丕毓鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '丿乇 %s', + past: '%s 倬蹖卮', + s: '趩賳丿 孬丕賳蹖賴', + ss: '%d 孬丕賳蹖賴', + m: '蹖讴 丿賯蹖賯賴', + mm: '%d 丿賯蹖賯賴', + h: '蹖讴 爻丕毓鬲', + hh: '%d 爻丕毓鬲', + d: '蹖讴 乇賵夭', + dd: '%d 乇賵夭', + M: '蹖讴 賲丕賴', + MM: '%d 賲丕賴', + y: '蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string + .replace(/[郯-酃]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + dayOfMonthOrdinalParse: /\d{1,2}賲/, + ordinal: '%d賲', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/fi.js b/node_modules/moment/dist/locale/fi.js new file mode 100644 index 0000000..2e20bff --- /dev/null +++ b/node_modules/moment/dist/locale/fi.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +import moment from '../moment'; + +var numbersPast = + 'nolla yksi kaksi kolme nelj盲 viisi kuusi seitsem盲n kahdeksan yhdeks盲n'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'nelj盲n', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; +function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'p盲iv盲n' : 'p盲iv盲'; + case 'dd': + result = isFuture ? 'p盲iv盲n' : 'p盲iv盲盲'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; +} +function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; +} + +export default moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes盲kuu_hein盲kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kes盲_hein盲_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + 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] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[t盲n盲盲n] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲盲st盲', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/fil.js b/node_modules/moment/dist/locale/fil.js new file mode 100644 index 0000000..e0447aa --- /dev/null +++ b/node_modules/moment/dist/locale/fil.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +import moment from '../moment'; + +export default moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/dist/locale/fo.js b/node_modules/moment/dist/locale/fo.js new file mode 100644 index 0000000..c8fd0bc --- /dev/null +++ b/node_modules/moment/dist/locale/fo.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +import moment from '../moment'; + +export default moment.defineLocale('fo', { + months: 'januar_februar_mars_apr铆l_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_m谩nadagur_t媒sdagur_mikudagur_h贸sdagur_fr铆ggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_t媒s_mik_h贸s_fr铆_ley'.split('_'), + weekdaysMin: 'su_m谩_t媒_mi_h贸_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[脥 dag kl.] LT', + nextDay: '[脥 morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[脥 gj谩r kl.] LT', + lastWeek: '[s铆冒stu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s s铆冒ani', + s: 'f谩 sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein t铆mi', + hh: '%d t铆mar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein m谩na冒ur', + MM: '%d m谩na冒ir', + y: 'eitt 谩r', + yy: '%d 谩r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/fr-ca.js b/node_modules/moment/dist/locale/fr-ca.js new file mode 100644 index 0000000..6187291 --- /dev/null +++ b/node_modules/moment/dist/locale/fr-ca.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('fr-ca', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, +}); diff --git a/node_modules/moment/dist/locale/fr-ch.js b/node_modules/moment/dist/locale/fr-ch.js new file mode 100644 index 0000000..2cc90d8 --- /dev/null +++ b/node_modules/moment/dist/locale/fr-ch.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +import moment from '../moment'; + +export default moment.defineLocale('fr-ch', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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/node_modules/moment/dist/locale/fr.js b/node_modules/moment/dist/locale/fr.js new file mode 100644 index 0000000..a3afb4b --- /dev/null +++ b/node_modules/moment/dist/locale/fr.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +import moment from '../moment'; + +var monthsStrictRegex = + /^(janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsShortStrictRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?)/i, + monthsRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?|janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsParse = [ + /^janv/i, + /^f茅vr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^ao没t/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^d茅c/i, + ]; + +export default moment.defineLocale('fr', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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/node_modules/moment/dist/locale/fy.js b/node_modules/moment/dist/locale/fy.js new file mode 100644 index 0000000..4844587 --- /dev/null +++ b/node_modules/moment/dist/locale/fy.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + +export default moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[么fr没ne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien min煤t', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/dist/locale/ga.js b/node_modules/moment/dist/locale/ga.js new file mode 100644 index 0000000..7f36fb6 --- /dev/null +++ b/node_modules/moment/dist/locale/ga.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : Andr茅 Silva : https://github.com/askpt + +import moment from '../moment'; + +var months = [ + 'Ean谩ir', + 'Feabhra', + 'M谩rta', + 'Aibre谩n', + 'Bealtaine', + 'Meitheamh', + 'I煤il', + 'L煤nasa', + 'Me谩n F贸mhair', + 'Deireadh F贸mhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'M谩rt', + 'Aib', + 'Beal', + 'Meith', + 'I煤il', + 'L煤n', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'D茅 Domhnaigh', + 'D茅 Luain', + 'D茅 M谩irt', + 'D茅 C茅adaoin', + 'D茅ardaoin', + 'D茅 hAoine', + 'D茅 Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'M谩irt', 'C茅ad', 'D茅ar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'M谩', 'C茅', 'D茅', 'A', 'Sa']; + +export default moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Am谩rach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inn茅 ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s 贸 shin', + s: 'c煤pla soicind', + ss: '%d soicind', + m: 'n贸im茅ad', + mm: '%d n贸im茅ad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'l谩', + dd: '%d l谩', + M: 'm铆', + MM: '%d m铆onna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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/node_modules/moment/dist/locale/gd.js b/node_modules/moment/dist/locale/gd.js new file mode 100644 index 0000000..81f735b --- /dev/null +++ b/node_modules/moment/dist/locale/gd.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +import moment from '../moment'; + +var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am M脿rt', + 'An Giblean', + 'An C猫itean', + 'An t-脪gmhios', + 'An t-Iuchar', + 'An L霉nastal', + 'An t-Sultain', + 'An D脿mhair', + 'An t-Samhain', + 'An D霉bhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'M脿rt', + 'Gibl', + 'C猫it', + '脪gmh', + 'Iuch', + 'L霉n', + 'Sult', + 'D脿mh', + 'Samh', + 'D霉bh', + ], + weekdays = [ + 'Did貌mhnaich', + 'Diluain', + 'Dim脿irt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['D貌', 'Lu', 'M脿', 'Ci', 'Ar', 'Ha', 'Sa']; + +export default moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-m脿ireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-d猫 aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'm矛os', + MM: '%d m矛osan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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/node_modules/moment/dist/locale/gl.js b/node_modules/moment/dist/locale/gl.js new file mode 100644 index 0000000..980591c --- /dev/null +++ b/node_modules/moment/dist/locale/gl.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xu帽o_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xu帽._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_m茅rcores_xoves_venres_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._m茅r._xov._ven._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_m茅_xo_ve_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextDay: function () { + return '[ma帽谩 ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? '谩' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/gom-deva.js b/node_modules/moment/dist/locale/gom-deva.js new file mode 100644 index 0000000..294e358 --- /dev/null +++ b/node_modules/moment/dist/locale/gom-deva.js @@ -0,0 +1,126 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['啶ム啶∴く啶 啶膏啶曕啶∴ぞ啶傕え啷', '啶ム啶∴ 啶膏啶曕啶'], + ss: [number + ' 啶膏啶曕啶∴ぞ啶傕え啷', number + ' 啶膏啶曕啶'], + m: ['啶忇啶 啶た啶`啶距え', '啶忇 啶た啶ㄠ啶'], + mm: [number + ' 啶た啶`啶距啶ㄠ', number + ' 啶た啶`啶距'], + h: ['啶忇啶 啶掂ぐ啶距え', '啶忇 啶掂ぐ'], + hh: [number + ' 啶掂ぐ啶距啶ㄠ', number + ' 啶掂ぐ啶距'], + d: ['啶忇啶 啶︵た啶膏ぞ啶', '啶忇 啶︵啶'], + dd: [number + ' 啶︵た啶膏ぞ啶傕え啷', number + ' 啶︵啶'], + M: ['啶忇啶 啶啶灌く啶ㄠ啶ぞ啶', '啶忇 啶啶灌く啶ㄠ'], + MM: [number + ' 啶啶灌く啶ㄠ啶ぞ啶ㄠ', number + ' 啶啶灌く啶ㄠ'], + y: ['啶忇啶 啶掂ぐ啷嵿じ啶距え', '啶忇 啶掂ぐ啷嵿じ'], + yy: [number + ' 啶掂ぐ啷嵿じ啶距啶ㄠ', number + ' 啶掂ぐ啷嵿じ啶距'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-deva', { + months: { + standalone: + '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啷啶瞋啶_啶溹啶╛啶溹啶侧く_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + format: '啶溹ぞ啶ㄠ啶掂ぞ啶班啶氞啶ぞ_啶啶啶班啶掂ぞ啶班啶氞啶ぞ_啶ぞ啶班啶氞ぞ啶氞啶ぞ_啶忇お啷嵿ぐ啷啶侧ぞ啶氞啶ぞ_啶啶ぞ啶氞啶ぞ_啶溹啶ㄠぞ啶氞啶ぞ_啶溹啶侧く啶距啷嵿く啶綺啶戉啶膏啶熰ぞ啶氞啶ぞ_啶膏お啷嵿啷囙啶ぐ啶距啷嵿く啶綺啶戉啷嵿啷嬥が啶班ぞ啶氞啶ぞ_啶ㄠ啶掂啶灌啶傕が啶班ぞ啶氞啶ぞ_啶∴た啶膏啶傕が啶班ぞ啶氞啶ぞ'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶歘啶忇お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋く啶むぞ啶癬啶膏啶ぞ啶癬啶啶椸こ啶距ぐ_啶啶оさ啶距ぐ_啶た啶班啶膏啶むぞ啶癬啶膏啶曕啶班ぞ啶癬啶多啶ㄠさ啶距ぐ'.split('_'), + weekdaysShort: '啶嗋く啶._啶膏啶._啶啶椸こ._啶啶._啶啶班啶膏啶._啶膏啶曕啶._啶多啶.'.split('_'), + weekdaysMin: '啶哶啶膏_啶_啶_啶啶班_啶膏_啶多'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [啶掂ぞ啶溹い啶距]', + LTS: 'A h:mm:ss [啶掂ぞ啶溹い啶距]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [啶掂ぞ啶溹い啶距]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + llll: 'ddd, D MMM YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + }, + calendar: { + sameDay: '[啶嗋く啶淽 LT', + nextDay: '[啶ぞ啶侧啶ぞ啶俔 LT', + nextWeek: '[啶啶∴げ啷媇 dddd[,] LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶熰げ啷媇 dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s 啶嗋う啷啶', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(啶掂啶)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal '啶掂啶' only applies to day of the month + case 'D': + return number + '啶掂啶'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /啶班ぞ啶む|啶膏啶距こ啷啶倈啶︵え啶ぞ啶班ぞ啶倈啶膏ぞ啶傕啷/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶む') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶距こ啷啶') { + return hour; + } else if (meridiem === '啶︵え啶ぞ啶班ぞ啶') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶傕啷') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶む'; + } else if (hour < 12) { + return '啶膏啶距こ啷啶'; + } else if (hour < 16) { + return '啶︵え啶ぞ啶班ぞ啶'; + } else if (hour < 20) { + return '啶膏ぞ啶傕啷'; + } else { + return '啶班ぞ啶む'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/gom-latn.js b/node_modules/moment/dist/locale/gom-latn.js new file mode 100644 index 0000000..d237161 --- /dev/null +++ b/node_modules/moment/dist/locale/gom-latn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/gu.js b/node_modules/moment/dist/locale/gu.js new file mode 100644 index 0000000..d432d2c --- /dev/null +++ b/node_modules/moment/dist/locale/gu.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +import moment from '../moment'; + +var symbolMap = { + 1: '喃', + 2: '喃', + 3: '喃', + 4: '喃', + 5: '喃', + 6: '喃', + 7: '喃', + 8: '喃', + 9: '喃', + 0: '喃', + }, + numberMap = { + '喃': '1', + '喃': '2', + '喃': '3', + '喃': '4', + '喃': '5', + '喃': '6', + '喃': '7', + '喃': '8', + '喃': '9', + '喃': '0', + }; + +export default moment.defineLocale('gu', { + months: '嗒溹嗒ㄠ珝嗒珌嗒嗋喃_嗒珖嗒珝嗒班珌嗒嗋喃_嗒嗒班珝嗒歘嗒忇喃嵿嗒苦_嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧嗒坃嗒戉獥嗒膏珝嗒焈嗒膏喃嵿獰喃囙喃嵿嗒癬嗒戉獣喃嵿獰喃嵿嗒癬嗒ㄠ喃囙喃嵿嗒癬嗒∴嗒膏珖嗒珝嗒'.split( + '_' + ), + monthsShort: + '嗒溹嗒ㄠ珝嗒珌._嗒珖嗒珝嗒班珌._嗒嗒班珝嗒歘嗒忇喃嵿嗒._嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧._嗒戉獥._嗒膏喃嵿獰喃._嗒戉獣喃嵿獰喃._嗒ㄠ喃._嗒∴嗒膏珖.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗒班嗒苦嗒距_嗒膏珛嗒嗒距_嗒獋嗒椸嗒掂嗒癬嗒珌嗒о珝嗒掂嗒癬嗒椸珌嗒班珌嗒掂嗒癬嗒多珌嗒曕珝嗒班嗒距_嗒多嗒苦嗒距'.split( + '_' + ), + weekdaysShort: '嗒班嗒縚嗒膏珛嗒甠嗒獋嗒椸_嗒珌嗒о珝_嗒椸珌嗒班珌_嗒多珌嗒曕珝嗒癬嗒多嗒'.split('_'), + weekdaysMin: '嗒癬嗒膏珛_嗒獋_嗒珌_嗒椸珌_嗒多珌_嗒'.split('_'), + longDateFormat: { + LT: 'A h:mm 嗒掂嗒椸珝嗒珖', + LTS: 'A h:mm:ss 嗒掂嗒椸珝嗒珖', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + LLLL: 'dddd, D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + }, + calendar: { + sameDay: '[嗒嗋獪] LT', + nextDay: '[嗒曕嗒侧珖] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗒椸獓嗒曕嗒侧珖] LT', + lastWeek: '[嗒嗒涏嗒綸 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗒', + past: '%s 嗒喃囙嗒', + s: '嗒呧喃佮獣 嗒喃', + ss: '%d 嗒膏珖嗒曕獋嗒', + m: '嗒忇獣 嗒嗒ㄠ嗒', + mm: '%d 嗒嗒ㄠ嗒', + h: '嗒忇獣 嗒曕嗒距獣', + hh: '%d 嗒曕嗒距獣', + d: '嗒忇獣 嗒︵嗒掂', + dd: '%d 嗒︵嗒掂', + M: '嗒忇獣 嗒嗒苦喃', + MM: '%d 嗒嗒苦喃', + y: '嗒忇獣 嗒掂喃嵿', + yy: '%d 嗒掂喃嵿', + }, + preparse: function (string) { + return string.replace(/[喃о喃┼喃喃喃]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /嗒班嗒嗒喃嬥|嗒膏嗒距|嗒膏嗒傕獪/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗒班嗒') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒距') { + return hour; + } else if (meridiem === '嗒喃嬥') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒傕獪') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗒班嗒'; + } else if (hour < 10) { + return '嗒膏嗒距'; + } else if (hour < 17) { + return '嗒喃嬥'; + } else if (hour < 20) { + return '嗒膏嗒傕獪'; + } else { + return '嗒班嗒'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/he.js b/node_modules/moment/dist/locale/he.js new file mode 100644 index 0000000..08add2c --- /dev/null +++ b/node_modules/moment/dist/locale/he.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +import moment from '../moment'; + +export default moment.defineLocale('he', { + months: '讬谞讜讗专_驻讘专讜讗专_诪专抓_讗驻专讬诇_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙讜住讟_住驻讟诪讘专_讗讜拽讟讜讘专_谞讜讘诪讘专_讚爪诪讘专'.split( + '_' + ), + monthsShort: + '讬谞讜壮_驻讘专壮_诪专抓_讗驻专壮_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙壮_住驻讟壮_讗讜拽壮_谞讜讘壮_讚爪诪壮'.split('_'), + weekdays: '专讗砖讜谉_砖谞讬_砖诇讬砖讬_专讘讬注讬_讞诪讬砖讬_砖讬砖讬_砖讘转'.split('_'), + weekdaysShort: '讗壮_讘壮_讙壮_讚壮_讛壮_讜壮_砖壮'.split('_'), + weekdaysMin: '讗_讘_讙_讚_讛_讜_砖'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [讘]MMMM YYYY', + LLL: 'D [讘]MMMM YYYY HH:mm', + LLLL: 'dddd, D [讘]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[讛讬讜诐 讘志]LT', + nextDay: '[诪讞专 讘志]LT', + nextWeek: 'dddd [讘砖注讛] LT', + lastDay: '[讗转诪讜诇 讘志]LT', + lastWeek: '[讘讬讜诐] dddd [讛讗讞专讜谉 讘砖注讛] LT', + sameElse: 'L', + }, + relativeTime: { + future: '讘注讜讚 %s', + past: '诇驻谞讬 %s', + s: '诪住驻专 砖谞讬讜转', + ss: '%d 砖谞讬讜转', + m: '讚拽讛', + mm: '%d 讚拽讜转', + h: '砖注讛', + hh: function (number) { + if (number === 2) { + return '砖注转讬讬诐'; + } + return number + ' 砖注讜转'; + }, + d: '讬讜诐', + dd: function (number) { + if (number === 2) { + return '讬讜诪讬讬诐'; + } + return number + ' 讬诪讬诐'; + }, + M: '讞讜讚砖', + MM: function (number) { + if (number === 2) { + return '讞讜讚砖讬讬诐'; + } + return number + ' 讞讜讚砖讬诐'; + }, + y: '砖谞讛', + yy: function (number) { + if (number === 2) { + return '砖谞转讬讬诐'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' 砖谞讛'; + } + return number + ' 砖谞讬诐'; + }, + }, + meridiemParse: + /讗讞讛"爪|诇驻谞讛"爪|讗讞专讬 讛爪讛专讬讬诐|诇驻谞讬 讛爪讛专讬讬诐|诇驻谞讜转 讘讜拽专|讘讘讜拽专|讘注专讘/i, + isPM: function (input) { + return /^(讗讞讛"爪|讗讞专讬 讛爪讛专讬讬诐|讘注专讘)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return '诇驻谞讜转 讘讜拽专'; + } else if (hour < 10) { + return '讘讘讜拽专'; + } else if (hour < 12) { + return isLower ? '诇驻谞讛"爪' : '诇驻谞讬 讛爪讛专讬讬诐'; + } else if (hour < 18) { + return isLower ? '讗讞讛"爪' : '讗讞专讬 讛爪讛专讬讬诐'; + } else { + return '讘注专讘'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/hi.js b/node_modules/moment/dist/locale/hi.js new file mode 100644 index 0000000..2e3a973 --- /dev/null +++ b/node_modules/moment/dist/locale/hi.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }, + monthsParse = [ + /^啶溹え/i, + /^啶ぜ啶皘啶ぐ/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶む|啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ|啶ㄠさ啶/i, + /^啶︵た啶膏|啶︵た啶/i, + ], + shortMonthsParse = [ + /^啶溹え/i, + /^啶ぜ啶/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ/i, + /^啶︵た啶/i, + ]; + +export default moment.defineLocale('hi', { + months: { + format: '啶溹え啶掂ぐ啷_啶ぜ啶班さ啶班_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶むぎ啷嵿が啶癬啶呧啷嵿啷傕が啶癬啶ㄠさ啶啶ぐ_啶︵た啶膏ぎ啷嵿が啶'.split( + '_' + ), + standalone: + '啶溹え啶掂ぐ啷_啶ぐ啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶む啶ぐ_啶呧啷嵿啷傕が啶癬啶ㄠさ啶傕が啶癬啶︵た啶膏啶ぐ'.split( + '_' + ), + }, + monthsShort: + '啶溹え._啶ぜ啶._啶ぞ啶班啶歘啶呧お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶呧._啶膏た啶._啶呧啷嵿啷._啶ㄠさ._啶︵た啶.'.split('_'), + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸げ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸げ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶啷', + LTS: 'A h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶啷', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsShortRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsStrictRegex: + /^(啶溹え啶掂ぐ啷?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ?|啶?|啶溹啶?|啶溹啶侧ぞ啶?|啶呧啶膏啶?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶?\.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ?)/i, + + monthsShortStrictRegex: + /^(啶溹え\.?|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶瞈.?|啶呧\.?|啶膏た啶.?|啶呧啷嵿啷俓.?|啶ㄠさ\.?|啶︵た啶竆.?)/i, + + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶曕げ] LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕げ] LT', + lastWeek: '[啶た啶涏げ啷嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啶啶', + past: '%s 啶す啶侧', + s: '啶曕啶 啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶', + m: '啶忇 啶た啶ㄠ', + mm: '%d 啶た啶ㄠ', + h: '啶忇 啶樴啶熰ぞ', + hh: '%d 啶樴啶熰', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啷啶ㄠ', + MM: '%d 啶す啷啶ㄠ', + y: '啶忇 啶掂ぐ啷嵿し', + yy: '%d 啶掂ぐ啷嵿し', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /啶班ぞ啶啶膏啶す|啶︵啶す啶皘啶多ぞ啶/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶す') { + return hour; + } else if (meridiem === '啶︵啶す啶') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶多ぞ啶') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶'; + } else if (hour < 10) { + return '啶膏啶す'; + } else if (hour < 17) { + return '啶︵啶す啶'; + } else if (hour < 20) { + return '啶多ぞ啶'; + } else { + return '啶班ぞ啶'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/hr.js b/node_modules/moment/dist/locale/hr.js new file mode 100644 index 0000000..48c1e9e --- /dev/null +++ b/node_modules/moment/dist/locale/hr.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Markovi膰 : https://github.com/bmarkovic + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('hr', { + months: { + format: 'sije膷nja_velja膷e_o啪ujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'sije膷anj_velja膷a_o啪ujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._o啪u._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[pro拧lu] [nedjelju] [u] LT'; + case 3: + return '[pro拧lu] [srijedu] [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/hu.js b/node_modules/moment/dist/locale/hu.js new file mode 100644 index 0000000..f2f5981 --- /dev/null +++ b/node_modules/moment/dist/locale/hu.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +import moment from '../moment'; + +var weekEndings = + 'vas谩rnap h茅tf艖n kedden szerd谩n cs眉t枚rt枚k枚n p茅nteken szombaton'.split(' '); +function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'n茅h谩ny m谩sodperc' + : 'n茅h谩ny m谩sodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' m谩sodperc' + : ' m谩sodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + } + return ''; +} +function week(isFuture) { + return ( + (isFuture ? '' : '[m煤lt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); +} + +export default moment.defineLocale('hu', { + months: 'janu谩r_febru谩r_m谩rcius_谩prilis_m谩jus_j煤nius_j煤lius_augusztus_szeptember_okt贸ber_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._m谩rc._谩pr._m谩j._j煤n._j煤l._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vas谩rnap_h茅tf艖_kedd_szerda_cs眉t枚rt枚k_p茅ntek_szombat'.split('_'), + weekdaysShort: 'vas_h茅t_kedd_sze_cs眉t_p茅n_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s m煤lva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/hy-am.js b/node_modules/moment/dist/locale/hy-am.js new file mode 100644 index 0000000..283cfbd --- /dev/null +++ b/node_modules/moment/dist/locale/hy-am.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +import moment from '../moment'; + +export default moment.defineLocale('hy-am', { + months: { + format: '瞻崭謧斩站铡謤斋_謨榨湛謤站铡謤斋_沾铡謤湛斋_铡蘸謤斋宅斋_沾铡盏斋战斋_瞻崭謧斩斋战斋_瞻崭謧宅斋战斋_謪眨崭战湛崭战斋_战榨蘸湛榨沾闸榨謤斋_瞻崭寨湛榨沾闸榨謤斋_斩崭盏榨沾闸榨謤斋_栅榨寨湛榨沾闸榨謤斋'.split( + '_' + ), + standalone: + '瞻崭謧斩站铡謤_謨榨湛謤站铡謤_沾铡謤湛_铡蘸謤斋宅_沾铡盏斋战_瞻崭謧斩斋战_瞻崭謧宅斋战_謪眨崭战湛崭战_战榨蘸湛榨沾闸榨謤_瞻崭寨湛榨沾闸榨謤_斩崭盏榨沾闸榨謤_栅榨寨湛榨沾闸榨謤'.split( + '_' + ), + }, + monthsShort: '瞻斩站_謨湛謤_沾謤湛_铡蘸謤_沾盏战_瞻斩战_瞻宅战_謪眨战_战蘸湛_瞻寨湛_斩沾闸_栅寨湛'.split('_'), + weekdays: + '寨斋謤铡寨斋_榨謤寨崭謧辗铡闸诈斋_榨謤榨謩辗铡闸诈斋_展崭謤榨謩辗铡闸诈斋_瞻斋斩眨辗铡闸诈斋_崭謧謤闸铡诈_辗铡闸铡诈'.split( + '_' + ), + weekdaysShort: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + weekdaysMin: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 诈.', + LLL: 'D MMMM YYYY 诈., HH:mm', + LLLL: 'dddd, D MMMM YYYY 诈., HH:mm', + }, + calendar: { + sameDay: '[铡盏战謪謤] LT', + nextDay: '[站铡詹炸] LT', + lastDay: '[榨謤榨寨] LT', + nextWeek: function () { + return 'dddd [謪謤炸 摘铡沾炸] LT'; + }, + lastWeek: function () { + return '[铡斩謥铡债] dddd [謪謤炸 摘铡沾炸] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s 瞻榨湛崭', + past: '%s 铡占铡栈', + s: '沾斋 謩铡斩斋 站铡盏謤寨盏铡斩', + ss: '%d 站铡盏謤寨盏铡斩', + m: '謤崭蘸榨', + mm: '%d 謤崭蘸榨', + h: '摘铡沾', + hh: '%d 摘铡沾', + d: '謪謤', + dd: '%d 謪謤', + M: '铡沾斋战', + MM: '%d 铡沾斋战', + y: '湛铡謤斋', + yy: '%d 湛铡謤斋', + }, + meridiemParse: /眨斋辗榨謤站铡|铡占铡站崭湛站铡|謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩/, + isPM: function (input) { + return /^(謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return '眨斋辗榨謤站铡'; + } else if (hour < 12) { + return '铡占铡站崭湛站铡'; + } else if (hour < 17) { + return '謥榨謤榨寨站铡'; + } else { + return '榨謤榨寨崭盏铡斩'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(斋斩|謤栅)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-斋斩'; + } + return number + '-謤栅'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/id.js b/node_modules/moment/dist/locale/id.js new file mode 100644 index 0000000..3260e1c --- /dev/null +++ b/node_modules/moment/dist/locale/id.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +import moment from '../moment'; + +export default moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/is.js b/node_modules/moment/dist/locale/is.js new file mode 100644 index 0000000..d2c6f47 --- /dev/null +++ b/node_modules/moment/dist/locale/is.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik 脰rn Sigur冒sson : https://github.com/hinrik + +import moment from '../moment'; + +function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sek煤ndur' + : 'nokkrum sek煤ndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sek煤ndur' : 'sek煤ndum') + ); + } + return result + 'sek煤nda'; + case 'm': + return withoutSuffix ? 'm铆n煤ta' : 'm铆n煤tu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'm铆n煤tur' : 'm铆n煤tum') + ); + } else if (withoutSuffix) { + return result + 'm铆n煤ta'; + } + return result + 'm铆n煤tu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'd枚gum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'm谩nu冒ur'; + } + return isFuture ? 'm谩nu冒' : 'm谩nu冒i'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'm谩nu冒ir'; + } + return result + (isFuture ? 'm谩nu冒i' : 'm谩nu冒um'); + } else if (withoutSuffix) { + return result + 'm谩nu冒ur'; + } + return result + (isFuture ? 'm谩nu冒' : 'm谩nu冒i'); + case 'y': + return withoutSuffix || isFuture ? '谩r' : '谩ri'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? '谩r' : '谩rum'); + } + return result + (withoutSuffix || isFuture ? '谩r' : '谩ri'); + } +} + +export default moment.defineLocale('is', { + months: 'jan煤ar_febr煤ar_mars_apr铆l_ma铆_j煤n铆_j煤l铆_谩g煤st_september_okt贸ber_n贸vember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_ma铆_j煤n_j煤l_谩g煤_sep_okt_n贸v_des'.split('_'), + weekdays: + 'sunnudagur_m谩nudagur_镁ri冒judagur_mi冒vikudagur_fimmtudagur_f枚studagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_镁ri_mi冒_fim_f枚s_lau'.split('_'), + weekdaysMin: 'Su_M谩_脼r_Mi_Fi_F枚_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[铆 dag kl.] LT', + nextDay: '[谩 morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[铆 g忙r kl.] LT', + lastWeek: '[s铆冒asta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s s铆冒an', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/it-ch.js b/node_modules/moment/dist/locale/it-ch.js new file mode 100644 index 0000000..3437453 --- /dev/null +++ b/node_modules/moment/dist/locale/it-ch.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +import moment from '../moment'; + +export default moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri 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: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/it.js b/node_modules/moment/dist/locale/it.js new file mode 100644 index 0000000..46aaccf --- /dev/null +++ b/node_modules/moment/dist/locale/it.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +import moment from '../moment'; + +export default moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/ja.js b/node_modules/moment/dist/locale/ja.js new file mode 100644 index 0000000..abe921a --- /dev/null +++ b/node_modules/moment/dist/locale/ja.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +import moment from '../moment'; + +export default moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '浠ゅ拰', + narrow: '銒', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '骞虫垚', + narrow: '銔', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '鏄拰', + narrow: '銔', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '澶ф', + narrow: '銔', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '鏄庢不', + narrow: '銔', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '瑗挎殾', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '绱鍏冨墠', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(鍏億\d+)骞/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '鍏' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split('_'), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏃ユ洔鏃鏈堟洔鏃鐏洔鏃姘存洔鏃鏈ㄦ洔鏃閲戞洔鏃鍦熸洔鏃'.split('_'), + weekdaysShort: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + weekdaysMin: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃(ddd) HH:mm', + }, + meridiemParse: /鍗堝墠|鍗堝緦/i, + isPM: function (input) { + return input === '鍗堝緦'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '鍗堝墠'; + } else { + return '鍗堝緦'; + } + }, + calendar: { + sameDay: '[浠婃棩] LT', + nextDay: '[鏄庢棩] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[鏉ラ盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[鏄ㄦ棩] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[鍏堥盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}鏃/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '鍏冨勾' : number + '骞'; + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '鏁扮', + ss: '%d绉', + m: '1鍒', + mm: '%d鍒', + h: '1鏅傞枔', + hh: '%d鏅傞枔', + d: '1鏃', + dd: '%d鏃', + M: '1銉舵湀', + MM: '%d銉舵湀', + y: '1骞', + yy: '%d骞', + }, +}); diff --git a/node_modules/moment/dist/locale/jv.js b/node_modules/moment/dist/locale/jv.js new file mode 100644 index 0000000..b52f48d --- /dev/null +++ b/node_modules/moment/dist/locale/jv.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +import moment from '../moment'; + +export default moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ka.js b/node_modules/moment/dist/locale/ka.js new file mode 100644 index 0000000..15b6ead --- /dev/null +++ b/node_modules/moment/dist/locale/ka.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +import moment from '../moment'; + +export default moment.defineLocale('ka', { + months: '醿樶儛醿溼儠醿愥儬醿榑醿椺償醿戓償醿犪儠醿愥儦醿榑醿涐儛醿犪儮醿榑醿愥優醿犪儤醿氠儤_醿涐儛醿樶儭醿榑醿樶儠醿溼儤醿♂儤_醿樶儠醿氠儤醿♂儤_醿愥儝醿曖儤醿♂儮醿漘醿♂償醿メ儮醿斸儧醿戓償醿犪儤_醿濁儱醿⑨儩醿涐儜醿斸儬醿榑醿溼儩醿斸儧醿戓償醿犪儤_醿撫償醿欋償醿涐儜醿斸儬醿'.split( + '_' + ), + monthsShort: '醿樶儛醿淿醿椺償醿慱醿涐儛醿燺醿愥優醿燺醿涐儛醿榑醿樶儠醿淿醿樶儠醿歘醿愥儝醿昣醿♂償醿醿濁儱醿醿溼儩醿擾醿撫償醿'.split('_'), + weekdays: { + standalone: + '醿欋儠醿樶儬醿恄醿濁儬醿ㄡ儛醿戓儛醿椺儤_醿♂儛醿涐儴醿愥儜醿愥儣醿榑醿濁儣醿儴醿愥儜醿愥儣醿榑醿儯醿椺儴醿愥儜醿愥儣醿榑醿炨儛醿犪儛醿♂儥醿斸儠醿榑醿ㄡ儛醿戓儛醿椺儤'.split( + '_' + ), + format: '醿欋儠醿樶儬醿愥儭_醿濁儬醿ㄡ儛醿戓儛醿椺儭_醿♂儛醿涐儴醿愥儜醿愥儣醿醿濁儣醿儴醿愥儜醿愥儣醿醿儯醿椺儴醿愥儜醿愥儣醿醿炨儛醿犪儛醿♂儥醿斸儠醿醿ㄡ儛醿戓儛醿椺儭'.split( + '_' + ), + isFormat: /(醿儤醿溼儛|醿ㄡ償醿涐儞醿斸儝)/, + }, + weekdaysShort: '醿欋儠醿榑醿濁儬醿╛醿♂儛醿沖醿濁儣醿甠醿儯醿梍醿炨儛醿燺醿ㄡ儛醿'.split('_'), + weekdaysMin: '醿欋儠_醿濁儬_醿♂儛_醿濁儣_醿儯_醿炨儛_醿ㄡ儛'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醿撫儲醿斸儭] LT[-醿栣償]', + nextDay: '[醿儠醿愥儦] LT[-醿栣償]', + lastDay: '[醿掅儯醿ㄡ儤醿淽 LT[-醿栣償]', + nextWeek: '[醿ㄡ償醿涐儞醿斸儝] dddd LT[-醿栣償]', + lastWeek: '[醿儤醿溼儛] dddd LT-醿栣償', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(醿儛醿泑醿儯醿梶醿♂儛醿愥儣|醿償醿殀醿撫儲|醿椺儠)(醿榺醿)/, + function ($0, $1, $2) { + return $2 === '醿' ? $1 + '醿ㄡ儤' : $1 + $2 + '醿ㄡ儤'; + } + ); + }, + past: function (s) { + if (/(醿儛醿涐儤|醿儯醿椺儤|醿♂儛醿愥儣醿榺醿撫儲醿攟醿椺儠醿)/.test(s)) { + return s.replace(/(醿榺醿)$/, '醿樶儭 醿儤醿'); + } + if (/醿償醿氠儤/.test(s)) { + return s.replace(/醿償醿氠儤$/, '醿儦醿樶儭 醿儤醿'); + } + return s; + }, + s: '醿犪儛醿涐儞醿斸儨醿樶儧醿 醿儛醿涐儤', + ss: '%d 醿儛醿涐儤', + m: '醿儯醿椺儤', + mm: '%d 醿儯醿椺儤', + h: '醿♂儛醿愥儣醿', + hh: '%d 醿♂儛醿愥儣醿', + d: '醿撫儲醿', + dd: '%d 醿撫儲醿', + M: '醿椺儠醿', + MM: '%d 醿椺儠醿', + y: '醿償醿氠儤', + yy: '%d 醿償醿氠儤', + }, + dayOfMonthOrdinalParse: /0|1-醿氠儤|醿涐償-\d{1,2}|\d{1,2}-醿/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-醿氠儤'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return '醿涐償-' + number; + } + return number + '-醿'; + }, + week: { + dow: 1, + doy: 7, + }, +}); diff --git a/node_modules/moment/dist/locale/kk.js b/node_modules/moment/dist/locale/kk.js new file mode 100644 index 0000000..9cab152 --- /dev/null +++ b/node_modules/moment/dist/locale/kk.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +import moment from '../moment'; + +var suffixes = { + 0: '-褕褨', + 1: '-褕褨', + 2: '-褕褨', + 3: '-褕褨', + 4: '-褕褨', + 5: '-褕褨', + 6: '-褕褘', + 7: '-褕褨', + 8: '-褕褨', + 9: '-褕褘', + 10: '-褕褘', + 20: '-褕褘', + 30: '-褕褘', + 40: '-褕褘', + 50: '-褕褨', + 60: '-褕褘', + 70: '-褕褨', + 80: '-褕褨', + 90: '-褕褘', + 100: '-褕褨', +}; + +export default moment.defineLocale('kk', { + months: '覜邪遥褌邪褉_邪覜锌邪薪_薪邪褍褉褘蟹_褋訖褍褨褉_屑邪屑褘褉_屑邪褍褋褘屑_褕褨谢写械_褌邪屑褘蟹_覜褘褉泻爷泄械泻_覜邪蟹邪薪_覜邪褉邪褕邪_卸械谢褌芯覜褋邪薪'.split( + '_' + ), + monthsShort: '覜邪遥_邪覜锌_薪邪褍_褋訖褍_屑邪屑_屑邪褍_褕褨谢_褌邪屑_覜褘褉_覜邪蟹_覜邪褉_卸械谢'.split('_'), + weekdays: '卸械泻褋械薪斜褨_写爷泄褋械薪斜褨_褋械泄褋械薪斜褨_褋訖褉褋械薪斜褨_斜械泄褋械薪斜褨_卸冶屑邪_褋械薪斜褨'.split( + '_' + ), + weekdaysShort: '卸械泻_写爷泄_褋械泄_褋訖褉_斜械泄_卸冶屑_褋械薪'.split('_'), + weekdaysMin: '卸泻_写泄_褋泄_褋褉_斜泄_卸屑_褋薪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐褨薪 褋邪覔邪褌] LT', + nextDay: '[袝褉褌械遥 褋邪覔邪褌] LT', + nextWeek: 'dddd [褋邪覔邪褌] LT', + lastDay: '[袣械褕械 褋邪覔邪褌] LT', + lastWeek: '[莹褌泻械薪 邪锌褌邪薪褘遥] dddd [褋邪覔邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 褨褕褨薪写械', + past: '%s 斜冶褉褘薪', + s: '斜褨褉薪械褕械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜褨褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '斜褨褉 褋邪覔邪褌', + hh: '%d 褋邪覔邪褌', + d: '斜褨褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜褨褉 邪泄', + MM: '%d 邪泄', + y: '斜褨褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褕褨|褕褘)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/km.js b/node_modules/moment/dist/locale/km.js new file mode 100644 index 0000000..984c4dc --- /dev/null +++ b/node_modules/moment/dist/locale/km.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +import moment from '../moment'; + +var symbolMap = { + 1: '釤', + 2: '釤', + 3: '釤', + 4: '釤', + 5: '釤', + 6: '釤', + 7: '釤', + 8: '釤', + 9: '釤', + 0: '釤', + }, + numberMap = { + '釤': '1', + '釤': '2', + '釤': '3', + '釤': '4', + '釤': '5', + '釤': '6', + '釤': '7', + '釤': '8', + '釤': '9', + '釤': '0', + }; + +export default moment.defineLocale('km', { + months: '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + monthsShort: + '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + weekdays: '釣⑨灦釣戓灧釣忈煉釣檁釣呩煇釣撫煉釣慱釣⑨瀯釤掅瀭釣夺灇_釣栣灮釣抇釣栣煉釣氠灎釣熱煉釣斸瀼釣丰煃_釣熱灮釣釤掅灇_釣熱焻釣氠煃'.split('_'), + weekdaysShort: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysMin: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /釣栣煉釣氠灩釣|釣涐煉釣勧灦釣/, + isPM: function (input) { + return input === '釣涐煉釣勧灦釣'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '釣栣煉釣氠灩釣'; + } else { + return '釣涐煉釣勧灦釣'; + } + }, + calendar: { + sameDay: '[釣愥煉釣勧焹釣撫焷釤 釣樶焿釤勧瀯] LT', + nextDay: '[釣熱煉釣⑨焸釣 釣樶焿釤勧瀯] LT', + nextWeek: 'dddd [釣樶焿釤勧瀯] LT', + lastDay: '[釣樶煉釣熱灧釣涐灅釣丰瀴 釣樶焿釤勧瀯] LT', + lastWeek: 'dddd [釣熱灁釤掅瀼釣夺灎釤嶀灅釣会灀] [釣樶焿釤勧瀯] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s釣戓焵釣', + past: '%s釣樶灮釣', + s: '釣斸焿釣会灀釤掅灅釣夺灀釣溼灧釣撫灦釣戓灨', + ss: '%d 釣溼灧釣撫灦釣戓灨', + m: '釣樶灲釣欋灀釣夺瀾釣', + mm: '%d 釣撫灦釣戓灨', + h: '釣樶灲釣欋灅釤夅焺釣', + hh: '%d 釣樶焿釤勧瀯', + d: '釣樶灲釣欋瀽釤掅瀯釤', + dd: '%d 釣愥煉釣勧焹', + M: '釣樶灲釣欋瀬釤', + MM: '%d 釣佱焸', + y: '釣樶灲釣欋瀱釤掅灀釣夺焼', + yy: '%d 釣嗎煉釣撫灦釤', + }, + dayOfMonthOrdinalParse: /釣戓灨\d{1,2}/, + ordinal: '釣戓灨%d', + preparse: function (string) { + return string.replace(/[釤♂煝釤a煠釤メ煢釤п煥釤┽煚]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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/node_modules/moment/dist/locale/kn.js b/node_modules/moment/dist/locale/kn.js new file mode 100644 index 0000000..e7cb354 --- /dev/null +++ b/node_modules/moment/dist/locale/kn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +import moment from '../moment'; + +var symbolMap = { + 1: '喑', + 2: '喑', + 3: '喑', + 4: '喑', + 5: '喑', + 6: '喑', + 7: '喑', + 8: '喑', + 9: '喑', + 0: '喑', + }, + numberMap = { + '喑': '1', + '喑': '2', + '喑': '3', + '喑': '4', + '喑': '5', + '喑': '6', + '喑': '7', + '喑': '8', + '喑': '9', + '喑': '0', + }; + +export default moment.defineLocale('kn', { + months: '嗖溹波嗖掂舶嗖縚嗖硢嗖硩嗖班驳嗖班部_嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖傕铂嗖班硩_嗖呧矔喑嵿矡喑嗋硞喑曕铂嗖班硩_嗖ㄠ驳喑嗋矀嗖舶喑峗嗖∴部嗖膏硢嗖傕铂嗖班硩'.split( + '_' + ), + monthsShort: + '嗖溹波_嗖硢嗖硩嗖癬嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖俖嗖呧矔喑嵿矡喑嗋硞喑昣嗖ㄠ驳喑嗋矀_嗖∴部嗖膏硢嗖'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗖簿嗖ㄠ硜嗖掂簿嗖癬嗖膏硢喑傕硶嗖驳嗖距舶_嗖矀嗖椸渤嗖掂簿嗖癬嗖硜嗖о驳嗖距舶_嗖椸硜嗖班硜嗖掂簿嗖癬嗖多硜嗖曕硩嗖班驳嗖距舶_嗖多波嗖苦驳嗖距舶'.split( + '_' + ), + weekdaysShort: '嗖簿嗖ㄠ硜_嗖膏硢喑傕硶嗖甠嗖矀嗖椸渤_嗖硜嗖嗖椸硜嗖班硜_嗖多硜嗖曕硩嗖癬嗖多波嗖'.split('_'), + weekdaysMin: '嗖簿_嗖膏硢喑傕硶_嗖矀_嗖硜_嗖椸硜_嗖多硜_嗖'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嗖囙矀嗖︵硜] LT', + nextDay: '[嗖ㄠ簿嗖赤硢] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗖ㄠ部嗖ㄠ硩嗖ㄠ硢] LT', + lastWeek: '[嗖曕硢喑傕波喑嗋帛] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗖ㄠ矀嗖む舶', + past: '%s 嗖灌部嗖傕拨喑', + s: '嗖曕硢嗖侧驳喑 嗖曕硩嗖粪玻嗖椸渤喑', + ss: '%d 嗖膏硢嗖曕硢嗖傕病喑佮矖嗖赤硜', + m: '嗖掄矀嗖︵硜 嗖ㄠ部嗖部嗖', + mm: '%d 嗖ㄠ部嗖部嗖', + h: '嗖掄矀嗖︵硜 嗖椸矀嗖熰硢', + hh: '%d 嗖椸矀嗖熰硢', + d: '嗖掄矀嗖︵硜 嗖︵部嗖', + dd: '%d 嗖︵部嗖', + M: '嗖掄矀嗖︵硜 嗖む部嗖傕矖嗖赤硜', + MM: '%d 嗖む部嗖傕矖嗖赤硜', + y: '嗖掄矀嗖︵硜 嗖掂舶喑嵿卜', + yy: '%d 嗖掂舶喑嵿卜', + }, + preparse: function (string) { + return string.replace(/[喑о敞喑┼唱喑超喑钞喑肠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嗖班簿嗖む硩嗖班部|嗖硢嗖赤部嗖椸硩嗖椸硢|嗖钵喑嵿帛嗖距补喑嵿波|嗖膏矀嗖溹硢/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗖班簿嗖む硩嗖班部') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗖硢嗖赤部嗖椸硩嗖椸硢') { + return hour; + } else if (meridiem === '嗖钵喑嵿帛嗖距补喑嵿波') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗖膏矀嗖溹硢') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗖班簿嗖む硩嗖班部'; + } else if (hour < 10) { + return '嗖硢嗖赤部嗖椸硩嗖椸硢'; + } else if (hour < 17) { + return '嗖钵喑嵿帛嗖距补喑嵿波'; + } else if (hour < 20) { + return '嗖膏矀嗖溹硢'; + } else { + return '嗖班簿嗖む硩嗖班部'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(嗖ㄠ硢喑)/, + ordinal: function (number) { + return number + '嗖ㄠ硢喑'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ko.js b/node_modules/moment/dist/locale/ko.js new file mode 100644 index 0000000..c45f3e3 --- /dev/null +++ b/node_modules/moment/dist/locale/ko.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +import moment from '../moment'; + +export default moment.defineLocale('ko', { + months: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split('_'), + monthsShort: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split( + '_' + ), + weekdays: '鞚检殧鞚糭鞗旍殧鞚糭頇旍殧鞚糭靾橃殧鞚糭氇╈殧鞚糭旮堨殧鞚糭韱犾殧鞚'.split('_'), + weekdaysShort: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + weekdaysMin: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY雲 MMMM D鞚', + LLL: 'YYYY雲 MMMM D鞚 A h:mm', + LLLL: 'YYYY雲 MMMM D鞚 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY雲 MMMM D鞚', + lll: 'YYYY雲 MMMM D鞚 A h:mm', + llll: 'YYYY雲 MMMM D鞚 dddd A h:mm', + }, + calendar: { + sameDay: '鞓る姌 LT', + nextDay: '雮挫澕 LT', + nextWeek: 'dddd LT', + lastDay: '鞏挫牅 LT', + lastWeek: '歆雮滌< dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 頉', + past: '%s 鞝', + s: '氇 齑', + ss: '%d齑', + m: '1攵', + mm: '%d攵', + h: '頃 鞁滉皠', + hh: '%d鞁滉皠', + d: '頃橂(', + dd: '%d鞚', + M: '頃 雼', + MM: '%d雼', + y: '鞚 雲', + yy: '%d雲', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鞚紎鞗攟欤)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鞚'; + case 'M': + return number + '鞗'; + case 'w': + case 'W': + return number + '欤'; + default: + return number; + } + }, + meridiemParse: /鞓れ爠|鞓ろ泟/, + isPM: function (token) { + return token === '鞓ろ泟'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '鞓れ爠' : '鞓ろ泟'; + }, +}); diff --git a/node_modules/moment/dist/locale/ku.js b/node_modules/moment/dist/locale/ku.js new file mode 100644 index 0000000..e705f01 --- /dev/null +++ b/node_modules/moment/dist/locale/ku.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + months = [ + '讴丕賳賵賳蹖 丿賵賵蹠賲', + '卮賵亘丕鬲', + '卅丕夭丕乇', + '賳蹖爻丕賳', + '卅丕蹖丕乇', + '丨賵夭蹠蹖乇丕賳', + '鬲蹠賲賲賵夭', + '卅丕亘', + '卅蹠蹖賱賵賵賱', + '鬲卮乇蹖賳蹖 蹖蹠賰蹠賲', + '鬲卮乇蹖賳蹖 丿賵賵蹠賲', + '賰丕賳賵賳蹖 蹖蹠讴蹠賲', + ]; + +export default moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + '蹖賴鈥屬冐促団屬呝呝団宊丿賵賵卮賴鈥屬呝呝団宊爻蹘卮賴鈥屬呝呝団宊趩賵丕乇卮賴鈥屬呝呝団宊倬蹘賳噩卮賴鈥屬呝呝団宊賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split( + '_' + ), + weekdaysShort: + '蹖賴鈥屬冐促団屬卂丿賵賵卮賴鈥屬卂爻蹘卮賴鈥屬卂趩賵丕乇卮賴鈥屬卂倬蹘賳噩卮賴鈥屬卂賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split('_'), + weekdaysMin: '蹖_丿_爻_趩_倬_賴_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /卅蹘賵丕乇賴鈥寍亘賴鈥屰屫з嗃/, + isPM: function (input) { + return /卅蹘賵丕乇賴鈥/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '亘賴鈥屰屫з嗃'; + } else { + return '卅蹘賵丕乇賴鈥'; + } + }, + calendar: { + sameDay: '[卅賴鈥屬呚臂 賰丕鬲跇賲蹘乇] LT', + nextDay: '[亘賴鈥屰屫з嗃 賰丕鬲跇賲蹘乇] LT', + nextWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + lastDay: '[丿賵蹘賳蹘 賰丕鬲跇賲蹘乇] LT', + lastWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賱賴鈥 %s', + past: '%s', + s: '趩賴鈥屬嗀 趩乇賰賴鈥屰屬団屬', + ss: '趩乇賰賴鈥 %d', + m: '蹖賴鈥屬 禺賵賱賴鈥屬', + mm: '%d 禺賵賱賴鈥屬', + h: '蹖賴鈥屬 賰丕鬲跇賲蹘乇', + hh: '%d 賰丕鬲跇賲蹘乇', + d: '蹖賴鈥屬 跁蹎跇', + dd: '%d 跁蹎跇', + M: '蹖賴鈥屬 賲丕賳诏', + MM: '%d 賲丕賳诏', + y: '蹖賴鈥屬 爻丕诘', + yy: '%d 爻丕诘', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ky.js b/node_modules/moment/dist/locale/ky.js new file mode 100644 index 0000000..2108d09 --- /dev/null +++ b/node_modules/moment/dist/locale/ky.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +import moment from '../moment'; + +var suffixes = { + 0: '-褔爷', + 1: '-褔懈', + 2: '-褔懈', + 3: '-褔爷', + 4: '-褔爷', + 5: '-褔懈', + 6: '-褔褘', + 7: '-褔懈', + 8: '-褔懈', + 9: '-褔褍', + 10: '-褔褍', + 20: '-褔褘', + 30: '-褔褍', + 40: '-褔褘', + 50: '-褔爷', + 60: '-褔褘', + 70: '-褔懈', + 80: '-褔懈', + 90: '-褔褍', + 100: '-褔爷', +}; + +export default moment.defineLocale('ky', { + months: '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉褌_邪锌褉_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split( + '_' + ), + weekdays: '袞械泻褕械屑斜懈_袛爷泄褕萤屑斜爷_楔械泄褕械屑斜懈_楔邪褉褕械屑斜懈_袘械泄褕械屑斜懈_袞褍屑邪_袠褕械屑斜懈'.split( + '_' + ), + weekdaysShort: '袞械泻_袛爷泄_楔械泄_楔邪褉_袘械泄_袞褍屑_袠褕械'.split('_'), + weekdaysMin: '袞泻_袛泄_楔泄_楔褉_袘泄_袞屑_袠褕'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐爷薪 褋邪邪褌] LT', + nextDay: '[协褉褌械遥 褋邪邪褌] LT', + nextWeek: 'dddd [褋邪邪褌] LT', + lastDay: '[袣械褔褝褝 褋邪邪褌] LT', + lastWeek: '[莹褌泻萤薪 邪锌褌邪薪褘薪] dddd [泻爷薪爷] [褋邪邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 懈褔懈薪写械', + past: '%s 屑褍褉褍薪', + s: '斜懈褉薪械褔械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜懈褉 屑爷薪萤褌', + mm: '%d 屑爷薪萤褌', + h: '斜懈褉 褋邪邪褌', + hh: '%d 褋邪邪褌', + d: '斜懈褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜懈褉 邪泄', + MM: '%d 邪泄', + y: '斜懈褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褔懈|褔褘|褔爷|褔褍)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/lb.js b/node_modules/moment/dist/locale/lb.js new file mode 100644 index 0000000..f01e662 --- /dev/null +++ b/node_modules/moment/dist/locale/lb.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; +} +function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; +} +/** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ +function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } +} + +export default moment.defineLocale('lb', { + months: 'Januar_Februar_M盲erz_Abr毛ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_M茅indeg_D毛nschdeg_M毛ttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._M茅._D毛._M毛._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_M茅_D毛_M毛_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[G毛schter um] LT', + lastWeek: function () { + // Different date string for 'D毛nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d M茅int', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/lo.js b/node_modules/moment/dist/locale/lo.js new file mode 100644 index 0000000..cd6cc20 --- /dev/null +++ b/node_modules/moment/dist/locale/lo.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +import moment from '../moment'; + +export default moment.defineLocale('lo', { + months: '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + monthsShort: + '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + weekdays: '嗪翰嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysShort: '嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysMin: '嗪梍嗪坃嗪簞_嗪瀇嗪炧韩_嗪簛_嗪'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: '嗪о罕嗪檇ddd D MMMM YYYY HH:mm', + }, + meridiemParse: /嗪曕涵嗪權粈嗪娻夯嗷夃翰|嗪曕涵嗪權粊嗪ム簢/, + isPM: function (input) { + return input === '嗪曕涵嗪權粊嗪ム簢'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '嗪曕涵嗪權粈嗪娻夯嗷夃翰'; + } else { + return '嗪曕涵嗪權粊嗪ム簢'; + } + }, + calendar: { + sameDay: '[嗪∴悍嗷夃簷嗪掂粔嗷嗪о亥嗪瞉 LT', + nextDay: '[嗪∴悍嗷夃涵嗪粪粓嗪權粈嗪о亥嗪瞉 LT', + nextWeek: '[嗪о罕嗪橾dddd[嗷溹粔嗪侧粈嗪о亥嗪瞉 LT', + lastDay: '[嗪∴悍嗷夃骇嗪侧簷嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + lastWeek: '[嗪о罕嗪橾dddd[嗷佮亥嗷夃骇嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '嗪旱嗪 %s', + past: '%s嗪溹粓嗪侧簷嗪∴翰', + s: '嗪氞粛嗷堗粈嗪椸夯嗷堗翰嗷冟簲嗪о捍嗪權翰嗪椸旱', + ss: '%d 嗪о捍嗪權翰嗪椸旱', + m: '1 嗪權翰嗪椸旱', + mm: '%d 嗪權翰嗪椸旱', + h: '1 嗪娻夯嗷堗骇嗷傕骸嗪', + hh: '%d 嗪娻夯嗷堗骇嗷傕骸嗪', + d: '1 嗪∴悍嗷', + dd: '%d 嗪∴悍嗷', + M: '1 嗷嗪斷悍嗪簷', + MM: '%d 嗷嗪斷悍嗪簷', + y: '1 嗪涏旱', + yy: '%d 嗪涏旱', + }, + dayOfMonthOrdinalParse: /(嗪椸旱嗷)\d{1,2}/, + ordinal: function (number) { + return '嗪椸旱嗷' + number; + }, +}); diff --git a/node_modules/moment/dist/locale/lt.js b/node_modules/moment/dist/locale/lt.js new file mode 100644 index 0000000..f011261 --- /dev/null +++ b/node_modules/moment/dist/locale/lt.js @@ -0,0 +1,125 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Moz奴ras : https://github.com/mmozuras + +import moment from '../moment'; + +var units = { + ss: 'sekund臈_sekund啪i懦_sekundes', + m: 'minut臈_minut臈s_minut臋', + mm: 'minut臈s_minu膷i懦_minutes', + h: 'valanda_valandos_valand膮', + hh: 'valandos_valand懦_valandas', + d: 'diena_dienos_dien膮', + dd: 'dienos_dien懦_dienas', + M: 'm臈nuo_m臈nesio_m臈nes寞', + MM: 'm臈nesiai_m臈nesi懦_m臈nesius', + y: 'metai_met懦_metus', + yy: 'metai_met懦_metus', +}; +function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekund臈s'; + } else { + return isFuture ? 'keli懦 sekund啪i懦' : 'kelias sekundes'; + } +} +function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; +} +function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); +} +function forms(key) { + return units[key].split('_'); +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } +} +export default moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_baland啪io_gegu啪臈s_bir啪elio_liepos_rugpj奴膷io_rugs臈jo_spalio_lapkri膷io_gruod啪io'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegu啪臈_bir啪elis_liepa_rugpj奴tis_rugs臈jis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadien寞_pirmadien寞_antradien寞_tre膷iadien寞_ketvirtadien寞_penktadien寞_拧e拧tadien寞'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_tre膷iadienis_ketvirtadienis_penktadienis_拧e拧tadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_艩e拧'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_艩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[艩iandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Pra臈jus寞] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prie拧 %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + 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/node_modules/moment/dist/locale/lv.js b/node_modules/moment/dist/locale/lv.js new file mode 100644 index 0000000..3a89653 --- /dev/null +++ b/node_modules/moment/dist/locale/lv.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : J膩nis Elmeris : https://github.com/JanisE + +import moment from '../moment'; + +var units = { + ss: 'sekundes_sekund膿m_sekunde_sekundes'.split('_'), + m: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + mm: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + h: 'stundas_stund膩m_stunda_stundas'.split('_'), + hh: 'stundas_stund膩m_stunda_stundas'.split('_'), + d: 'dienas_dien膩m_diena_dienas'.split('_'), + dd: 'dienas_dien膩m_diena_dienas'.split('_'), + M: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + MM: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), +}; +/** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ +function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 min奴te", "3 min奴tes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 min奴tes" as in "p膿c 21 min奴tes". + // E.g. "3 min奴t膿m" as in "p膿c 3 min奴t膿m". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); +} +function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); +} +function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'da啪as sekundes' : 'da啪膩m sekund膿m'; +} + +export default moment.defineLocale('lv', { + months: 'janv膩ris_febru膩ris_marts_apr墨lis_maijs_j奴nijs_j奴lijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_j奴n_j奴l_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'sv膿tdiena_pirmdiena_otrdiena_tre拧diena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[艩odien pulksten] LT', + nextDay: '[R墨t pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pag膩ju拧膩] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'p膿c %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/me.js b/node_modules/moment/dist/locale/me.js new file mode 100644 index 0000000..c0986df --- /dev/null +++ b/node_modules/moment/dist/locale/me.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nika膷 : https://github.com/miodragnikac + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, +}; + +export default moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedjelje] [u] LT', + '[pro拧log] [ponedjeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srijede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/mi.js b/node_modules/moment/dist/locale/mi.js new file mode 100644 index 0000000..635a56a --- /dev/null +++ b/node_modules/moment/dist/locale/mi.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +import moment from '../moment'; + +export default moment.defineLocale('mi', { + months: 'Kohi-t膩te_Hui-tanguru_Pout奴-te-rangi_Paenga-wh膩wh膩_Haratua_Pipiri_H艒ngoingoi_Here-turi-k艒k膩_Mahuru_Whiringa-膩-nuku_Whiringa-膩-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_H艒ngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'R膩tapu_Mane_T奴rei_Wenerei_T膩ite_Paraire_H膩tarei'.split('_'), + weekdaysShort: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + weekdaysMin: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te h膿kona ruarua', + ss: '%d h膿kona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/mk.js b/node_modules/moment/dist/locale/mk.js new file mode 100644 index 0000000..f3ecad7 --- /dev/null +++ b/node_modules/moment/dist/locale/mk.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh +import moment from '../moment'; + +export default moment.defineLocale('mk', { + months: '褬邪薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪懈_褬褍谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褬邪薪_褎械胁_屑邪褉_邪锌褉_屑邪褬_褬褍薪_褬褍谢_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢邪_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁褉褌芯泻_锌械褌芯泻_褋邪斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉械_褔械褌_锌械褌_褋邪斜'.split('_'), + weekdaysMin: '薪e_锌o_胁褌_褋褉_褔械_锌械_褋a'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛械薪械褋 胁芯] LT', + nextDay: '[校褌褉械 胁芯] LT', + nextWeek: '[袙芯] dddd [胁芯] LT', + lastDay: '[袙褔械褉邪 胁芯] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袠蟹屑懈薪邪褌邪褌邪] dddd [胁芯] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袠蟹屑懈薪邪褌懈芯褌] dddd [胁芯] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械写 %s', + s: '薪械泻芯谢泻褍 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '械写薪邪 屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '械写械薪 褔邪褋', + hh: '%d 褔邪褋邪', + d: '械写械薪 写械薪', + dd: '%d 写械薪邪', + M: '械写械薪 屑械褋械褑', + MM: '%d 屑械褋械褑懈', + y: '械写薪邪 谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ml.js b/node_modules/moment/dist/locale/ml.js new file mode 100644 index 0000000..5df6ae4 --- /dev/null +++ b/node_modules/moment/dist/locale/ml.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +import moment from '../moment'; + +export default moment.defineLocale('ml', { + months: '啻溹川嗟佮吹啻班纯_啻祮啻祶啻班祦啻掂窗啻縚啻淳嗟监礆嗟嵿礆嗟峗啻忇椽嗟嵿窗啻苦到_啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱_啻撪礂啻膏祶啻编祶啻编祶_啻膏祮啻祶啻编祶啻编磦啻导_啻掄磿嗟嵿礋嗟嬥船嗟糭啻ㄠ吹啻傕船嗟糭啻∴纯啻膏磦啻导'.split( + '_' + ), + monthsShort: + '啻溹川嗟._啻祮啻祶啻班祦._啻淳嗟._啻忇椽嗟嵿窗啻._啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱._啻撪礂._啻膏祮啻祶啻编祶啻._啻掄磿嗟嵿礋嗟._啻ㄠ吹啻._啻∴纯啻膏磦.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '啻炧淳啻幢啻距创嗟嵿礆_啻む纯啻權祶啻曕闯啻距创嗟嵿礆_啻氞祳啻掂祶啻掂淳啻脆祶啻歘啻祦啻о川啻距创嗟嵿礆_啻掂祶啻淳啻脆淳啻脆祶啻歘啻掂祮啻赤祶啻赤纯啻淳啻脆祶啻歘啻多川啻苦疮啻距创嗟嵿礆'.split( + '_' + ), + weekdaysShort: '啻炧淳啻导_啻む纯啻權祶啻曕稻_啻氞祳啻掂祶啻礯啻祦啻о祷_啻掂祶啻淳啻脆磦_啻掂祮啻赤祶啻赤纯_啻多川啻'.split('_'), + weekdaysMin: '啻炧淳_啻む纯_啻氞祳_啻祦_啻掂祶啻淳_啻掂祮_啻'.split('_'), + longDateFormat: { + LT: 'A h:mm -啻ㄠ祦', + LTS: 'A h:mm:ss -啻ㄠ祦', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -啻ㄠ祦', + LLLL: 'dddd, D MMMM YYYY, A h:mm -啻ㄠ祦', + }, + calendar: { + sameDay: '[啻囙川嗟嵿川嗟峕 LT', + nextDay: '[啻ㄠ淳啻赤祮] LT', + nextWeek: 'dddd, LT', + lastDay: '[啻囙川嗟嵿川啻侧祮] LT', + lastWeek: '[啻曕创啻苦礊嗟嵿礊] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啻曕创啻苦礊嗟嵿礊嗟', + past: '%s 啻祦嗟秽椽嗟', + s: '啻呧到啻 啻ㄠ纯啻纯啻粪礄嗟嵿礄嗟', + ss: '%d 啻膏祮啻曕祶啻曕祷啻∴祶', + m: '啻掄窗嗟 啻纯啻ㄠ纯啻编祶啻编祶', + mm: '%d 啻纯啻ㄠ纯啻编祶啻编祶', + h: '啻掄窗嗟 啻矗啻苦磿嗟嵿磿嗟傕导', + hh: '%d 啻矗啻苦磿嗟嵿磿嗟傕导', + d: '啻掄窗嗟 啻︵纯啻掂锤啻', + dd: '%d 啻︵纯啻掂锤啻', + M: '啻掄窗嗟 啻淳啻膏磦', + MM: '%d 啻淳啻膏磦', + y: '啻掄窗嗟 啻掂导啻粪磦', + yy: '%d 啻掂导啻粪磦', + }, + meridiemParse: /啻班淳啻む祶啻班纯|啻班淳啻掂纯啻侧祮|啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟峾啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦|啻班淳啻む祶啻班纯/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '啻班淳啻む祶啻班纯' && hour >= 4) || + meridiem === '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟' || + meridiem === '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啻班淳啻む祶啻班纯'; + } else if (hour < 12) { + return '啻班淳啻掂纯啻侧祮'; + } else if (hour < 17) { + return '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟'; + } else if (hour < 20) { + return '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦'; + } else { + return '啻班淳啻む祶啻班纯'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/mn.js b/node_modules/moment/dist/locale/mn.js new file mode 100644 index 0000000..36cf69f --- /dev/null +++ b/node_modules/moment/dist/locale/mn.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? '褏褝写褏褝薪 褋械泻褍薪写' : '褏褝写褏褝薪 褋械泻褍薪写褘薪'; + case 'ss': + return number + (withoutSuffix ? ' 褋械泻褍薪写' : ' 褋械泻褍薪写褘薪'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' 屑懈薪褍褌' : ' 屑懈薪褍褌褘薪'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' 褑邪谐' : ' 褑邪谐懈泄薪'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' 萤写萤褉' : ' 萤写褉懈泄薪'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' 褋邪褉' : ' 褋邪褉褘薪'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' 卸懈谢' : ' 卸懈谢懈泄薪'); + default: + return number; + } +} + +export default moment.defineLocale('mn', { + months: '袧褝谐写爷谐褝褝褉 褋邪褉_啸芯褢褉写褍谐邪邪褉 褋邪褉_袚褍褉邪胁写褍谐邪邪褉 褋邪褉_袛萤褉萤胁写爷谐褝褝褉 褋邪褉_孝邪胁写褍谐邪邪褉 褋邪褉_袟褍褉谐邪写褍谐邪邪褉 褋邪褉_袛芯谢写褍谐邪邪褉 褋邪褉_袧邪泄屑写褍谐邪邪褉 褋邪褉_袝褋写爷谐褝褝褉 褋邪褉_袗褉邪胁写褍谐邪邪褉 褋邪褉_袗褉胁邪薪 薪褝谐写爷谐褝褝褉 褋邪褉_袗褉胁邪薪 褏芯褢褉写褍谐邪邪褉 褋邪褉'.split( + '_' + ), + monthsShort: + '1 褋邪褉_2 褋邪褉_3 褋邪褉_4 褋邪褉_5 褋邪褉_6 褋邪褉_7 褋邪褉_8 褋邪褉_9 褋邪褉_10 褋邪褉_11 褋邪褉_12 褋邪褉'.split( + '_' + ), + monthsParseExact: true, + weekdays: '袧褟屑_袛邪胁邪邪_袦褟谐屑邪褉_袥褏邪谐胁邪_袩爷褉褝胁_袘邪邪褋邪薪_袘褟屑斜邪'.split('_'), + weekdaysShort: '袧褟屑_袛邪胁_袦褟谐_袥褏邪_袩爷褉_袘邪邪_袘褟屑'.split('_'), + weekdaysMin: '袧褟_袛邪_袦褟_袥褏_袩爷_袘邪_袘褟'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY 芯薪褘 MMMM褘薪 D', + LLL: 'YYYY 芯薪褘 MMMM褘薪 D HH:mm', + LLLL: 'dddd, YYYY 芯薪褘 MMMM褘薪 D HH:mm', + }, + meridiemParse: /耶莹|耶啸/i, + isPM: function (input) { + return input === '耶啸'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '耶莹'; + } else { + return '耶啸'; + } + }, + calendar: { + sameDay: '[莹薪萤萤写萤褉] LT', + nextDay: '[袦邪褉谐邪邪褕] LT', + nextWeek: '[袠褉褝褏] dddd LT', + lastDay: '[莹褔懈谐写萤褉] LT', + lastWeek: '[莹薪谐萤褉褋萤薪] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 写邪褉邪邪', + past: '%s 萤屑薪萤', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} 萤写萤褉/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' 萤写萤褉'; + default: + return number; + } + }, +}); diff --git a/node_modules/moment/dist/locale/mr.js b/node_modules/moment/dist/locale/mr.js new file mode 100644 index 0000000..d174909 --- /dev/null +++ b/node_modules/moment/dist/locale/mr.js @@ -0,0 +1,203 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + +function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶'; + break; + case 'm': + output = '啶忇 啶た啶ㄠた啶'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰'; + break; + case 'h': + output = '啶忇 啶むぞ啶'; + break; + case 'hh': + output = '%d 啶むぞ啶'; + break; + case 'd': + output = '啶忇 啶︵た啶掂じ'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ'; + break; + case 'M': + output = '啶忇 啶す啶苦え啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷'; + break; + case 'y': + output = '啶忇 啶掂ぐ啷嵿し'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啷'; + break; + } + } else { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶︵ぞ啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶︵ぞ啶'; + break; + case 'm': + output = '啶忇啶 啶た啶ㄠた啶熰ぞ'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰ぞ啶'; + break; + case 'h': + output = '啶忇啶 啶むぞ啶膏ぞ'; + break; + case 'hh': + output = '%d 啶むぞ啶膏ぞ啶'; + break; + case 'd': + output = '啶忇啶 啶︵た啶掂じ啶'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ啶距'; + break; + case 'M': + output = '啶忇啶 啶す啶苦え啷嵿く啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷嵿く啶距'; + break; + case 'y': + output = '啶忇啶 啶掂ぐ啷嵿し啶'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啶距'; + break; + } + } + return output.replace(/%d/i, number); +} + +export default moment.defineLocale('mr', { + months: '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶._啶忇お啷嵿ぐ啶._啶._啶溹啶._啶溹啶侧._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸こ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸こ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶掂ぞ啶溹い啶', + LTS: 'A h:mm:ss 啶掂ぞ啶溹い啶', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶夃う啷嵿く啶綸 LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶椸啶瞉 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぇ啷嵿く啷', + past: '%s啶啶班啶掂', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶す啶距啷噟啶膏啶距こ啷|啶︵啶ぞ啶班|啶膏ぞ啶啶曕ぞ啶赤|啶班ぞ啶む啶班/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶す啶距啷' || meridiem === '啶膏啶距こ啷') { + return hour; + } else if ( + meridiem === '啶︵啶ぞ啶班' || + meridiem === '啶膏ぞ啶啶曕ぞ啶赤' || + meridiem === '啶班ぞ啶む啶班' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return '啶す啶距啷'; + } else if (hour < 12) { + return '啶膏啶距こ啷'; + } else if (hour < 17) { + return '啶︵啶ぞ啶班'; + } else if (hour < 20) { + return '啶膏ぞ啶啶曕ぞ啶赤'; + } else { + return '啶班ぞ啶む啶班'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ms-my.js b/node_modules/moment/dist/locale/ms-my.js new file mode 100644 index 0000000..f8adf98 --- /dev/null +++ b/node_modules/moment/dist/locale/ms-my.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ms.js b/node_modules/moment/dist/locale/ms.js new file mode 100644 index 0000000..335cc90 --- /dev/null +++ b/node_modules/moment/dist/locale/ms.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/mt.js b/node_modules/moment/dist/locale/mt.js new file mode 100644 index 0000000..850cf6a --- /dev/null +++ b/node_modules/moment/dist/locale/mt.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +import moment from '../moment'; + +export default moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_臓unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di膵embru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_臓un_Lul_Aww_Set_Ott_Nov_Di膵'.split('_'), + weekdays: + 'Il-摩add_It-Tnejn_It-Tlieta_L-Erbg魔a_Il-摩amis_Il-臓img魔a_Is-Sibt'.split( + '_' + ), + weekdaysShort: '摩ad_Tne_Tli_Erb_摩am_臓im_Sib'.split('_'), + weekdaysMin: '摩a_Tn_Tl_Er_摩a_臓i_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[G魔ada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-biera魔 fil-]LT', + lastWeek: 'dddd [li g魔adda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f鈥 %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'sieg魔a', + hh: '%d sieg魔at', + d: '摹urnata', + dd: '%d 摹ranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/my.js b/node_modules/moment/dist/locale/my.js new file mode 100644 index 0000000..034b221 --- /dev/null +++ b/node_modules/moment/dist/locale/my.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +import moment from '../moment'; + +var symbolMap = { + 1: '醽', + 2: '醽', + 3: '醽', + 4: '醽', + 5: '醽', + 6: '醽', + 7: '醽', + 8: '醽', + 9: '醽', + 0: '醽', + }, + numberMap = { + '醽': '1', + '醽': '2', + '醽': '3', + '醽': '4', + '醽': '5', + '醽': '6', + '醽': '7', + '醽': '8', + '醽': '9', + '醽': '0', + }; + +export default moment.defineLocale('my', { + months: '醼囜斸横斸濁涐甠醼栣贬栣贬横濁涐甠醼欋愥篲醼п曖坚甠醼欋盻醼囜结斸篲醼囜搬溼勧篲醼炨坚傖愥篲醼呩醼横愥勧横樶琠醼♂贬醼横愥樶琠醼斸濁勧横樶琠醼掅囜勧横樶'.split( + '_' + ), + monthsShort: '醼囜斸篲醼栣盻醼欋愥篲醼曖坚甠醼欋盻醼囜结斸篲醼溼勧篲醼炨糭醼呩醼篲醼♂贬醼篲醼斸痏醼掅'.split('_'), + weekdays: '醼愥斸勧横贯傖斸结盻醼愥斸勧横贯溼琠醼♂勧横贯傖玙醼椺掅贯撫熱搬竉醼醼坚炨曖愥贬竉醼炨贬醼坚琠醼呩斸'.split( + '_' + ), + weekdaysShort: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + weekdaysMin: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醼氠斸.] LT [醼欋踞琞', + nextDay: '[醼欋斸醼横栣坚斸篯 LT [醼欋踞琞', + nextWeek: 'dddd LT [醼欋踞琞', + lastDay: '[醼欋斸.醼] LT [醼欋踞琞', + lastWeek: '[醼曖坚羔佱册丰炨贬琞 dddd LT [醼欋踞琞', + sameElse: 'L', + }, + relativeTime: { + future: '醼溼欋娽横 %s 醼欋踞', + past: '醼溼结斸横佱册丰炨贬 %s 醼', + s: '醼呩醼贯醼斸.醼♂斸娽横羔勧氠', + ss: '%d 醼呩醼贯醼斸丰', + m: '醼愥呩横欋斸呩', + mm: '%d 醼欋斸呩', + h: '醼愥呩横斸涐', + hh: '%d 醼斸涐', + d: '醼愥呩横涐醼', + dd: '%d 醼涐醼', + M: '醼愥呩横', + MM: '%d 醼', + y: '醼愥呩横斸踞呩', + yy: '%d 醼斸踞呩', + }, + preparse: function (string) { + return string.replace(/[醽佱亗醽冡亜醽呩亞醽囜亪醽夅亐]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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/node_modules/moment/dist/locale/nb.js b/node_modules/moment/dist/locale/nb.js new file mode 100644 index 0000000..c218f51 --- /dev/null +++ b/node_modules/moment/dist/locale/nb.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokm氓l [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶._ma._ti._on._to._fr._l酶.'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/ne.js b/node_modules/moment/dist/locale/ne.js new file mode 100644 index 0000000..1f0a0ed --- /dev/null +++ b/node_modules/moment/dist/locale/ne.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + +export default moment.defineLocale('ne', { + months: '啶溹え啶掂ぐ啷_啶啶啶班啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶粪啶焈啶膏啶啶熰啶啶ぐ_啶呧啷嵿啷嬥が啶癬啶ㄠ啶啶啶ぐ_啶∴た啶膏啶啶ぐ'.split( + '_' + ), + monthsShort: + '啶溹え._啶啶啶班._啶ぞ啶班啶歘啶呧お啷嵿ぐ啶._啶_啶溹啶╛啶溹啶侧ぞ啶._啶呧._啶膏啶啶._啶呧啷嵿啷._啶ㄠ啶._啶∴た啶膏.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋啶むが啶距ぐ_啶膏啶が啶距ぐ_啶啷嵿啶侧が啶距ぐ_啶啶оが啶距ぐ_啶た啶灌た啶ぞ啶癬啶多啶曕啶班が啶距ぐ_啶多え啶苦が啶距ぐ'.split( + '_' + ), + weekdaysShort: '啶嗋啶._啶膏啶._啶啷嵿啶._啶啶._啶た啶灌た._啶多啶曕啶._啶多え啶.'.split('_'), + weekdaysMin: '啶._啶膏._啶._啶._啶た._啶多._啶.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A啶曕 h:mm 啶啷', + LTS: 'A啶曕 h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A啶曕 h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A啶曕 h:mm 啶啷', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶班ぞ啶むた|啶た啶灌ぞ啶▅啶︵た啶夃啶膏|啶膏ぞ啶佮/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶むた') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶た啶灌ぞ啶') { + return hour; + } else if (meridiem === '啶︵た啶夃啶膏') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶佮') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return '啶班ぞ啶むた'; + } else if (hour < 12) { + return '啶た啶灌ぞ啶'; + } else if (hour < 16) { + return '啶︵た啶夃啶膏'; + } else if (hour < 20) { + return '啶膏ぞ啶佮'; + } else { + return '啶班ぞ啶むた'; + } + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶啶侧た] LT', + nextWeek: '[啶嗋啶佮う啷媇 dddd[,] LT', + lastDay: '[啶灌た啶溹] LT', + lastWeek: '[啶椸啶曕] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぞ', + past: '%s 啶呧啶距ぁ啶', + s: '啶曕啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶`啶', + m: '啶忇 啶た啶ㄠ啶', + mm: '%d 啶た啶ㄠ啶', + h: '啶忇 啶樴ぃ啷嵿啶', + hh: '%d 啶樴ぃ啷嵿啶', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啶苦え啶', + MM: '%d 啶す啶苦え啶', + y: '啶忇 啶ぐ啷嵿し', + yy: '%d 啶ぐ啷嵿し', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/nl-be.js b/node_modules/moment/dist/locale/nl-be.js new file mode 100644 index 0000000..a1ab295 --- /dev/null +++ b/node_modules/moment/dist/locale/nl-be.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/dist/locale/nl.js b/node_modules/moment/dist/locale/nl.js new file mode 100644 index 0000000..7d07112 --- /dev/null +++ b/node_modules/moment/dist/locale/nl.js @@ -0,0 +1,104 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + w: '茅茅n week', + ww: '%d weken', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/dist/locale/nn.js b/node_modules/moment/dist/locale/nn.js new file mode 100644 index 0000000..0da1150 --- /dev/null +++ b/node_modules/moment/dist/locale/nn.js @@ -0,0 +1,59 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_m氓ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._m氓._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_m氓_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I g氓r klokka] LT', + lastWeek: '[F酶reg氓ande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein m氓nad', + MM: '%d m氓nader', + y: 'eit 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/oc-lnc.js b/node_modules/moment/dist/locale/oc-lnc.js new file mode 100644 index 0000000..cc05561 --- /dev/null +++ b/node_modules/moment/dist/locale/oc-lnc.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAG脠S : https://github.com/Quenty31 + +import moment from '../moment'; + +export default moment.defineLocale('oc-lnc', { + months: { + standalone: + 'geni猫r_febri猫r_mar莽_abril_mai_junh_julhet_agost_setembre_oct貌bre_novembre_decembre'.split( + '_' + ), + format: "de geni猫r_de febri猫r_de mar莽_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct貌bre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dim猫cres_dij貌us_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[u猫i a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[i猫r a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\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, + }, +}); diff --git a/node_modules/moment/dist/locale/pa-in.js b/node_modules/moment/dist/locale/pa-in.js new file mode 100644 index 0000000..e39dbd5 --- /dev/null +++ b/node_modules/moment/dist/locale/pa-in.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +import moment from '../moment'; + +var symbolMap = { + 1: '喋', + 2: '喋', + 3: '喋', + 4: '喋', + 5: '喋', + 6: '喋', + 7: '喋', + 8: '喋', + 9: '喋', + 0: '喋', + }, + numberMap = { + '喋': '1', + '喋': '2', + '喋': '3', + '喋': '4', + '喋': '5', + '喋': '6', + '喋': '7', + '喋': '8', + '喋': '9', + '喋': '0', + }; + +export default moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + monthsShort: + '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + weekdays: '啜愢à啜掂ň啜癬啜膏⿱啜ǖ啜距ò_啜┌啜椸ú啜掂ň啜癬啜﹣啜оǖ啜距ò_啜掂﹢啜班ǖ啜距ò_啜膏喋佮┍啜曕ò啜掂ň啜癬啜膏啜ㄠ﹢啜氞ò啜掂ň啜'.split( + '_' + ), + weekdaysShort: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + weekdaysMin: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + longDateFormat: { + LT: 'A h:mm 啜掂喋', + LTS: 'A h:mm:ss 啜掂喋', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啜掂喋', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啜掂喋', + }, + calendar: { + sameDay: '[啜呧] LT', + nextDay: '[啜曕ú] LT', + nextWeek: '[啜呧啜侧ň] dddd, LT', + lastDay: '[啜曕ú] LT', + lastWeek: '[啜ǹ啜涏ú喋嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啜掂ǹ喋编', + past: '%s 啜ǹ啜涏ú喋', + s: '啜曕﹣啜 啜膏〞啜苦┌啜', + ss: '%d 啜膏〞啜苦┌啜', + m: '啜囙〞 啜ǹ喋班', + mm: '%d 啜ǹ喋班', + h: '啜囙┍啜 啜樴┌啜熰ň', + hh: '%d 啜樴┌啜熰﹪', + d: '啜囙┍啜 啜︵ǹ啜', + dd: '%d 啜︵ǹ啜', + M: '啜囙┍啜 啜ü喋啜ㄠň', + MM: '%d 啜ü喋啜ㄠ﹪', + y: '啜囙┍啜 啜膏ň啜', + yy: '%d 啜膏ň啜', + }, + preparse: function (string) { + return string.replace(/[喋о┄喋┼┆喋┈喋┊喋│]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /啜班ň啜啜膏ǖ喋囙ò|啜︵﹣啜ü啜苦ò|啜膏啜距ó/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啜班ň啜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啜膏ǖ喋囙ò') { + return hour; + } else if (meridiem === '啜︵﹣啜ü啜苦ò') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啜膏啜距ó') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啜班ň啜'; + } else if (hour < 10) { + return '啜膏ǖ喋囙ò'; + } else if (hour < 17) { + return '啜︵﹣啜ü啜苦ò'; + } else if (hour < 20) { + return '啜膏啜距ó'; + } else { + return '啜班ň啜'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/pl.js b/node_modules/moment/dist/locale/pl.js new file mode 100644 index 0000000..0608c0d --- /dev/null +++ b/node_modules/moment/dist/locale/pl.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +import moment from '../moment'; + +var monthsNominative = + 'stycze艅_luty_marzec_kwiecie艅_maj_czerwiec_lipiec_sierpie艅_wrzesie艅_pa藕dziernik_listopad_grudzie艅'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze艣nia_pa藕dziernika_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^pa藕/i, + /^lis/i, + /^gru/i, + ]; +function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; +} +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minut臋'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzin臋'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesi膮ce' : 'miesi臋cy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } +} + +export default moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa藕_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedzia艂ek_wtorek_艣roda_czwartek_pi膮tek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_艣r_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_艢r_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dzi艣 o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedziel臋 o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W 艣rod臋 o] LT'; + + case 6: + return '[W sobot臋 o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zesz艂膮 niedziel臋 o] LT'; + case 3: + return '[W zesz艂膮 艣rod臋 o] LT'; + case 6: + return '[W zesz艂膮 sobot臋 o] LT'; + default: + return '[W zesz艂y] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzie艅', + dd: '%d dni', + w: 'tydzie艅', + ww: translate, + M: 'miesi膮c', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/pt-br.js b/node_modules/moment/dist/locale/pt-br.js new file mode 100644 index 0000000..eb9aa64 --- /dev/null +++ b/node_modules/moment/dist/locale/pt-br.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +import moment from '../moment'; + +export default moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_ter莽a-feira_quarta-feira_quinta-feira_sexta-feira_s谩bado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_s谩b'.split('_'), + weekdaysMin: 'do_2陋_3陋_4陋_5陋_6陋_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [脿s] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [脿s] HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + invalidDate: 'Data inv谩lida', +}); diff --git a/node_modules/moment/dist/locale/pt.js b/node_modules/moment/dist/locale/pt.js new file mode 100644 index 0000000..d9b6055 --- /dev/null +++ b/node_modules/moment/dist/locale/pt.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +import moment from '../moment'; + +export default moment.defineLocale('pt', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Ter莽a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S谩bado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S谩b'.split('_'), + weekdaysMin: 'Do_2陋_3陋_4陋_5陋_6陋_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/dist/locale/ro.js b/node_modules/moment/dist/locale/ro.js new file mode 100644 index 0000000..d5bc5ea --- /dev/null +++ b/node_modules/moment/dist/locale/ro.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +import moment from '../moment'; + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 's膬pt膬m芒ni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; +} + +export default moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminic膬_luni_mar葲i_miercuri_joi_vineri_s芒mb膬t膬'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S芒m'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S芒'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[m芒ine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s 卯n urm膬', + s: 'c芒teva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o or膬', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o s膬pt膬m芒n膬', + ww: relativeTimeWithPlural, + M: 'o lun膬', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ru.js b/node_modules/moment/dist/locale/ru.js new file mode 100644 index 0000000..9f17e18 --- /dev/null +++ b/node_modules/moment/dist/locale/ru.js @@ -0,0 +1,213 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : 袣芯褉械薪斜械褉谐 袦邪褉泻 : https://github.com/socketpair + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '屑懈薪褍褌邪_屑懈薪褍褌褘_屑懈薪褍褌' : '屑懈薪褍褌褍_屑懈薪褍褌褘_屑懈薪褍褌', + hh: '褔邪褋_褔邪褋邪_褔邪褋芯胁', + dd: '写械薪褜_写薪褟_写薪械泄', + ww: '薪械写械谢褟_薪械写械谢懈_薪械写械谢褜', + MM: '屑械褋褟褑_屑械褋褟褑邪_屑械褋褟褑械胁', + yy: '谐芯写_谐芯写邪_谢械褌', + }; + if (key === 'm') { + return withoutSuffix ? '屑懈薪褍褌邪' : '屑懈薪褍褌褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +var monthsParse = [ + /^褟薪胁/i, + /^褎械胁/i, + /^屑邪褉/i, + /^邪锌褉/i, + /^屑邪[泄褟]/i, + /^懈褞薪/i, + /^懈褞谢/i, + /^邪胁谐/i, + /^褋械薪/i, + /^芯泻褌/i, + /^薪芯褟/i, + /^写械泻/i, +]; + +// http://new.gramota.ru/spravka/rules/139-prop : 搂 103 +// 小芯泻褉邪褖械薪懈褟 屑械褋褟褑械胁: http://new.gramota.ru/spravka/buro/search-answer?s=242637 +// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 +export default moment.defineLocale('ru', { + months: { + format: '褟薪胁邪褉褟_褎械胁褉邪谢褟_屑邪褉褌邪_邪锌褉械谢褟_屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐褍褋褌邪_褋械薪褌褟斜褉褟_芯泻褌褟斜褉褟_薪芯褟斜褉褟_写械泻邪斜褉褟'.split( + '_' + ), + standalone: + '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + }, + monthsShort: { + // 锌芯 CLDR 懈屑械薪薪芯 "懈褞谢." 懈 "懈褞薪.", 薪芯 泻邪泻芯泄 褋屑褘褋谢 屑械薪褟褌褜 斜褍泻胁褍 薪邪 褌芯褔泻褍? + format: '褟薪胁._褎械胁褉._屑邪褉._邪锌褉._屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + standalone: + '褟薪胁._褎械胁褉._屑邪褉褌_邪锌褉._屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + }, + weekdays: { + standalone: + '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁械褉谐_锌褟褌薪懈褑邪_褋褍斜斜芯褌邪'.split( + '_' + ), + format: '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写褍_褔械褌胁械褉谐_锌褟褌薪懈褑褍_褋褍斜斜芯褌褍'.split( + '_' + ), + isFormat: /\[ ?[袙胁] ?(?:锌褉芯褕谢褍褞|褋谢械写褍褞褖褍褞|褝褌褍)? ?] ?dddd/, + }, + weekdaysShort: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈, 锌芯 褌褉懈 斜褍泻胁褘, 写谢褟 薪械泻芯褌芯褉褘褏, 锌芯 4 斜褍泻胁褘, 褋芯泻褉邪褖械薪懈褟 褋 褌芯褔泻芯泄 懈 斜械蟹 褌芯褔泻懈 + monthsRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 泻芯锌懈褟 锌褉械写褘写褍褖械谐芯 + monthsShortRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈 + monthsStrictRegex: + /^(褟薪胁邪褉[褟褜]|褎械胁褉邪谢[褟褜]|屑邪褉褌邪?|邪锌褉械谢[褟褜]|屑邪[褟泄]|懈褞薪[褟褜]|懈褞谢[褟褜]|邪胁谐褍褋褌邪?|褋械薪褌褟斜褉[褟褜]|芯泻褌褟斜褉[褟褜]|薪芯褟斜褉[褟褜]|写械泻邪斜褉[褟褜])/i, + + // 袙褘褉邪卸械薪懈械, 泻芯褌芯褉芯械 褋芯芯褌胁械褌褋褌胁褍械褌 褌芯谢褜泻芯 褋芯泻褉邪褖褢薪薪褘屑 褎芯褉屑邪屑 + monthsShortStrictRegex: + /^(褟薪胁\.|褎械胁褉?\.|屑邪褉[褌.]|邪锌褉\.|屑邪[褟泄]|懈褞薪[褜褟.]|懈褞谢[褜褟.]|邪胁谐\.|褋械薪褌?\.|芯泻褌\.|薪芯褟斜?\.|写械泻\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., H:mm', + LLLL: 'dddd, D MMMM YYYY 谐., H:mm', + }, + calendar: { + sameDay: '[小械谐芯写薪褟, 胁] LT', + nextDay: '[袟邪胁褌褉邪, 胁] LT', + lastDay: '[袙褔械褉邪, 胁] LT', + nextWeek: 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'; + } + } + }, + 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', + }, + relativeTime: { + future: '褔械褉械蟹 %s', + past: '%s 薪邪蟹邪写', + s: '薪械褋泻芯谢褜泻芯 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '褔邪褋', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + w: '薪械写械谢褟', + ww: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔懈|褍褌褉邪|写薪褟|胁械褔械褉邪/i, + isPM: function (input) { + return /^(写薪褟|胁械褔械褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔懈'; + } else if (hour < 12) { + return '褍褌褉邪'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔械褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯|褟)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + case 'w': + case 'W': + return number + '-褟'; + default: + return number; + } + }, + 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/node_modules/moment/dist/locale/sd.js b/node_modules/moment/dist/locale/sd.js new file mode 100644 index 0000000..20f1059 --- /dev/null +++ b/node_modules/moment/dist/locale/sd.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +import moment from '../moment'; + +var months = [ + '噩賳賵乇賷', + '賮賷亘乇賵乇賷', + '賲丕乇趩', + '丕倬乇賷賱', + '賲卅賷', + '噩賵賳', + '噩賵賱丕亍賽', + '丌诏爻俳', + '爻賷倬俳賲亘乇', + '丌讵俳賵亘乇', + '賳賵賲亘乇', + '趭爻賲亘乇', + ], + days = ['丌趩乇', '爻賵賲乇', '丕诒丕乇賵', '丕乇亘毓', '禺賲賷爻', '噩賲毓', '趪賳趪乇']; + +export default moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丕趧] LT', + nextDay: '[爻趢丕诨賷] LT', + nextWeek: 'dddd [丕诔賷賳 賴賮鬲賷 鬲賷] LT', + lastDay: '[讵丕賱賴賴] LT', + lastWeek: '[诏夭乇賷賱 賴賮鬲賷] dddd [鬲賷] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 倬賵亍', + past: '%s 丕诔', + s: '趩賳丿 爻賷讵賳趭', + ss: '%d 爻賷讵賳趭', + m: '賴讵 賲賳俳', + mm: '%d 賲賳俳', + h: '賴讵 讵賱丕讵', + hh: '%d 讵賱丕讵', + d: '賴讵 趶賷賳賴賳', + dd: '%d 趶賷賳賴賳', + M: '賴讵 賲賴賷賳賵', + MM: '%d 賲賴賷賳丕', + y: '賴讵 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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/node_modules/moment/dist/locale/se.js b/node_modules/moment/dist/locale/se.js new file mode 100644 index 0000000..e8eec58 --- /dev/null +++ b/node_modules/moment/dist/locale/se.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : B氓rd Rolstad Henriksen : https://github.com/karamell + +import moment from '../moment'; + +export default moment.defineLocale('se', { + months: 'o膽膽ajagem谩nnu_guovvam谩nnu_njuk膷am谩nnu_cuo艐om谩nnu_miessem谩nnu_geassem谩nnu_suoidnem谩nnu_borgem谩nnu_膷ak膷am谩nnu_golggotm谩nnu_sk谩bmam谩nnu_juovlam谩nnu'.split( + '_' + ), + monthsShort: + 'o膽膽j_guov_njuk_cuo_mies_geas_suoi_borg_膷ak膷_golg_sk谩b_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuoss谩rga_ma艐艐eb谩rga_gaskavahkku_duorastat_bearjadat_l谩vvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_ma艐_gask_duor_bear_l谩v'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s gea啪es', + past: 'ma艐it %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta m谩nnu', + MM: '%d m谩nut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/si.js b/node_modules/moment/dist/locale/si.js new file mode 100644 index 0000000..0f2498c --- /dev/null +++ b/node_modules/moment/dist/locale/si.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +import moment from '../moment'; + +/*jshint -W100*/ +export default moment.defineLocale('si', { + months: '喽⑧侗喾喾忇痘喾抇喽脆窓喽多痘喾喾忇痘喾抇喽膏窂喽秽穵喽窋_喽呧洞喾娾嵿痘喾氞督喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾澿穬喾娻董喾擾喾冟窅喽脆穵喽窅喽膏穵喽多痘喾奯喽斷稓喾娻董喾澿抖喽秽穵_喽编窚喾喾愢陡喾娻抖喽秽穵_喽窓喾冟窅喽膏穵喽多痘喾'.split( + '_' + ), + monthsShort: '喽⑧侗_喽脆窓喽禵喽膏窂喽秽穵_喽呧洞喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾漘喾冟窅喽脆穵_喽斷稓喾奯喽编窚喾喾恄喽窓喾冟窅'.split( + '_' + ), + weekdays: + '喽夃痘喾掄动喾廮喾冟冻喾斷动喾廮喽呧稛喾勦痘喾斷穩喾忇动喾廮喽多动喾忇动喾廮喽多穵鈥嵿痘喾勦穬喾娻洞喽窉喽编穵喽窂_喾冟窉喽氞窋喽秽窂喽窂_喾冟窓喽编穬喾斷痘喾忇动喾'.split( + '_' + ), + weekdaysShort: '喽夃痘喾抇喾冟冻喾擾喽呧稛_喽多动喾廮喽多穵鈥嵿痘喾刜喾冟窉喽氞窋_喾冟窓喽'.split('_'), + weekdaysMin: '喽塤喾僟喽卂喽禵喽多穵鈥嵿痘_喾冟窉_喾冟窓'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [喾喾愢侗喾抅 dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[喽呧动] LT[喽', + nextDay: '[喾勦窓喽 LT[喽', + nextWeek: 'dddd LT[喽', + lastDay: '[喽娻逗喾歖 LT[喽', + lastWeek: '[喽脆穬喾斷稖喾掄逗] dddd LT[喽', + sameElse: 'L', + }, + relativeTime: { + future: '%s喽氞窉喽编穵', + past: '%s喽氞锭 喽脆窓喽', + s: '喽董喾娻洞喽 喽氞窉喾勦窉喽脆逗', + ss: '喽董喾娻洞喽 %d', + m: '喽膏窉喽编窉喽穵喽窋喾', + mm: '喽膏窉喽编窉喽穵喽窋 %d', + h: '喽脆窅喽', + hh: '喽脆窅喽 %d', + d: '喽窉喽编逗', + dd: '喽窉喽 %d', + M: '喽膏窂喾冟逗', + MM: '喽膏窂喾 %d', + y: '喾喾冟痘', + yy: '喾喾冟痘 %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} 喾喾愢侗喾/, + ordinal: function (number) { + return number + ' 喾喾愢侗喾'; + }, + meridiemParse: /喽脆窓喽 喾喽秽窋|喽脆穬喾 喾喽秽窋|喽脆窓.喾|喽.喾./, + isPM: function (input) { + return input === '喽.喾.' || input === '喽脆穬喾 喾喽秽窋'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '喽.喾.' : '喽脆穬喾 喾喽秽窋'; + } else { + return isLower ? '喽脆窓.喾.' : '喽脆窓喽 喾喽秽窋'; + } + }, +}); diff --git a/node_modules/moment/dist/locale/sk.js b/node_modules/moment/dist/locale/sk.js new file mode 100644 index 0000000..7162ed6 --- /dev/null +++ b/node_modules/moment/dist/locale/sk.js @@ -0,0 +1,145 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = + 'janu谩r_febru谩r_marec_apr铆l_m谩j_j煤n_j煤l_august_september_okt贸ber_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_m谩j_j煤n_j煤l_aug_sep_okt_nov_dec'.split('_'); +function plural(n) { + return n > 1 && n < 5; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sek煤nd' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sek煤nd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'min煤ta' : isFuture ? 'min煤tu' : 'min煤tou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'min煤ty' : 'min煤t'); + } else { + return result + 'min煤tami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hod铆n'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'de艌' : 'd艌om'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dn铆'); + } else { + return result + 'd艌ami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } +} + +export default moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nede木a_pondelok_utorok_streda_拧tvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_拧t_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_拧t_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nede木u o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo 拧tvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[v膷era o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minul煤 nede木u o] LT'; + case 1: + case 2: + return '[minul媒] dddd [o] LT'; + case 3: + return '[minul煤 stredu o] LT'; + case 4: + case 5: + return '[minul媒] dddd [o] LT'; + case 6: + return '[minul煤 sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/sl.js b/node_modules/moment/dist/locale/sl.js new file mode 100644 index 0000000..0290a8e --- /dev/null +++ b/node_modules/moment/dist/locale/sl.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedov拧ek : https://github.com/sedovsek + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } +} + +export default moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_膷etrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._膷et._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_膷e_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[v膷eraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prej拧njo] [nedeljo] [ob] LT'; + case 3: + return '[prej拧njo] [sredo] [ob] LT'; + case 6: + return '[prej拧njo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prej拧nji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '膷ez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sq.js b/node_modules/moment/dist/locale/sq.js new file mode 100644 index 0000000..3b3bcfa --- /dev/null +++ b/node_modules/moment/dist/locale/sq.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flak毛rim Ismani : https://github.com/flakerimi +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +import moment from '../moment'; + +export default moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N毛ntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N毛n_Dhj'.split('_'), + weekdays: 'E Diel_E H毛n毛_E Mart毛_E M毛rkur毛_E Enjte_E Premte_E Shtun毛'.split( + '_' + ), + weekdaysShort: 'Die_H毛n_Mar_M毛r_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_M毛_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot n毛] LT', + nextDay: '[Nes毛r n毛] LT', + nextWeek: 'dddd [n毛] LT', + lastDay: '[Dje n毛] LT', + lastWeek: 'dddd [e kaluar n毛] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'n毛 %s', + past: '%s m毛 par毛', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'nj毛 minut毛', + mm: '%d minuta', + h: 'nj毛 or毛', + hh: '%d or毛', + d: 'nj毛 dit毛', + dd: '%d dit毛', + M: 'nj毛 muaj', + MM: '%d muaj', + y: 'nj毛 vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/sr-cyrl.js b/node_modules/moment/dist/locale/sr-cyrl.js new file mode 100644 index 0000000..5e05810 --- /dev/null +++ b/node_modules/moment/dist/locale/sr-cyrl.js @@ -0,0 +1,127 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['褋械泻褍薪写邪', '褋械泻褍薪写械', '褋械泻褍薪写懈'], + m: ['褬械写邪薪 屑懈薪褍褌', '褬械写薪芯谐 屑懈薪褍褌邪'], + mm: ['屑懈薪褍褌', '屑懈薪褍褌邪', '屑懈薪褍褌邪'], + h: ['褬械写邪薪 褋邪褌', '褬械写薪芯谐 褋邪褌邪'], + hh: ['褋邪褌', '褋邪褌邪', '褋邪褌懈'], + d: ['褬械写邪薪 写邪薪', '褬械写薪芯谐 写邪薪邪'], + dd: ['写邪薪', '写邪薪邪', '写邪薪邪'], + M: ['褬械写邪薪 屑械褋械褑', '褬械写薪芯谐 屑械褋械褑邪'], + MM: ['屑械褋械褑', '屑械褋械褑邪', '屑械褋械褑懈'], + y: ['褬械写薪褍 谐芯写懈薪褍', '褬械写薪械 谐芯写懈薪械'], + yy: ['谐芯写懈薪褍', '谐芯写懈薪械', '谐芯写懈薪邪'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return '褬械写薪邪 谐芯写懈薪邪'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === '谐芯写懈薪褍') { + return number + ' 谐芯写懈薪邪'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr-cyrl', { + months: '褬邪薪褍邪褉_褎械斜褉褍邪褉_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪_褬褍谢_邪胁谐褍褋褌_褋械锌褌械屑斜邪褉_芯泻褌芯斜邪褉_薪芯胁械屑斜邪褉_写械褑械屑斜邪褉'.split( + '_' + ), + monthsShort: + '褬邪薪._褎械斜._屑邪褉._邪锌褉._屑邪褬_褬褍薪_褬褍谢_邪胁谐._褋械锌._芯泻褌._薪芯胁._写械褑.'.split('_'), + monthsParseExact: true, + weekdays: '薪械写械褭邪_锌芯薪械写械褭邪泻_褍褌芯褉邪泻_褋褉械写邪_褔械褌胁褉褌邪泻_锌械褌邪泻_褋褍斜芯褌邪'.split('_'), + weekdaysShort: '薪械写._锌芯薪._褍褌芯._褋褉械._褔械褌._锌械褌._褋褍斜.'.split('_'), + weekdaysMin: '薪械_锌芯_褍褌_褋褉_褔械_锌械_褋褍'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[写邪薪邪褋 褍] LT', + nextDay: '[褋褍褌褉邪 褍] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[褍] [薪械写械褭褍] [褍] LT'; + case 3: + return '[褍] [褋褉械写褍] [褍] LT'; + case 6: + return '[褍] [褋褍斜芯褌褍] [褍] LT'; + case 1: + case 2: + case 4: + case 5: + return '[褍] dddd [褍] LT'; + } + }, + lastDay: '[褬褍褔械 褍] LT', + lastWeek: function () { + var lastWeekDays = [ + '[锌褉芯褕谢械] [薪械写械褭械] [褍] LT', + '[锌褉芯褕谢芯谐] [锌芯薪械写械褭泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [褍褌芯褉泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褉械写械] [褍] LT', + '[锌褉芯褕谢芯谐] [褔械褌胁褉褌泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [锌械褌泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褍斜芯褌械] [褍] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械 %s', + s: '薪械泻芯谢懈泻芯 褋械泻褍薪写懈', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/sr.js b/node_modules/moment/dist/locale/sr.js new file mode 100644 index 0000000..a407ec7 --- /dev/null +++ b/node_modules/moment/dist/locale/sr.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_膷etvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._膷et._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_膷e_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedelje] [u] LT', + '[pro拧log] [ponedeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ss.js b/node_modules/moment/dist/locale/ss.js new file mode 100644 index 0000000..60db499 --- /dev/null +++ b/node_modules/moment/dist/locale/ss.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +import moment from '../moment'; + +export default moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + 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/node_modules/moment/dist/locale/sv.js b/node_modules/moment/dist/locale/sv.js new file mode 100644 index 0000000..6f5c1d9 --- /dev/null +++ b/node_modules/moment/dist/locale/sv.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +import moment from '../moment'; + +export default moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's枚ndag_m氓ndag_tisdag_onsdag_torsdag_fredag_l枚rdag'.split('_'), + weekdaysShort: 's枚n_m氓n_tis_ons_tor_fre_l枚r'.split('_'), + weekdaysMin: 's枚_m氓_ti_on_to_fr_l枚'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Ig氓r] LT', + nextWeek: '[P氓] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'f枚r %s sedan', + s: 'n氓gra sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en m氓nad', + MM: '%d m氓nader', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + 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/node_modules/moment/dist/locale/sw.js b/node_modules/moment/dist/locale/sw.js new file mode 100644 index 0000000..35a2668 --- /dev/null +++ b/node_modules/moment/dist/locale/sw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +import moment from '../moment'; + +export default moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ta.js b/node_modules/moment/dist/locale/ta.js new file mode 100644 index 0000000..fdfa1ba --- /dev/null +++ b/node_modules/moment/dist/locale/ta.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +import moment from '../moment'; + +var symbolMap = { + 1: '喁', + 2: '喁', + 3: '喁', + 4: '喁', + 5: '喁', + 6: '喁', + 7: '喁', + 8: '喁', + 9: '喁', + 0: '喁', + }, + numberMap = { + '喁': '1', + '喁': '2', + '喁': '3', + '喁': '4', + '喁': '5', + '喁': '6', + '喁': '7', + '喁': '8', + '喁': '9', + '喁': '0', + }; + +export default moment.defineLocale('ta', { + months: '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + monthsShort: + '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + weekdays: + '喈炧喈喈编瘝喈编瘉喈曕瘝喈曕喈脆喁坃喈む喈權瘝喈曕疅喁嵿畷喈苦喈瘓_喈氞瘑喈掂瘝喈掂喈瘝喈曕喈脆喁坃喈瘉喈む喁嵿畷喈苦喈瘓_喈掂喈喈脆畷喁嵿畷喈苦喈瘓_喈掂瘑喈赤瘝喈赤喈曕瘝喈曕喈脆喁坃喈氞喈苦畷喁嵿畷喈苦喈瘓'.split( + '_' + ), + weekdaysShort: '喈炧喈喈编瘉_喈む喈權瘝喈曕喁峗喈氞瘑喈掂瘝喈掂喈瘝_喈瘉喈む喁峗喈掂喈喈脆喁峗喈掂瘑喈赤瘝喈赤_喈氞喈'.split( + '_' + ), + weekdaysMin: '喈炧_喈む_喈氞瘑_喈瘉_喈掂_喈掂瘑_喈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[喈囙喁嵿喁乚 LT', + nextDay: '[喈ㄠ喈赤瘓] LT', + nextWeek: 'dddd, LT', + lastDay: '[喈ㄠ瘒喈编瘝喈编瘉] LT', + lastWeek: '[喈曕疅喈ㄠ瘝喈 喈掂喈班喁峕 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喈囙喁', + past: '%s 喈瘉喈┼瘝', + s: '喈掄喁 喈氞喈 喈掂喈ㄠ喈熰喈曕喁', + ss: '%d 喈掂喈ㄠ喈熰喈曕喁', + m: '喈掄喁 喈ㄠ喈喈熰喁', + mm: '%d 喈ㄠ喈喈熰畽喁嵿畷喈赤瘝', + h: '喈掄喁 喈喈 喈ㄠ瘒喈班喁', + hh: '%d 喈喈 喈ㄠ瘒喈班喁', + d: '喈掄喁 喈ㄠ喈赤瘝', + dd: '%d 喈ㄠ喈熰瘝喈曕喁', + M: '喈掄喁 喈喈む喁', + MM: '%d 喈喈む畽喁嵿畷喈赤瘝', + y: '喈掄喁 喈掂喁佮疅喈瘝', + yy: '%d 喈嗋喁嵿疅喁佮畷喈赤瘝', + }, + dayOfMonthOrdinalParse: /\d{1,2}喈掂喁/, + ordinal: function (number) { + return number + '喈掂喁'; + }, + preparse: function (string) { + return string.replace(/[喁о喁┼喁喁喁]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /喈喈喁峾喈掂瘓喈曕喁坾喈曕喈侧瘓|喈ㄠ喁嵿喈曕喁峾喈庎喁嵿喈距疅喁亅喈喈侧瘓/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' 喈喈喁'; + } else if (hour < 6) { + return ' 喈掂瘓喈曕喁'; // 喈掂瘓喈曕喁 + } else if (hour < 10) { + return ' 喈曕喈侧瘓'; // 喈曕喈侧瘓 + } else if (hour < 14) { + return ' 喈ㄠ喁嵿喈曕喁'; // 喈ㄠ喁嵿喈曕喁 + } else if (hour < 18) { + return ' 喈庎喁嵿喈距疅喁'; // 喈庎喁嵿喈距疅喁 + } else if (hour < 22) { + return ' 喈喈侧瘓'; // 喈喈侧瘓 + } else { + return ' 喈喈喁'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喈喈喁') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === '喈掂瘓喈曕喁' || meridiem === '喈曕喈侧瘓') { + return hour; + } else if (meridiem === '喈ㄠ喁嵿喈曕喁') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/te.js b/node_modules/moment/dist/locale/te.js new file mode 100644 index 0000000..56f9f16 --- /dev/null +++ b/node_modules/moment/dist/locale/te.js @@ -0,0 +1,88 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +import moment from '../moment'; + +export default moment.defineLocale('te', { + months: '喟溹皑喟掂鞍喟縚喟翱喟睄喟班暗喟班翱_喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟苦安啾峗喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸喟膏睄喟熰眮_喟膏眴喟睄喟熰眴喟傕艾喟班睄_喟呧皶啾嵿盁啾嬥艾喟班睄_喟ㄠ暗喟傕艾喟班睄_喟∴翱喟膏眴喟傕艾喟班睄'.split( + '_' + ), + monthsShort: + '喟溹皑._喟翱喟睄喟._喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟._喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸._喟膏眴喟睄._喟呧皶啾嵿盁啾._喟ㄠ暗._喟∴翱喟膏眴.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '喟嗋唉喟苦暗喟距鞍喟俖喟膏眿喟暗喟距鞍喟俖喟皞喟椸俺喟掂熬喟班皞_喟眮喟о暗喟距鞍喟俖喟椸眮喟班眮喟掂熬喟班皞_喟多眮喟曕睄喟班暗喟距鞍喟俖喟多皑喟苦暗喟距鞍喟'.split( + '_' + ), + weekdaysShort: '喟嗋唉喟縚喟膏眿喟甠喟皞喟椸俺_喟眮喟喟椸眮喟班眮_喟多眮喟曕睄喟癬喟多皑喟'.split('_'), + weekdaysMin: '喟哶喟膏眿_喟皞_喟眮_喟椸眮_喟多眮_喟'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[喟ㄠ眹喟∴眮] LT', + nextDay: '[喟班眹喟眮] LT', + nextWeek: 'dddd, LT', + lastDay: '[喟ㄠ翱喟ㄠ睄喟╙ LT', + lastWeek: '[喟椸挨] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喟侧眿', + past: '%s 喟曕睄喟班翱喟む皞', + s: '喟曕眾喟ㄠ睄喟ㄠ翱 喟曕睄喟粪埃喟距安啾', + ss: '%d 喟膏眴喟曕皑啾嵿安啾', + m: '喟掄皶 喟ㄠ翱喟翱喟粪皞', + mm: '%d 喟ㄠ翱喟翱喟粪熬喟侧眮', + h: '喟掄皶 喟椸皞喟', + hh: '%d 喟椸皞喟熰安啾', + d: '喟掄皶 喟班眿喟溹眮', + dd: '%d 喟班眿喟溹眮喟侧眮', + M: '喟掄皶 喟ㄠ眴喟', + MM: '%d 喟ㄠ眴喟侧安啾', + y: '喟掄皶 喟膏皞喟掂挨啾嵿案喟班皞', + yy: '%d 喟膏皞喟掂挨啾嵿案喟班熬喟侧眮', + }, + dayOfMonthOrdinalParse: /\d{1,2}喟/, + ordinal: '%d喟', + meridiemParse: /喟班熬喟む睄喟班翱|喟夃唉喟皞|喟哀啾嵿隘喟距肮啾嵿皑喟倈喟膏熬喟皞喟む睄喟班皞/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喟班熬喟む睄喟班翱') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '喟夃唉喟皞') { + return hour; + } else if (meridiem === '喟哀啾嵿隘喟距肮啾嵿皑喟') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '喟膏熬喟皞喟む睄喟班皞') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '喟班熬喟む睄喟班翱'; + } else if (hour < 10) { + return '喟夃唉喟皞'; + } else if (hour < 17) { + return '喟哀啾嵿隘喟距肮啾嵿皑喟'; + } else if (hour < 20) { + return '喟膏熬喟皞喟む睄喟班皞'; + } else { + return '喟班熬喟む睄喟班翱'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tet.js b/node_modules/moment/dist/locale/tet.js new file mode 100644 index 0000000..8d834d7 --- /dev/null +++ b/node_modules/moment/dist/locale/tet.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +import moment from '../moment'; + +export default moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju帽u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/tg.js b/node_modules/moment/dist/locale/tg.js new file mode 100644 index 0000000..60d33c7 --- /dev/null +++ b/node_modules/moment/dist/locale/tg.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +import moment from '../moment'; + +var suffixes = { + 0: '-褍屑', + 1: '-褍屑', + 2: '-褞屑', + 3: '-褞屑', + 4: '-褍屑', + 5: '-褍屑', + 6: '-褍屑', + 7: '-褍屑', + 8: '-褍屑', + 9: '-褍屑', + 10: '-褍屑', + 12: '-褍屑', + 13: '-褍屑', + 20: '-褍屑', + 30: '-褞屑', + 40: '-褍屑', + 50: '-褍屑', + 60: '-褍屑', + 70: '-褍屑', + 80: '-褍屑', + 90: '-褍屑', + 100: '-褍屑', +}; + +export default moment.defineLocale('tg', { + months: { + format: '褟薪胁邪褉懈_褎械胁褉邪谢懈_屑邪褉褌懈_邪锌褉械谢懈_屑邪泄懈_懈褞薪懈_懈褞谢懈_邪胁谐褍褋褌懈_褋械薪褌褟斜褉懈_芯泻褌褟斜褉懈_薪芯褟斜褉懈_写械泻邪斜褉懈'.split( + '_' + ), + standalone: + '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + }, + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '褟泻褕邪薪斜械_写褍褕邪薪斜械_褋械褕邪薪斜械_褔芯褉褕邪薪斜械_锌邪薪曳褕邪薪斜械_曳褍屑褗邪_褕邪薪斜械'.split( + '_' + ), + weekdaysShort: '褟褕斜_写褕斜_褋褕斜_褔褕斜_锌褕斜_曳褍屑_褕薪斜'.split('_'), + weekdaysMin: '褟褕_写褕_褋褕_褔褕_锌褕_曳屑_褕斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袠屑褉盈蟹 褋芯邪褌懈] LT', + nextDay: '[肖邪褉写芯 褋芯邪褌懈] LT', + lastDay: '[袛懈褉盈蟹 褋芯邪褌懈] LT', + nextWeek: 'dddd[懈] [页邪褎褌邪懈 芯褟薪写邪 褋芯邪褌懈] LT', + lastWeek: 'dddd[懈] [页邪褎褌邪懈 谐褍蟹邪褕褌邪 褋芯邪褌懈] LT', + sameElse: 'L', + }, + relativeTime: { + future: '斜邪褗写懈 %s', + past: '%s 锌械褕', + s: '褟泻褔邪薪写 褋芯薪懈褟', + m: '褟泻 写邪覜懈覜邪', + mm: '%d 写邪覜懈覜邪', + h: '褟泻 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '褟泻 褉盈蟹', + dd: '%d 褉盈蟹', + M: '褟泻 屑芯页', + MM: '%d 屑芯页', + y: '褟泻 褋芯谢', + yy: '%d 褋芯谢', + }, + meridiemParse: /褕邪斜|褋褍斜页|褉盈蟹|斜械谐芯页/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '褕邪斜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '褋褍斜页') { + return hour; + } else if (meridiem === '褉盈蟹') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '斜械谐芯页') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '褕邪斜'; + } else if (hour < 11) { + return '褋褍斜页'; + } else if (hour < 16) { + return '褉盈蟹'; + } else if (hour < 19) { + return '斜械谐芯页'; + } else { + return '褕邪斜'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褍屑|褞屑)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/th.js b/node_modules/moment/dist/locale/th.js new file mode 100644 index 0000000..b3a5560 --- /dev/null +++ b/node_modules/moment/dist/locale/th.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +import moment from '../moment'; + +export default moment.defineLocale('th', { + months: '喔∴竵喔`覆喔勦浮_喔佮父喔∴笭喔侧笧喔编笝喔樴箤_喔∴傅喔權覆喔勦浮_喙喔∴俯喔侧涪喔檁喔炧袱喔┼笭喔侧竸喔喔∴复喔栢父喔權覆喔⑧笝_喔佮福喔佮笌喔侧竸喔喔复喔囙斧喔侧竸喔喔佮副喔權涪喔侧涪喔檁喔曕父喔ム覆喔勦浮_喔炧袱喔ㄠ笀喔脆竵喔侧涪喔檁喔樴副喔權抚喔侧竸喔'.split( + '_' + ), + monthsShort: + '喔.喔._喔.喔._喔∴傅.喔._喙喔.喔._喔.喔._喔∴复.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔笟喔斷傅_喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), + weekdaysShort: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔猒喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), // yes, three characters difference + weekdaysMin: '喔覆._喔._喔._喔._喔炧袱._喔._喔.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY 喙喔о弗喔 H:mm', + LLLL: '喔о副喔檇ddd喔椸傅喙 D MMMM YYYY 喙喔о弗喔 H:mm', + }, + meridiemParse: /喔佮箞喔笝喙喔椸傅喙堗涪喔噟喔弗喔编竾喙喔椸傅喙堗涪喔/, + isPM: function (input) { + return input === '喔弗喔编竾喙喔椸傅喙堗涪喔'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '喔佮箞喔笝喙喔椸傅喙堗涪喔'; + } else { + return '喔弗喔编竾喙喔椸傅喙堗涪喔'; + } + }, + calendar: { + sameDay: '[喔о副喔權笝喔掂箟 喙喔о弗喔瞉 LT', + nextDay: '[喔炧福喔膏箞喔囙笝喔掂箟 喙喔о弗喔瞉 LT', + nextWeek: 'dddd[喔笝喙夃覆 喙喔о弗喔瞉 LT', + lastDay: '[喙喔∴阜喙堗腑喔о覆喔權笝喔掂箟 喙喔о弗喔瞉 LT', + lastWeek: '[喔о副喔橾dddd[喔椸傅喙堗箒喔ム箟喔 喙喔о弗喔瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '喔傅喔 %s', + past: '%s喔椸傅喙堗箒喔ム箟喔', + s: '喙勦浮喙堗竵喔掂箞喔о复喔權覆喔椸傅', + ss: '%d 喔о复喔權覆喔椸傅', + m: '1 喔權覆喔椸傅', + mm: '%d 喔權覆喔椸傅', + h: '1 喔娻副喙堗抚喙傕浮喔', + hh: '%d 喔娻副喙堗抚喙傕浮喔', + d: '1 喔о副喔', + dd: '%d 喔о副喔', + w: '1 喔副喔涏笖喔侧斧喙', + ww: '%d 喔副喔涏笖喔侧斧喙', + M: '1 喙喔斷阜喔笝', + MM: '%d 喙喔斷阜喔笝', + y: '1 喔涏傅', + yy: '%d 喔涏傅', + }, +}); diff --git a/node_modules/moment/dist/locale/tk.js b/node_modules/moment/dist/locale/tk.js new file mode 100644 index 0000000..b26f99e --- /dev/null +++ b/node_modules/moment/dist/locale/tk.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +import moment from '../moment'; + +var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'眉nji", + 4: "'眉nji", + 100: "'眉nji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", +}; + +export default moment.defineLocale('tk', { + months: '脻anwar_Fewral_Mart_Aprel_Ma媒_I媒un_I媒ul_Awgust_Sent媒abr_Okt媒abr_No媒abr_Dekabr'.split( + '_' + ), + monthsShort: '脻an_Few_Mar_Apr_Ma媒_I媒n_I媒l_Awg_Sen_Okt_No媒_Dek'.split('_'), + weekdays: '脻ek艧enbe_Du艧enbe_Si艧enbe_脟ar艧enbe_Pen艧enbe_Anna_艦enbe'.split( + '_' + ), + weekdaysShort: '脻ek_Du艧_Si艧_脟ar_Pen_Ann_艦en'.split('_'), + weekdaysMin: '脻k_D艧_S艧_脟r_Pn_An_艦n'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[d眉媒n] LT', + lastWeek: '[ge莽en] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s so艌', + past: '%s 枚艌', + s: 'birn盲莽e sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir a媒', + MM: '%d a媒', + y: 'bir 媒yl', + yy: '%d 媒yl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tl-ph.js b/node_modules/moment/dist/locale/tl-ph.js new file mode 100644 index 0000000..581d74a --- /dev/null +++ b/node_modules/moment/dist/locale/tl-ph.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +import moment from '../moment'; + +export default moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/dist/locale/tlh.js b/node_modules/moment/dist/locale/tlh.js new file mode 100644 index 0000000..95b9151 --- /dev/null +++ b/node_modules/moment/dist/locale/tlh.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +import moment from '../moment'; + +var numbersNouns = 'pagh_wa鈥檁cha鈥檁wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + +function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; +} + +function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu鈥' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; +} + +function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } +} + +function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; +} + +export default moment.defineLocale('tlh', { + months: 'tera鈥 jar wa鈥檁tera鈥 jar cha鈥檁tera鈥 jar wej_tera鈥 jar loS_tera鈥 jar vagh_tera鈥 jar jav_tera鈥 jar Soch_tera鈥 jar chorgh_tera鈥 jar Hut_tera鈥 jar wa鈥檓aH_tera鈥 jar wa鈥檓aH wa鈥檁tera鈥 jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsShort: + 'jar wa鈥檁jar cha鈥檁jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa鈥檓aH_jar wa鈥檓aH wa鈥檁jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa鈥檒eS] LT', + nextWeek: 'LLL', + lastDay: '[wa鈥橦u鈥橾 LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa鈥 tup', + mm: translate, + h: 'wa鈥 rep', + hh: translate, + d: 'wa鈥 jaj', + dd: translate, + M: 'wa鈥 jar', + MM: translate, + y: 'wa鈥 DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/dist/locale/tr.js b/node_modules/moment/dist/locale/tr.js new file mode 100644 index 0000000..c5abbdc --- /dev/null +++ b/node_modules/moment/dist/locale/tr.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yi臒it Kaya: https://github.com/BYK + +import moment from '../moment'; + +var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'眉nc眉", + 4: "'眉nc眉", + 100: "'眉nc眉", + 6: "'nc谋", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'谋nc谋", + 90: "'谋nc谋", +}; + +export default moment.defineLocale('tr', { + months: 'Ocak_艦ubat_Mart_Nisan_May谋s_Haziran_Temmuz_A臒ustos_Eyl眉l_Ekim_Kas谋m_Aral谋k'.split( + '_' + ), + monthsShort: 'Oca_艦ub_Mar_Nis_May_Haz_Tem_A臒u_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Sal谋_脟ar艧amba_Per艧embe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_脟ar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_脟a_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? '枚枚' : '脰脰'; + } else { + return isLower ? '枚s' : '脰S'; + } + }, + meridiemParse: /枚枚|脰脰|枚s|脰S/, + isPM: function (input) { + return input === '枚s' || input === '脰S'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[yar谋n saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[d眉n] LT', + lastWeek: '[ge莽en] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 枚nce', + s: 'birka莽 saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir y谋l', + yy: '%d y谋l', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'谋nc谋"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tzl.js b/node_modules/moment/dist/locale/tzl.js new file mode 100644 index 0000000..62bfcdc --- /dev/null +++ b/node_modules/moment/dist/locale/tzl.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iust矛 Canun + +import moment from '../moment'; + +// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. +// This is currently too difficult (maybe even impossible) to add. +export default moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Mar莽_Avr茂u_Mai_G眉n_Julia_Guscht_Setemvar_Listop盲ts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_G眉n_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'S煤ladi_L煤ne莽i_Maitzi_M谩rcuri_Xh煤adi_Vi茅ner莽i_S谩turi'.split('_'), + weekdaysShort: 'S煤l_L煤n_Mai_M谩r_Xh煤_Vi茅_S谩t'.split('_'), + weekdaysMin: 'S煤_L煤_Ma_M谩_Xh_Vi_S谩'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi 脿] LT', + nextDay: '[dem脿 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[ieiri 脿] LT', + lastWeek: '[s眉r el] dddd [lasteu 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, +}); + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n m铆ut", "'iens m铆ut"], + mm: [number + ' m铆uts', '' + number + ' m铆uts'], + h: ["'n 镁ora", "'iensa 镁ora"], + hh: [number + ' 镁oras', '' + number + ' 镁oras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; +} diff --git a/node_modules/moment/dist/locale/tzm-latn.js b/node_modules/moment/dist/locale/tzm-latn.js new file mode 100644 index 0000000..6a427d8 --- /dev/null +++ b/node_modules/moment/dist/locale/tzm-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm-latn', { + months: 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minu岣', + mm: '%d minu岣', + h: 'sa蓻a', + hh: '%d tassa蓻in', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/tzm.js b/node_modules/moment/dist/locale/tzm.js new file mode 100644 index 0000000..1e5d597 --- /dev/null +++ b/node_modules/moment/dist/locale/tzm.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm', { + months: '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + monthsShort: + '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + weekdays: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysShort: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysMin: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[獯扳禉獯封祬 獯碷 LT', + nextDay: '[獯扳禉獯解窗 獯碷 LT', + nextWeek: 'dddd [獯碷 LT', + lastDay: '[獯扳禋獯扳祻獾 獯碷 LT', + lastWeek: 'dddd [獯碷 LT', + sameElse: 'L', + }, + relativeTime: { + future: '獯封窗獯封祬 獾 獾⑩窗獾 %s', + past: '獾⑩窗獾 %s', + s: '獾夆祹獾夆唇', + ss: '%d 獾夆祹獾夆唇', + m: '獾庘祲獾忊祿獯', + mm: '%d 獾庘祲獾忊祿獯', + h: '獾欌窗獾勨窗', + hh: '%d 獾溾窗獾欌禉獯扳祫獾夆祻', + d: '獯扳禉獾', + dd: '%d o獾欌禉獯扳祻', + M: '獯扳耽o獾撯禂', + MM: '%d 獾夆耽獾⑩祲獾斺祻', + y: '獯扳禉獯斥窗獾', + yy: '%d 獾夆禉獯斥窗獾欌祻', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ug-cn.js b/node_modules/moment/dist/locale/ug-cn.js new file mode 100644 index 0000000..ad6fa94 --- /dev/null +++ b/node_modules/moment/dist/locale/ug-cn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +import moment from '../moment'; + +export default moment.defineLocale('ug-cn', { + months: '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + monthsShort: + '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + weekdays: '賷蹠賰卮蹠賳亘蹠_丿蹐卮蹠賳亘蹠_爻蹠賷卮蹠賳亘蹠_趩丕乇卮蹠賳亘蹠_倬蹠賷卮蹠賳亘蹠_噩蹐賲蹠_卮蹠賳亘蹠'.split( + '_' + ), + weekdaysShort: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + weekdaysMin: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶', + LLL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + LLLL: 'dddd貙 YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + }, + meridiemParse: /賷蹛乇賶賲 賰蹛趩蹠|爻蹠诰蹠乇|趩蹐卮鬲賶賳 亘蹏乇蹏賳|趩蹐卮|趩蹐卮鬲賶賳 賰蹛賷賶賳|賰蹠趩/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === '賷蹛乇賶賲 賰蹛趩蹠' || + meridiem === '爻蹠诰蹠乇' || + meridiem === '趩蹐卮鬲賶賳 亘蹏乇蹏賳' + ) { + return hour; + } else if (meridiem === '趩蹐卮鬲賶賳 賰蹛賷賶賳' || meridiem === '賰蹠趩') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '賷蹛乇賶賲 賰蹛趩蹠'; + } else if (hm < 900) { + return '爻蹠诰蹠乇'; + } else if (hm < 1130) { + return '趩蹐卮鬲賶賳 亘蹏乇蹏賳'; + } else if (hm < 1230) { + return '趩蹐卮'; + } else if (hm < 1800) { + return '趩蹐卮鬲賶賳 賰蹛賷賶賳'; + } else { + return '賰蹠趩'; + } + }, + calendar: { + sameDay: '[亘蹐诏蹐賳 爻丕卅蹠鬲] LT', + nextDay: '[卅蹠鬲蹠 爻丕卅蹠鬲] LT', + nextWeek: '[賰蹛賱蹠乇賰賶] dddd [爻丕卅蹠鬲] LT', + lastDay: '[鬲蹎賳蹐诏蹐賳] LT', + lastWeek: '[卅丕賱丿賶賳賯賶] dddd [爻丕卅蹠鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 賰蹛賷賶賳', + past: '%s 亘蹏乇蹏賳', + s: '賳蹠趩趩蹠 爻蹛賰賵賳鬲', + ss: '%d 爻蹛賰賵賳鬲', + m: '亘賶乇 賲賶賳蹏鬲', + mm: '%d 賲賶賳蹏鬲', + h: '亘賶乇 爻丕卅蹠鬲', + hh: '%d 爻丕卅蹠鬲', + d: '亘賶乇 賰蹐賳', + dd: '%d 賰蹐賳', + M: '亘賶乇 卅丕賷', + MM: '%d 卅丕賷', + y: '亘賶乇 賷賶賱', + yy: '%d 賷賶賱', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-賰蹐賳賶|-卅丕賷|-诰蹠倬鬲蹠)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-賰蹐賳賶'; + case 'w': + case 'W': + return number + '-诰蹠倬鬲蹠'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/uk.js b/node_modules/moment/dist/locale/uk.js new file mode 100644 index 0000000..8879b5e --- /dev/null +++ b/node_modules/moment/dist/locale/uk.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elens煤le : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写懈_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写懈_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁懈谢懈薪邪_褏胁懈谢懈薪懈_褏胁懈谢懈薪' : '褏胁懈谢懈薪褍_褏胁懈谢懈薪懈_褏胁懈谢懈薪', + hh: withoutSuffix ? '谐芯写懈薪邪_谐芯写懈薪懈_谐芯写懈薪' : '谐芯写懈薪褍_谐芯写懈薪懈_谐芯写懈薪', + dd: '写械薪褜_写薪褨_写薪褨胁', + MM: '屑褨褋褟褑褜_屑褨褋褟褑褨_屑褨褋褟褑褨胁', + yy: '褉褨泻_褉芯泻懈_褉芯泻褨胁', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁懈谢懈薪邪' : '褏胁懈谢懈薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐芯写懈薪邪' : '谐芯写懈薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + '薪械写褨谢褟_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写邪_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲廮褋褍斜芯褌邪'.split( + '_' + ), + accusative: + '薪械写褨谢褞_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写褍_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲巁褋褍斜芯褌褍'.split( + '_' + ), + genitive: + '薪械写褨谢褨_锌芯薪械写褨谢泻邪_胁褨胁褌芯褉泻邪_褋械褉械写懈_褔械褌胁械褉谐邪_锌鈥櫻徰傂叫秆喲朹褋褍斜芯褌懈'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[袙胁校褍]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:屑懈薪褍谢芯褩|薪邪褋褌褍锌薪芯褩)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; +} +function processHoursFunction(str) { + return function () { + return str + '芯' + (this.hours() === 11 ? '斜' : '') + '] LT'; + }; +} + +export default moment.defineLocale('uk', { + months: { + format: '褋褨褔薪褟_谢褞褌芯谐芯_斜械褉械蟹薪褟_泻胁褨褌薪褟_褌褉邪胁薪褟_褔械褉胁薪褟_谢懈锌薪褟_褋械褉锌薪褟_胁械褉械褋薪褟_卸芯胁褌薪褟_谢懈褋褌芯锌邪写邪_谐褉褍写薪褟'.split( + '_' + ), + standalone: + '褋褨褔械薪褜_谢褞褌懈泄_斜械褉械蟹械薪褜_泻胁褨褌械薪褜_褌褉邪胁械薪褜_褔械褉胁械薪褜_谢懈锌械薪褜_褋械褉锌械薪褜_胁械褉械褋械薪褜_卸芯胁褌械薪褜_谢懈褋褌芯锌邪写_谐褉褍写械薪褜'.split( + '_' + ), + }, + monthsShort: '褋褨褔_谢褞褌_斜械褉_泻胁褨褌_褌褉邪胁_褔械褉胁_谢懈锌_褋械褉锌_胁械褉_卸芯胁褌_谢懈褋褌_谐褉褍写'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 褉.', + LLL: 'D MMMM YYYY 褉., HH:mm', + LLLL: 'dddd, D MMMM YYYY 褉., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[小褜芯谐芯写薪褨 '), + nextDay: processHoursFunction('[袟邪胁褌褉邪 '), + lastDay: processHoursFunction('[袙褔芯褉邪 '), + nextWeek: processHoursFunction('[校] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[袦懈薪褍谢芯褩] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[袦懈薪褍谢芯谐芯] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '%s 褌芯屑褍', + s: '写械泻褨谢褜泻邪 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '谐芯写懈薪褍', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + M: '屑褨褋褟褑褜', + MM: relativeTimeWithPlural, + y: '褉褨泻', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /薪芯褔褨|褉邪薪泻褍|写薪褟|胁械褔芯褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔芯褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褨'; + } else if (hour < 12) { + return '褉邪薪泻褍'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔芯褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/ur.js b/node_modules/moment/dist/locale/ur.js new file mode 100644 index 0000000..ca5e252 --- /dev/null +++ b/node_modules/moment/dist/locale/ur.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +import moment from '../moment'; + +var months = [ + '噩賳賵乇蹖', + '賮乇賵乇蹖', + '賲丕乇趩', + '丕倬乇蹖賱', + '賲卅蹖', + '噩賵賳', + '噩賵賱丕卅蹖', + '丕诏爻鬲', + '爻鬲賲亘乇', + '丕讴鬲賵亘乇', + '賳賵賲亘乇', + '丿爻賲亘乇', + ], + days = ['丕鬲賵丕乇', '倬蹖乇', '賲賳诏賱', '亘丿诰', '噩賲毓乇丕鬲', '噩賲毓蹃', '蹃賮鬲蹃']; + +export default moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丌噩 亘賵賯鬲] LT', + nextDay: '[讴賱 亘賵賯鬲] LT', + nextWeek: 'dddd [亘賵賯鬲] LT', + lastDay: '[诏匕卮鬲蹃 乇賵夭 亘賵賯鬲] LT', + lastWeek: '[诏匕卮鬲蹃] dddd [亘賵賯鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 亘毓丿', + past: '%s 賯亘賱', + s: '趩賳丿 爻蹖讴賳趫', + ss: '%d 爻蹖讴賳趫', + m: '丕蹖讴 賲賳俟', + mm: '%d 賲賳俟', + h: '丕蹖讴 诏诰賳俟蹃', + hh: '%d 诏诰賳俟蹝', + d: '丕蹖讴 丿賳', + dd: '%d 丿賳', + M: '丕蹖讴 賲丕蹃', + MM: '%d 賲丕蹃', + y: '丕蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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/node_modules/moment/dist/locale/uz-latn.js b/node_modules/moment/dist/locale/uz-latn.js new file mode 100644 index 0000000..a2d577e --- /dev/null +++ b/node_modules/moment/dist/locale/uz-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +import moment from '../moment'; + +export default moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/uz.js b/node_modules/moment/dist/locale/uz.js new file mode 100644 index 0000000..03914dd --- /dev/null +++ b/node_modules/moment/dist/locale/uz.js @@ -0,0 +1,51 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +import moment from '../moment'; + +export default moment.defineLocale('uz', { + months: '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '携泻褕邪薪斜邪_袛褍褕邪薪斜邪_小械褕邪薪斜邪_效芯褉褕邪薪斜邪_袩邪泄褕邪薪斜邪_袞褍屑邪_楔邪薪斜邪'.split('_'), + weekdaysShort: '携泻褕_袛褍褕_小械褕_效芯褉_袩邪泄_袞褍屑_楔邪薪'.split('_'), + weekdaysMin: '携泻_袛褍_小械_效芯_袩邪_袞褍_楔邪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[袘褍谐褍薪 褋芯邪褌] LT [写邪]', + nextDay: '[协褉褌邪谐邪] LT [写邪]', + nextWeek: 'dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + lastDay: '[袣械褔邪 褋芯邪褌] LT [写邪]', + lastWeek: '[校褌谐邪薪] dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + sameElse: 'L', + }, + relativeTime: { + future: '携泻懈薪 %s 懈褔懈写邪', + past: '袘懈褉 薪械褔邪 %s 芯谢写懈薪', + s: '褎褍褉褋邪褌', + ss: '%d 褎褍褉褋邪褌', + m: '斜懈褉 写邪泻懈泻邪', + mm: '%d 写邪泻懈泻邪', + h: '斜懈褉 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '斜懈褉 泻褍薪', + dd: '%d 泻褍薪', + M: '斜懈褉 芯泄', + MM: '%d 芯泄', + y: '斜懈褉 泄懈谢', + yy: '%d 泄懈谢', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/dist/locale/vi.js b/node_modules/moment/dist/locale/vi.js new file mode 100644 index 0000000..2b11cf6 --- /dev/null +++ b/node_modules/moment/dist/locale/vi.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +import moment from '../moment'; + +export default moment.defineLocale('vi', { + months: 'th谩ng 1_th谩ng 2_th谩ng 3_th谩ng 4_th谩ng 5_th谩ng 6_th谩ng 7_th谩ng 8_th谩ng 9_th谩ng 10_th谩ng 11_th谩ng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ch峄 nh岷璽_th峄 hai_th峄 ba_th峄 t瓢_th峄 n膬m_th峄 s谩u_th峄 b岷'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [n膬m] YYYY', + LLL: 'D MMMM [n膬m] YYYY HH:mm', + LLLL: 'dddd, D MMMM [n膬m] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[H么m nay l煤c] LT', + nextDay: '[Ng脿y mai l煤c] LT', + nextWeek: 'dddd [tu岷 t峄沬 l煤c] LT', + lastDay: '[H么m qua l煤c] LT', + lastWeek: 'dddd [tu岷 tr瓢峄沜 l煤c] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s t峄沬', + past: '%s tr瓢峄沜', + s: 'v脿i gi芒y', + ss: '%d gi芒y', + m: 'm峄檛 ph煤t', + mm: '%d ph煤t', + h: 'm峄檛 gi峄', + hh: '%d gi峄', + d: 'm峄檛 ng脿y', + dd: '%d ng脿y', + w: 'm峄檛 tu岷', + ww: '%d tu岷', + M: 'm峄檛 th谩ng', + MM: '%d th谩ng', + y: 'm峄檛 n膬m', + yy: '%d n膬m', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/dist/locale/x-pseudo.js b/node_modules/moment/dist/locale/x-pseudo.js new file mode 100644 index 0000000..f8adbb8 --- /dev/null +++ b/node_modules/moment/dist/locale/x-pseudo.js @@ -0,0 +1,73 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +import moment from '../moment'; + +export default moment.defineLocale('x-pseudo', { + months: 'J~谩帽煤谩~r媒_F~茅br煤~谩r媒_~M谩rc~h_脕p~r铆l_~M谩媒_~J煤帽茅~_J煤l~媒_脕煤~g煤st~_S茅p~t茅mb~茅r_脫~ct贸b~茅r_脩~贸v茅m~b茅r_~D茅c茅~mb茅r'.split( + '_' + ), + monthsShort: + 'J~谩帽_~F茅b_~M谩r_~脕pr_~M谩媒_~J煤帽_~J煤l_~脕煤g_~S茅p_~脫ct_~脩贸v_~D茅c'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~煤帽d谩~媒_M贸~帽d谩媒~_T煤茅~sd谩媒~_W茅d~帽茅sd~谩媒_T~h煤rs~d谩媒_~Fr铆d~谩媒_S~谩t煤r~d谩媒'.split( + '_' + ), + weekdaysShort: 'S~煤帽_~M贸帽_~T煤茅_~W茅d_~Th煤_~Fr铆_~S谩t'.split('_'), + weekdaysMin: 'S~煤_M贸~_T煤_~W茅_T~h_Fr~_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~贸d谩~媒 谩t] LT', + nextDay: '[T~贸m贸~rr贸~w 谩t] LT', + nextWeek: 'dddd [谩t] LT', + lastDay: '[脻~茅st~茅rd谩~媒 谩t] LT', + lastWeek: '[L~谩st] dddd [谩t] LT', + sameElse: 'L', + }, + relativeTime: { + future: '铆~帽 %s', + past: '%s 谩~g贸', + s: '谩 ~f茅w ~s茅c贸~帽ds', + ss: '%d s~茅c贸帽~ds', + m: '谩 ~m铆帽~煤t茅', + mm: '%d m~铆帽煤~t茅s', + h: '谩~帽 h贸~煤r', + hh: '%d h~贸煤rs', + d: '谩 ~d谩媒', + dd: '%d d~谩媒s', + M: '谩 ~m贸帽~th', + MM: '%d m~贸帽t~hs', + y: '谩 ~媒茅谩r', + yy: '%d 媒~茅谩rs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/dist/locale/yo.js b/node_modules/moment/dist/locale/yo.js new file mode 100644 index 0000000..2fcb6e4 --- /dev/null +++ b/node_modules/moment/dist/locale/yo.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +import moment from '../moment'; + +export default moment.defineLocale('yo', { + months: 'S岷固乺岷固乢E虁re虁le虁_岷竢岷固na虁_I虁gbe虂_E虁bibi_O虁ku虁du_Ag岷筸o_O虁gu虂n_Owewe_峄屘wa虁ra虁_Be虂lu虂_峄屘p岷固虁'.split( + '_' + ), + monthsShort: 'S岷固乺_E虁rl_岷竢n_I虁gb_E虁bi_O虁ku虁_Ag岷筥O虁gu虂_Owe_峄屘wa虁_Be虂l_峄屘p岷固虁'.split('_'), + weekdays: 'A虁i虁ku虂_Aje虂_I虁s岷固乬un_峄宩峄嵦乺u虂_峄宩峄嵦乥峄峗岷竧i虁_A虁ba虂m岷固乼a'.split('_'), + weekdaysShort: 'A虁i虁k_Aje虂_I虁s岷固乢峄宩r_峄宩b_岷竧i虁_A虁ba虂'.split('_'), + weekdaysMin: 'A虁i虁_Aj_I虁s_峄宺_峄宐_岷竧_A虁b'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[O虁ni虁 ni] LT', + nextDay: '[峄屘la ni] LT', + nextWeek: "dddd [峄宻岷固 to虂n'b峄峕 [ni] LT", + lastDay: '[A虁na ni] LT', + lastWeek: 'dddd [峄宻岷固 to虂l峄嵦乚 [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ni虂 %s', + past: '%s k峄峧a虂', + s: 'i虁s岷筳u虂 aaya虂 die', + ss: 'aaya虂 %d', + m: 'i虁s岷筳u虂 kan', + mm: 'i虁s岷筳u虂 %d', + h: 'wa虂kati kan', + hh: 'wa虂kati %d', + d: '峄峧峄嵦 kan', + dd: '峄峧峄嵦 %d', + M: 'osu虁 kan', + MM: 'osu虁 %d', + y: '峄峝u虂n kan', + yy: '峄峝u虂n %d', + }, + dayOfMonthOrdinalParse: /峄峧峄嵦乗s\d{1,2}/, + ordinal: '峄峧峄嵦 %d', + 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/node_modules/moment/dist/locale/zh-cn.js b/node_modules/moment/dist/locale/zh-cn.js new file mode 100644 index 0000000..2345ee6 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-cn.js @@ -0,0 +1,120 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +import moment from '../moment'; + +export default moment.defineLocale('zh-cn', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '鍛ㄦ棩_鍛ㄤ竴_鍛ㄤ簩_鍛ㄤ笁_鍛ㄥ洓_鍛ㄤ簲_鍛ㄥ叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃h鐐筸m鍒', + LLLL: 'YYYY骞碝鏈圖鏃dddAh鐐筸m鍒', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } else { + // '涓崍' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[涓媇dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + lastDay: '[鏄ㄥぉ]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[涓奭dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾鍛)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '鍛'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍚', + past: '%s鍓', + s: '鍑犵', + ss: '%d 绉', + m: '1 鍒嗛挓', + mm: '%d 鍒嗛挓', + h: '1 灏忔椂', + hh: '%d 灏忔椂', + d: '1 澶', + dd: '%d 澶', + w: '1 鍛', + ww: '%d 鍛', + M: '1 涓湀', + MM: '%d 涓湀', + y: '1 骞', + yy: '%d 骞', + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + 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/node_modules/moment/dist/locale/zh-hk.js b/node_modules/moment/dist/locale/zh-hk.js new file mode 100644 index 0000000..78a1019 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-hk.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +import moment from '../moment'; + +export default moment.defineLocale('zh-hk', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1200) { + return '涓婂崍'; + } else if (hm === 1200) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: '[涓媇ddddLT', + lastDay: '[鏄ㄥぉ]LT', + lastWeek: '[涓奭ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/dist/locale/zh-mo.js b/node_modules/moment/dist/locale/zh-mo.js new file mode 100644 index 0000000..9ed795d --- /dev/null +++ b/node_modules/moment/dist/locale/zh-mo.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +import moment from '../moment'; + +export default moment.defineLocale('zh-mo', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍏', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/dist/locale/zh-tw.js b/node_modules/moment/dist/locale/zh-tw.js new file mode 100644 index 0000000..aa98ab1 --- /dev/null +++ b/node_modules/moment/dist/locale/zh-tw.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +import moment from '../moment'; + +export default moment.defineLocale('zh-tw', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/dist/moment.js b/node_modules/moment/dist/moment.js new file mode 100644 index 0000000..0d69633 --- /dev/null +++ b/node_modules/moment/dist/moment.js @@ -0,0 +1,5677 @@ +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +var hookCallback; + +function hooks() { + return hookCallback.apply(null, arguments); +} + +// This is done to register the method called with moment() +// without creating circular dependencies. +function setHookCallback(callback) { + hookCallback = callback; +} + +function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); +} + +function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); +} + +function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); +} + +function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } +} + +function isUndefined(input) { + return input === void 0; +} + +function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); +} + +function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); +} + +function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; +} + +function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; +} + +function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); +} + +function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; +} + +function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; +} + +var some; +if (Array.prototype.some) { + some = Array.prototype.some; +} else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; +} + +function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; +} + +function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; +} + +// Plugins that add properties should also add the key here (null value), +// so we can properly clone ourselves. +var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + +function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; +} + +// Moment prototype object +function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } +} + +function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); +} + +function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } +} + +function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); +} + +var deprecations = {}; + +function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } +} + +hooks.suppressDeprecationWarnings = false; +hooks.deprecationHandler = null; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); +} + +function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; +} + +function Locale(config) { + if (config != null) { + this.set(config); + } +} + +var keys; + +if (Object.keys) { + keys = Object.keys; +} else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; +} + +var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', +}; + +function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; +} + +function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); +} + +var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + +// token: 'M' +// padded: ['MM', 2] +// ordinal: 'Mo' +// callback: function () { this.month() + 1 } +function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } +} + +function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); +} + +function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; +} + +// format date using native date object +function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); +} + +function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; +} + +var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', +}; + +function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; +} + +var defaultInvalidDate = 'Invalid date'; + +function invalidDate() { + return this._invalidDate; +} + +var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + +function ordinal(number) { + return this._ordinal.replace('%d', number); +} + +var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', +}; + +function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); +} + +function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); +} + +var aliases = {}; + +function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; +} + +function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; +} + +function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; +} + +var priorities = {}; + +function addUnitPriority(unit, priority) { + priorities[unit] = priority; +} + +function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; +} + +function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +} + +function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } +} + +function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; +} + +function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; +} + +function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; +} + +function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } +} + +// MOMENTS + +function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; +} + +function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; +} + +var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + +regexes = {}; + +function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; +} + +function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); +} + +// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript +function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); +} + +function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); +} + +var tokens = {}; + +function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } +} + +function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); +} + +function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } +} + +var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + +function mod(n, x) { + return ((n % x) + x) % x; +} + +var indexOf; + +if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; +} else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; +} + +function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); +} + +// FORMATTING + +addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; +}); + +addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); +}); + +addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); +}); + +// ALIASES + +addUnitAlias('month', 'M'); + +// PRIORITY + +addUnitPriority('month', 8); + +// PARSING + +addRegexToken('M', match1to2); +addRegexToken('MM', match1to2, match2); +addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); +}); +addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); +}); + +addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; +}); + +addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } +}); + +// LOCALES + +var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + +function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; +} + +function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; +} + +function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([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 ( + 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; + } + } +} + +// MOMENTS + +function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; +} + +function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } +} + +function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); +} + +function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } +} + +function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } +} + +function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); +} + +// FORMATTING + +addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; +}); + +addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; +}); + +addFormatToken(0, ['YYYY', 4], 0, 'year'); +addFormatToken(0, ['YYYYY', 5], 0, 'year'); +addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + +// ALIASES + +addUnitAlias('year', 'y'); + +// PRIORITIES + +addUnitPriority('year', 1); + +// PARSING + +addRegexToken('Y', matchSigned); +addRegexToken('YY', match1to2, match2); +addRegexToken('YYYY', match1to4, match4); +addRegexToken('YYYYY', match1to6, match6); +addRegexToken('YYYYYY', match1to6, match6); + +addParseToken(['YYYYY', 'YYYYYY'], YEAR); +addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); +}); +addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); +}); +addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); +}); + +// HELPERS + +function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; +} + +// HOOKS + +hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); +}; + +// MOMENTS + +var getSetYear = makeGetSet('FullYear', true); + +function getIsLeapYear() { + return isLeapYear(this.year()); +} + +function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; +} + +function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; +} + +// start-of-first-week - start-of-year +function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; +} + +// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday +function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; +} + +function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; +} + +function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; +} + +// FORMATTING + +addFormatToken('w', ['ww', 2], 'wo', 'week'); +addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + +// ALIASES + +addUnitAlias('week', 'w'); +addUnitAlias('isoWeek', 'W'); + +// PRIORITIES + +addUnitPriority('week', 5); +addUnitPriority('isoWeek', 5); + +// PARSING + +addRegexToken('w', match1to2); +addRegexToken('ww', match1to2, match2); +addRegexToken('W', match1to2); +addRegexToken('WW', match1to2, match2); + +addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } +); + +// HELPERS + +// LOCALES + +function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; +} + +var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. +}; + +function localeFirstDayOfWeek() { + return this._week.dow; +} + +function localeFirstDayOfYear() { + return this._week.doy; +} + +// MOMENTS + +function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +// FORMATTING + +addFormatToken('d', 0, 'do', 'day'); + +addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); +}); + +addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); +}); + +addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); +}); + +addFormatToken('e', 0, 0, 'weekday'); +addFormatToken('E', 0, 0, 'isoWeekday'); + +// ALIASES + +addUnitAlias('day', 'd'); +addUnitAlias('weekday', 'e'); +addUnitAlias('isoWeekday', 'E'); + +// PRIORITY +addUnitPriority('day', 11); +addUnitPriority('weekday', 11); +addUnitPriority('isoWeekday', 11); + +// PARSING + +addRegexToken('d', match1to2); +addRegexToken('e', match1to2); +addRegexToken('E', match1to2); +addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); +}); +addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); +}); +addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); +}); + +addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } +}); + +addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); +}); + +// HELPERS + +function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; +} + +function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; +} + +// LOCALES +function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); +} + +var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + +function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; +} + +function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; +} + +function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; +} + +function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } +} + +// MOMENTS + +function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } +} + +function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); +} + +function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } +} + +function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } +} + +function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } +} + +function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } +} + +function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); +} + +// FORMATTING + +function hFormat() { + return this.hours() % 12 || 12; +} + +function kFormat() { + return this.hours() || 24; +} + +addFormatToken('H', ['HH', 2], 0, 'hour'); +addFormatToken('h', ['hh', 2], 0, hFormat); +addFormatToken('k', ['kk', 2], 0, kFormat); + +addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); +}); + +addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); +}); + +addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); +} + +meridiem('a', true); +meridiem('A', false); + +// ALIASES + +addUnitAlias('hour', 'h'); + +// PRIORITY +addUnitPriority('hour', 13); + +// PARSING + +function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; +} + +addRegexToken('a', matchMeridiem); +addRegexToken('A', matchMeridiem); +addRegexToken('H', match1to2); +addRegexToken('h', match1to2); +addRegexToken('k', match1to2); +addRegexToken('HH', match1to2, match2); +addRegexToken('hh', match1to2, match2); +addRegexToken('kk', match1to2, match2); + +addRegexToken('hmm', match3to4); +addRegexToken('hmmss', match5to6); +addRegexToken('Hmm', match3to4); +addRegexToken('Hmmss', match5to6); + +addParseToken(['H', 'HH'], HOUR); +addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; +}); +addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; +}); +addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); +}); +addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); +}); + +// LOCALES + +function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; +} + +var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + +function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } +} + +var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, +}; + +// internal storage for locale config files +var locales = {}, + localeFamilies = {}, + globalLocale; + +function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; +} + +function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; +} + +// pick the locale from the array +// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each +// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root +function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; +} + +function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; +} + +function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; +} + +// This function will load locale and then set the global locale. If +// no arguments are passed in, it will simply return the current global +// locale key. +function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; +} + +function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } +} + +function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; +} + +// returns locale data +function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); +} + +function listLocales() { + return keys(locales); +} + +function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; +} + +// iso 8601 regex +// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) +var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + +// date from iso format +function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } +} + +function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr +) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; +} + +function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; +} + +function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); +} + +function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; +} + +function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } +} + +// date and time from ref 2822 format +function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } +} + +// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict +function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } +} + +hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } +); + +// Pick the first defined of two or three arguments. +function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; +} + +function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; +} + +// convert an array to a date. +// the array should mirror the parameters below +// note: all values past the year are optional and will default to the lowest possible value. +// [year, month, day , hour, minute, second, millisecond] +function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + 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 ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } +} + +function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } +} + +// constant that refers to the ISO standard +hooks.ISO_8601 = function () {}; + +// constant that refers to the RFC 2822 form +hooks.RFC_2822 = function () {}; + +// date from string and format string +function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); +} + +function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } +} + +// date from string and array of format strings +function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); +} + +function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); +} + +function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; +} + +function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; +} + +function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } +} + +function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); +} + +function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); +} + +var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + +// Pick a moment m from moments so that m[fn](other) is true for all +// other. This relies on the function fn to be transitive. +// +// moments should either be an array of moment objects or an array, whose +// first element is an array of moment objects. +function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; +} + +// TODO: Use [].sort instead? +function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); +} + +function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); +} + +var now = function () { + return Date.now ? Date.now() : +new Date(); +}; + +var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', +]; + +function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; +} + +function isValid$1() { + return this._isValid; +} + +function createInvalid$1() { + return createDuration(NaN); +} + +function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); +} + +function isDuration(obj) { + return obj instanceof Duration; +} + +function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } +} + +// compare two arrays, return the number of differences +function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; +} + +// FORMATTING + +function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); +} + +offset('Z', ':'); +offset('ZZ', ''); + +// PARSING + +addRegexToken('Z', matchShortOffset); +addRegexToken('ZZ', matchShortOffset); +addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); +}); + +// HELPERS + +// timezone chunker +// '+10:00' > ['10', '00'] +// '-1530' > ['-15', '30'] +var chunkOffset = /([\+\-]|\d\d)/gi; + +function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; +} + +// Return a moment from input, that is local/utc/zone equivalent to model. +function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } +} + +function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); +} + +// HOOKS + +// This function will be called whenever a moment is mutated. +// It is intended to keep the offset in sync with the timezone. +hooks.updateOffset = function () {}; + +// MOMENTS + +// keepLocalTime = true means only change the timezone, without +// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> +// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset +// +0200, so we adjust the time as needed, to be valid. +// +// Keeping the time actually adds/subtracts (one hour) +// from the actual represented time. That is why we call updateOffset +// a second time. In case it wants us to change the offset again +// _changeInProgress == true case, then we have to adjust, because +// there is no such time in the given timezone. +function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } +} + +function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } +} + +function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); +} + +function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; +} + +function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; +} + +function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; +} + +function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); +} + +function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; +} + +function isLocal() { + return this.isValid() ? !this._isUTC : false; +} + +function isUtcOffset() { + return this.isValid() ? this._isUTC : false; +} + +function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; +} + +// ASP.NET json date format regex +var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + +function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; +} + +createDuration.fn = Duration.prototype; +createDuration.invalid = createInvalid$1; + +function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; +} + +function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; +} + +function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; +} + +// TODO: remove 'name' arg after deprecation is removed +function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; +} + +function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } +} + +var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + +function isString(input) { + return typeof input === 'string' || input instanceof String; +} + +// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined +function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); +} + +function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; +} + +function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; +} + +function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); +} + +function clone() { + return new Moment(this); +} + +function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } +} + +function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } +} + +function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); +} + +function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } +} + +function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); +} + +function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); +} + +function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); +} + +function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; +} + +hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; +hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + +function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); +} + +function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); +} + +/** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ +function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); +} + +function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); +} + +function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); +} + +function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); +} + +// If passed a locale key, it will set the locale for this +// instance. Otherwise, it will return the locale configuration +// variables for this instance. +function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } +} + +var lang = deprecate( + '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(); + } else { + return this.locale(key); + } + } +); + +function localeData() { + return this._locale; +} + +var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + +// actual modulo - handles negative numbers (for dates before 1970): +function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; +} + +function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } +} + +function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } +} + +function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; +} + +function unix() { + return Math.floor(this.valueOf() / 1000); +} + +function toDate() { + return new Date(this.valueOf()); +} + +function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; +} + +function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; +} + +function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; +} + +function isValid$2() { + return isValid(this); +} + +function parsingFlags() { + return extend({}, getParsingFlags(this)); +} + +function invalidAt() { + return getParsingFlags(this).overflow; +} + +function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; +} + +addFormatToken('N', 0, 0, 'eraAbbr'); +addFormatToken('NN', 0, 0, 'eraAbbr'); +addFormatToken('NNN', 0, 0, 'eraAbbr'); +addFormatToken('NNNN', 0, 0, 'eraName'); +addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + +addFormatToken('y', ['y', 1], 'yo', 'eraYear'); +addFormatToken('y', ['yy', 2], 0, 'eraYear'); +addFormatToken('y', ['yyy', 3], 0, 'eraYear'); +addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + +addRegexToken('N', matchEraAbbr); +addRegexToken('NN', matchEraAbbr); +addRegexToken('NNN', matchEraAbbr); +addRegexToken('NNNN', matchEraName); +addRegexToken('NNNNN', matchEraNarrow); + +addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } +); + +addRegexToken('y', matchUnsigned); +addRegexToken('yy', matchUnsigned); +addRegexToken('yyy', matchUnsigned); +addRegexToken('yyyy', matchUnsigned); +addRegexToken('yo', matchEraYearOrdinal); + +addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); +addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } +}); + +function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; +} + +function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } +} + +function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } +} + +function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; +} + +function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; +} + +function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; +} + +function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); +} + +function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; +} + +function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; +} + +function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; +} + +function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); +} + +function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); +} + +function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); +} + +function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; +} + +function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); +} + +// FORMATTING + +addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; +}); + +addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; +}); + +function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); +} + +addWeekYearFormatToken('gggg', 'weekYear'); +addWeekYearFormatToken('ggggg', 'weekYear'); +addWeekYearFormatToken('GGGG', 'isoWeekYear'); +addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + +// ALIASES + +addUnitAlias('weekYear', 'gg'); +addUnitAlias('isoWeekYear', 'GG'); + +// PRIORITY + +addUnitPriority('weekYear', 1); +addUnitPriority('isoWeekYear', 1); + +// PARSING + +addRegexToken('G', matchSigned); +addRegexToken('g', matchSigned); +addRegexToken('GG', match1to2, match2); +addRegexToken('gg', match1to2, match2); +addRegexToken('GGGG', match1to4, match4); +addRegexToken('gggg', match1to4, match4); +addRegexToken('GGGGG', match1to6, match6); +addRegexToken('ggggg', match1to6, match6); + +addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } +); + +addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); +}); + +// MOMENTS + +function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); +} + +function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); +} + +function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); +} + +function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); +} + +function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); +} + +function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); +} + +function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } +} + +function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; +} + +// FORMATTING + +addFormatToken('Q', 0, 'Qo', 'quarter'); + +// ALIASES + +addUnitAlias('quarter', 'Q'); + +// PRIORITY + +addUnitPriority('quarter', 7); + +// PARSING + +addRegexToken('Q', match1); +addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; +}); + +// MOMENTS + +function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); +} + +// FORMATTING + +addFormatToken('D', ['DD', 2], 'Do', 'date'); + +// ALIASES + +addUnitAlias('date', 'D'); + +// PRIORITY +addUnitPriority('date', 9); + +// PARSING + +addRegexToken('D', match1to2); +addRegexToken('DD', match1to2, match2); +addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; +}); + +addParseToken(['D', 'DD'], DATE); +addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); +}); + +// MOMENTS + +var getSetDayOfMonth = makeGetSet('Date', true); + +// FORMATTING + +addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + +// ALIASES + +addUnitAlias('dayOfYear', 'DDD'); + +// PRIORITY +addUnitPriority('dayOfYear', 4); + +// PARSING + +addRegexToken('DDD', match1to3); +addRegexToken('DDDD', match3); +addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); +}); + +// HELPERS + +// MOMENTS + +function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); +} + +// FORMATTING + +addFormatToken('m', ['mm', 2], 0, 'minute'); + +// ALIASES + +addUnitAlias('minute', 'm'); + +// PRIORITY + +addUnitPriority('minute', 14); + +// PARSING + +addRegexToken('m', match1to2); +addRegexToken('mm', match1to2, match2); +addParseToken(['m', 'mm'], MINUTE); + +// MOMENTS + +var getSetMinute = makeGetSet('Minutes', false); + +// FORMATTING + +addFormatToken('s', ['ss', 2], 0, 'second'); + +// ALIASES + +addUnitAlias('second', 's'); + +// PRIORITY + +addUnitPriority('second', 15); + +// PARSING + +addRegexToken('s', match1to2); +addRegexToken('ss', match1to2, match2); +addParseToken(['s', 'ss'], SECOND); + +// MOMENTS + +var getSetSecond = makeGetSet('Seconds', false); + +// FORMATTING + +addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); +}); + +addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); +}); + +addFormatToken(0, ['SSS', 3], 0, 'millisecond'); +addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; +}); +addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; +}); +addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; +}); +addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; +}); +addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; +}); +addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; +}); + +// ALIASES + +addUnitAlias('millisecond', 'ms'); + +// PRIORITY + +addUnitPriority('millisecond', 16); + +// PARSING + +addRegexToken('S', match1to3, match1); +addRegexToken('SS', match1to3, match2); +addRegexToken('SSS', match1to3, match3); + +var token, getSetMillisecond; +for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); +} + +function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); +} + +for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); +} + +getSetMillisecond = makeGetSet('Milliseconds', false); + +// FORMATTING + +addFormatToken('z', 0, 0, 'zoneAbbr'); +addFormatToken('zz', 0, 0, 'zoneName'); + +// MOMENTS + +function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; +} + +function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; +} + +var proto = Moment.prototype; + +proto.add = add; +proto.calendar = calendar$1; +proto.clone = clone; +proto.diff = diff; +proto.endOf = endOf; +proto.format = format; +proto.from = from; +proto.fromNow = fromNow; +proto.to = to; +proto.toNow = toNow; +proto.get = stringGet; +proto.invalidAt = invalidAt; +proto.isAfter = isAfter; +proto.isBefore = isBefore; +proto.isBetween = isBetween; +proto.isSame = isSame; +proto.isSameOrAfter = isSameOrAfter; +proto.isSameOrBefore = isSameOrBefore; +proto.isValid = isValid$2; +proto.lang = lang; +proto.locale = locale; +proto.localeData = localeData; +proto.max = prototypeMax; +proto.min = prototypeMin; +proto.parsingFlags = parsingFlags; +proto.set = stringSet; +proto.startOf = startOf; +proto.subtract = subtract; +proto.toArray = toArray; +proto.toObject = toObject; +proto.toDate = toDate; +proto.toISOString = toISOString; +proto.inspect = inspect; +if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; +} +proto.toJSON = toJSON; +proto.toString = toString; +proto.unix = unix; +proto.valueOf = valueOf; +proto.creationData = creationData; +proto.eraName = getEraName; +proto.eraNarrow = getEraNarrow; +proto.eraAbbr = getEraAbbr; +proto.eraYear = getEraYear; +proto.year = getSetYear; +proto.isLeapYear = getIsLeapYear; +proto.weekYear = getSetWeekYear; +proto.isoWeekYear = getSetISOWeekYear; +proto.quarter = proto.quarters = getSetQuarter; +proto.month = getSetMonth; +proto.daysInMonth = getDaysInMonth; +proto.week = proto.weeks = getSetWeek; +proto.isoWeek = proto.isoWeeks = getSetISOWeek; +proto.weeksInYear = getWeeksInYear; +proto.weeksInWeekYear = getWeeksInWeekYear; +proto.isoWeeksInYear = getISOWeeksInYear; +proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; +proto.date = getSetDayOfMonth; +proto.day = proto.days = getSetDayOfWeek; +proto.weekday = getSetLocaleDayOfWeek; +proto.isoWeekday = getSetISODayOfWeek; +proto.dayOfYear = getSetDayOfYear; +proto.hour = proto.hours = getSetHour; +proto.minute = proto.minutes = getSetMinute; +proto.second = proto.seconds = getSetSecond; +proto.millisecond = proto.milliseconds = getSetMillisecond; +proto.utcOffset = getSetOffset; +proto.utc = setOffsetToUTC; +proto.local = setOffsetToLocal; +proto.parseZone = setOffsetToParsedOffset; +proto.hasAlignedHourOffset = hasAlignedHourOffset; +proto.isDST = isDaylightSavingTime; +proto.isLocal = isLocal; +proto.isUtcOffset = isUtcOffset; +proto.isUtc = isUtc; +proto.isUTC = isUtc; +proto.zoneAbbr = getZoneAbbr; +proto.zoneName = getZoneName; +proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth +); +proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth +); +proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear +); +proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone +); +proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted +); + +function createUnix(input) { + return createLocal(input * 1000); +} + +function createInZone() { + return createLocal.apply(null, arguments).parseZone(); +} + +function preParsePostFormat(string) { + return string; +} + +var proto$1 = Locale.prototype; + +proto$1.calendar = calendar; +proto$1.longDateFormat = longDateFormat; +proto$1.invalidDate = invalidDate; +proto$1.ordinal = ordinal; +proto$1.preparse = preParsePostFormat; +proto$1.postformat = preParsePostFormat; +proto$1.relativeTime = relativeTime; +proto$1.pastFuture = pastFuture; +proto$1.set = set; +proto$1.eras = localeEras; +proto$1.erasParse = localeErasParse; +proto$1.erasConvertYear = localeErasConvertYear; +proto$1.erasAbbrRegex = erasAbbrRegex; +proto$1.erasNameRegex = erasNameRegex; +proto$1.erasNarrowRegex = erasNarrowRegex; + +proto$1.months = localeMonths; +proto$1.monthsShort = localeMonthsShort; +proto$1.monthsParse = localeMonthsParse; +proto$1.monthsRegex = monthsRegex; +proto$1.monthsShortRegex = monthsShortRegex; +proto$1.week = localeWeek; +proto$1.firstDayOfYear = localeFirstDayOfYear; +proto$1.firstDayOfWeek = localeFirstDayOfWeek; + +proto$1.weekdays = localeWeekdays; +proto$1.weekdaysMin = localeWeekdaysMin; +proto$1.weekdaysShort = localeWeekdaysShort; +proto$1.weekdaysParse = localeWeekdaysParse; + +proto$1.weekdaysRegex = weekdaysRegex; +proto$1.weekdaysShortRegex = weekdaysShortRegex; +proto$1.weekdaysMinRegex = weekdaysMinRegex; + +proto$1.isPM = localeIsPM; +proto$1.meridiem = localeMeridiem; + +function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); +} + +function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; +} + +// () +// (5) +// (fmt, 5) +// (fmt) +// (true) +// (true, 5) +// (true, fmt, 5) +// (true, fmt) +function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; +} + +function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); +} + +function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); +} + +function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); +} + +function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); +} + +function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); +} + +getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); + +// Side effect imports + +hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale +); +hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale +); + +var mathAbs = Math.abs; + +function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; +} + +function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); +} + +// supports only 2.0-style add(1, 's') or add(duration) +function add$1(input, value) { + return addSubtract$1(this, input, value, 1); +} + +// supports only 2.0-style subtract(1, 's') or subtract(duration) +function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); +} + +function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } +} + +function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; +} + +function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; +} + +function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; +} + +function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } +} + +// TODO: Use this.as('ms')? +function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); +} + +function makeAs(alias) { + return function () { + return this.as(alias); + }; +} + +var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + +function clone$1() { + return createDuration(this); +} + +function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; +} + +function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; +} + +var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + +function weeks() { + return absFloor(this.days() / 7); +} + +var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + +// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize +function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); +} + +function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); +} + +// This function allows you to set the rounding function for relative time strings +function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; +} + +// This function allows you to set a threshold for relative time strings +function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; +} + +function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); +} + +var abs$1 = Math.abs; + +function sign(x) { + return (x > 0) - (x < 0) || +x; +} + +function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); +} + +var proto$2 = Duration.prototype; + +proto$2.isValid = isValid$1; +proto$2.abs = abs; +proto$2.add = add$1; +proto$2.subtract = subtract$1; +proto$2.as = as; +proto$2.asMilliseconds = asMilliseconds; +proto$2.asSeconds = asSeconds; +proto$2.asMinutes = asMinutes; +proto$2.asHours = asHours; +proto$2.asDays = asDays; +proto$2.asWeeks = asWeeks; +proto$2.asMonths = asMonths; +proto$2.asQuarters = asQuarters; +proto$2.asYears = asYears; +proto$2.valueOf = valueOf$1; +proto$2._bubble = bubble; +proto$2.clone = clone$1; +proto$2.get = get$2; +proto$2.milliseconds = milliseconds; +proto$2.seconds = seconds; +proto$2.minutes = minutes; +proto$2.hours = hours; +proto$2.days = days; +proto$2.weeks = weeks; +proto$2.months = months; +proto$2.years = years; +proto$2.humanize = humanize; +proto$2.toISOString = toISOString$1; +proto$2.toString = toISOString$1; +proto$2.toJSON = toISOString$1; +proto$2.locale = locale; +proto$2.localeData = localeData; + +proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 +); +proto$2.lang = lang; + +// FORMATTING + +addFormatToken('X', 0, 0, 'unix'); +addFormatToken('x', 0, 0, 'valueOf'); + +// PARSING + +addRegexToken('x', matchSigned); +addRegexToken('X', matchTimestamp); +addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); +}); +addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); +}); + +//! moment.js + +hooks.version = '2.29.4'; + +setHookCallback(createLocal); + +hooks.fn = proto; +hooks.min = min; +hooks.max = max; +hooks.now = now; +hooks.utc = createUTC; +hooks.unix = createUnix; +hooks.months = listMonths; +hooks.isDate = isDate; +hooks.locale = getSetGlobalLocale; +hooks.invalid = createInvalid; +hooks.duration = createDuration; +hooks.isMoment = isMoment; +hooks.weekdays = listWeekdays; +hooks.parseZone = createInZone; +hooks.localeData = getLocale; +hooks.isDuration = isDuration; +hooks.monthsShort = listMonthsShort; +hooks.weekdaysMin = listWeekdaysMin; +hooks.defineLocale = defineLocale; +hooks.updateLocale = updateLocale; +hooks.locales = listLocales; +hooks.weekdaysShort = listWeekdaysShort; +hooks.normalizeUnits = normalizeUnits; +hooks.relativeTimeRounding = getSetRelativeTimeRounding; +hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; +hooks.calendarFormat = getCalendarFormat; +hooks.prototype = proto; + +// currently HTML5 input type only supports 24-hour formats +hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // +}; + +export default hooks; diff --git a/node_modules/moment/ender.js b/node_modules/moment/ender.js new file mode 100644 index 0000000..71462a7 --- /dev/null +++ b/node_modules/moment/ender.js @@ -0,0 +1 @@ +$.ender({ moment: require('moment') }) diff --git a/node_modules/moment/locale/af.js b/node_modules/moment/locale/af.js new file mode 100644 index 0000000..e77b15b --- /dev/null +++ b/node_modules/moment/locale/af.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var af = moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[M么re om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\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 + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + return af; + +}))); diff --git a/node_modules/moment/locale/ar-dz.js b/node_modules/moment/locale/ar-dz.js new file mode 100644 index 0000000..109f615 --- /dev/null +++ b/node_modules/moment/locale/ar-dz.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '噩丕賳賮賷', + '賮賷賮乇賷', + '賲丕乇爻', + '兀賮乇賷賱', + '賲丕賷', + '噩賵丕賳', + '噩賵賷賱賷丞', + '兀賵鬲', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + var arDz = moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return arDz; + +}))); diff --git a/node_modules/moment/locale/ar-kw.js b/node_modules/moment/locale/ar-kw.js new file mode 100644 index 0000000..c6ecef8 --- /dev/null +++ b/node_modules/moment/locale/ar-kw.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arKw = moment.defineLocale('ar-kw', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿鬲賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕鬲賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arKw; + +}))); diff --git a/node_modules/moment/locale/ar-ly.js b/node_modules/moment/locale/ar-ly.js new file mode 100644 index 0000000..436b8f3 --- /dev/null +++ b/node_modules/moment/locale/ar-ly.js @@ -0,0 +1,182 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + var arLy = moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return arLy; + +}))); diff --git a/node_modules/moment/locale/ar-ma.js b/node_modules/moment/locale/ar-ma.js new file mode 100644 index 0000000..11f061a --- /dev/null +++ b/node_modules/moment/locale/ar-ma.js @@ -0,0 +1,67 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arMa = moment.defineLocale('ar-ma', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕孬賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + return arMa; + +}))); diff --git a/node_modules/moment/locale/ar-sa.js b/node_modules/moment/locale/ar-sa.js new file mode 100644 index 0000000..e329df0 --- /dev/null +++ b/node_modules/moment/locale/ar-sa.js @@ -0,0 +1,116 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }; + + var arSa = moment.defineLocale('ar-sa', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return arSa; + +}))); diff --git a/node_modules/moment/locale/ar-tn.js b/node_modules/moment/locale/ar-tn.js new file mode 100644 index 0000000..a390ed2 --- /dev/null +++ b/node_modules/moment/locale/ar-tn.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var arTn = moment.defineLocale('ar-tn', { + months: '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + return arTn; + +}))); diff --git a/node_modules/moment/locale/ar.js b/node_modules/moment/locale/ar.js new file mode 100644 index 0000000..7394244 --- /dev/null +++ b/node_modules/moment/locale/ar.js @@ -0,0 +1,200 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + var ar = moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ar; + +}))); diff --git a/node_modules/moment/locale/az.js b/node_modules/moment/locale/az.js new file mode 100644 index 0000000..472bee1 --- /dev/null +++ b/node_modules/moment/locale/az.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-眉nc眉', + 4: '-眉nc眉', + 100: '-眉nc眉', + 6: '-nc谋', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-谋nc谋', + 90: '-谋nc谋', + }; + + var az = moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ert蓹si_脟蓹r艧蓹nb蓹 ax艧am谋_脟蓹r艧蓹nb蓹_C眉m蓹 ax艧am谋_C眉m蓹_艦蓹nb蓹'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_脟Ax_脟蓹r_CAx_C眉m_艦蓹n'.split('_'), + weekdaysMin: 'Bz_BE_脟A_脟蓹_CA_C眉_艦蓹'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[g蓹l蓹n h蓹ft蓹] dddd [saat] LT', + lastDay: '[d眉n蓹n] LT', + lastWeek: '[ke莽蓹n h蓹ft蓹] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 蓹vv蓹l', + s: 'bir ne莽蓹 saniy蓹', + ss: '%d saniy蓹', + m: 'bir d蓹qiq蓹', + mm: '%d d蓹qiq蓹', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gec蓹|s蓹h蓹r|g眉nd眉z|ax艧am/, + isPM: function (input) { + return /^(g眉nd眉z|ax艧am)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gec蓹'; + } else if (hour < 12) { + return 's蓹h蓹r'; + } else if (hour < 17) { + return 'g眉nd眉z'; + } else { + return 'ax艧am'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(谋nc谋|inci|nci|眉nc眉|nc谋|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-谋nc谋'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return az; + +}))); diff --git a/node_modules/moment/locale/be.js b/node_modules/moment/locale/be.js new file mode 100644 index 0000000..3631912 --- /dev/null +++ b/node_modules/moment/locale/be.js @@ -0,0 +1,153 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elens煤le : https://github.com/Oire + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁褨谢褨薪邪_褏胁褨谢褨薪褘_褏胁褨谢褨薪' : '褏胁褨谢褨薪褍_褏胁褨谢褨薪褘_褏胁褨谢褨薪', + hh: withoutSuffix ? '谐邪写蟹褨薪邪_谐邪写蟹褨薪褘_谐邪写蟹褨薪' : '谐邪写蟹褨薪褍_谐邪写蟹褨薪褘_谐邪写蟹褨薪', + dd: '写蟹械薪褜_写薪褨_写蟹褢薪', + MM: '屑械褋褟褑_屑械褋褟褑褘_屑械褋褟褑邪褳', + yy: '谐芯写_谐邪写褘_谐邪写芯褳', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁褨谢褨薪邪' : '褏胁褨谢褨薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐邪写蟹褨薪邪' : '谐邪写蟹褨薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + var be = moment.defineLocale('be', { + months: { + format: '褋褌褍写蟹械薪褟_谢褞褌邪谐邪_褋邪泻邪胁褨泻邪_泻褉邪褋邪胁褨泻邪_褌褉邪褳薪褟_褔褝褉胁械薪褟_谢褨锌械薪褟_卸薪褨褳薪褟_胁械褉邪褋薪褟_泻邪褋褌褉褘褔薪褨泻邪_谢褨褋褌邪锌邪写邪_褋薪械卸薪褟'.split( + '_' + ), + standalone: + '褋褌褍写蟹械薪褜_谢褞褌褘_褋邪泻邪胁褨泻_泻褉邪褋邪胁褨泻_褌褉邪胁械薪褜_褔褝褉胁械薪褜_谢褨锌械薪褜_卸薪褨胁械薪褜_胁械褉邪褋械薪褜_泻邪褋褌褉褘褔薪褨泻_谢褨褋褌邪锌邪写_褋薪械卸邪薪褜'.split( + '_' + ), + }, + monthsShort: + '褋褌褍写_谢褞褌_褋邪泻_泻褉邪褋_褌褉邪胁_褔褝褉胁_谢褨锌_卸薪褨胁_胁械褉_泻邪褋褌_谢褨褋褌_褋薪械卸'.split('_'), + weekdays: { + format: '薪褟写蟹械谢褞_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写褍_褔邪褑胁械褉_锌褟褌薪褨褑褍_褋褍斜芯褌褍'.split( + '_' + ), + standalone: + '薪褟写蟹械谢褟_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写邪_褔邪褑胁械褉_锌褟褌薪褨褑邪_褋褍斜芯褌邪'.split( + '_' + ), + isFormat: /\[ ?[校褍褳] ?(?:屑褨薪褍谢褍褞|薪邪褋褌褍锌薪褍褞)? ?\] ?dddd/, + }, + weekdaysShort: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., HH:mm', + LLLL: 'dddd, D MMMM YYYY 谐., HH:mm', + }, + calendar: { + sameDay: '[小褢薪薪褟 褳] LT', + nextDay: '[袟邪褳褌褉邪 褳] LT', + lastDay: '[校褔芯褉邪 褳] LT', + nextWeek: function () { + return '[校] dddd [褳] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[校 屑褨薪褍谢褍褞] dddd [褳] LT'; + case 1: + case 2: + case 4: + return '[校 屑褨薪褍谢褘] dddd [褳] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '锌褉邪蟹 %s', + past: '%s 褌邪屑褍', + s: '薪械泻邪谢褜泻褨 褋械泻褍薪写', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: '写蟹械薪褜', + dd: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔褘|褉邪薪褨褑褘|写薪褟|胁械褔邪褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔邪褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褘'; + } else if (hour < 12) { + return '褉邪薪褨褑褘'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔邪褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褨|褘|谐邪)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-褨' + : number + '-褘'; + case 'D': + return number + '-谐邪'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return be; + +}))); diff --git a/node_modules/moment/locale/bg.js b/node_modules/moment/locale/bg.js new file mode 100644 index 0000000..5a1bda8 --- /dev/null +++ b/node_modules/moment/locale/bg.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bg = moment.defineLocale('bg', { + months: '褟薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪泄_褞薪懈_褞谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褟薪褍_褎械胁_屑邪褉_邪锌褉_屑邪泄_褞薪懈_褞谢懈_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢褟_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉褟写邪_褔械褌胁褗褉褌褗泻_锌械褌褗泻_褋褗斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉褟_褔械褌_锌械褌_褋褗斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛薪械褋 胁] LT', + nextDay: '[校褌褉械 胁] LT', + nextWeek: 'dddd [胁] LT', + lastDay: '[袙褔械褉邪 胁] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袦懈薪邪谢邪褌邪] dddd [胁] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袦懈薪邪谢懈褟] dddd [胁] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '褋谢械写 %s', + past: '锌褉械写懈 %s', + s: '薪褟泻芯谢泻芯 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '褔邪褋', + hh: '%d 褔邪褋邪', + d: '写械薪', + dd: '%d 写械薪邪', + w: '褋械写屑懈褑邪', + ww: '%d 褋械写屑懈褑懈', + M: '屑械褋械褑', + MM: '%d 屑械褋械褑邪', + y: '谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bg; + +}))); diff --git a/node_modules/moment/locale/bm.js b/node_modules/moment/locale/bm.js new file mode 100644 index 0000000..302410c --- /dev/null +++ b/node_modules/moment/locale/bm.js @@ -0,0 +1,62 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var bm = moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M蓻kalo_Zuw蓻nkalo_Zuluyekalo_Utikalo_S蓻tanburukalo_蓴kut蓴burukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_M蓻_Zuw_Zul_Uti_S蓻t_蓴ku_Now_Des'.split('_'), + weekdays: 'Kari_Nt蓻n蓻n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Nt蓻_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + }, + calendar: { + sameDay: '[Bi l蓻r蓻] LT', + nextDay: '[Sini l蓻r蓻] LT', + nextWeek: 'dddd [don l蓻r蓻] LT', + lastDay: '[Kunu l蓻r蓻] LT', + lastWeek: 'dddd [t蓻m蓻nen l蓻r蓻] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s k蓴n蓴', + past: 'a b蓻 %s b蓴', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'l蓻r蓻 kelen', + hh: 'l蓻r蓻 %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + 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. + }, + }); + + return bm; + +}))); diff --git a/node_modules/moment/locale/bn-bd.js b/node_modules/moment/locale/bn-bd.js new file mode 100644 index 0000000..1154aa4 --- /dev/null +++ b/node_modules/moment/locale/bn-bd.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + var bnBd = moment.defineLocale('bn-bd', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /唳班唳唳唳皘唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳膏Θ唰嵿Η唰嵿Ο唳緗唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '唳班唳') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '唳唳') { + return hour; + } else if (meridiem === '唳膏唳距Σ') { + return hour; + } else if (meridiem === '唳︵唳唳') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === '唳唳曕唳') { + return hour + 12; + } else if (meridiem === '唳膏Θ唰嵿Η唰嵿Ο唳') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 6) { + return '唳唳'; + } else if (hour < 12) { + return '唳膏唳距Σ'; + } else if (hour < 15) { + return '唳︵唳唳'; + } else if (hour < 18) { + return '唳唳曕唳'; + } else if (hour < 20) { + return '唳膏Θ唰嵿Η唰嵿Ο唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bnBd; + +}))); diff --git a/node_modules/moment/locale/bn.js b/node_modules/moment/locale/bn.js new file mode 100644 index 0000000..e5e3e5f --- /dev/null +++ b/node_modules/moment/locale/bn.js @@ -0,0 +1,130 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + var bn = moment.defineLocale('bn', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /唳班唳唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '唳班唳' && hour >= 4) || + (meridiem === '唳︵唳唳' && hour < 5) || + meridiem === '唳唳曕唳' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 10) { + return '唳膏唳距Σ'; + } else if (hour < 17) { + return '唳︵唳唳'; + } else if (hour < 20) { + return '唳唳曕唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bn; + +}))); diff --git a/node_modules/moment/locale/bo.js b/node_modules/moment/locale/bo.js new file mode 100644 index 0000000..c4a7c52 --- /dev/null +++ b/node_modules/moment/locale/bo.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '嗉', + 2: '嗉', + 3: '嗉', + 4: '嗉', + 5: '嗉', + 6: '嗉', + 7: '嗉', + 8: '嗉', + 9: '嗉', + 0: '嗉', + }, + numberMap = { + '嗉': '1', + '嗉': '2', + '嗉': '3', + '嗉': '4', + '嗉': '5', + '嗉': '6', + '嗉': '7', + '嗉': '8', + '嗉': '9', + '嗉': '0', + }; + + var bo = moment.defineLocale('bo', { + months: '嘟熰境嗉嬥綎嗉嬥綉嘟勦紜嘟斷郊_嘟熰境嗉嬥綎嗉嬥絺嘟夃讲嘟︵紜嘟擾嘟熰境嗉嬥綎嗉嬥絺嘟︵酱嘟樴紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟炧讲嗉嬥綌_嘟熰境嗉嬥綎嗉嬥剑嗑斷紜嘟擾嘟熰境嗉嬥綎嗉嬥綉嗑侧酱嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟戉酱嘟撪紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟⑧緬嗑编綉嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綉嘟傕酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟呧讲嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟夃讲嘟︵紜嘟'.split( + '_' + ), + monthsShort: + '嘟熰境嗉1_嘟熰境嗉2_嘟熰境嗉3_嘟熰境嗉4_嘟熰境嗉5_嘟熰境嗉6_嘟熰境嗉7_嘟熰境嗉8_嘟熰境嗉9_嘟熰境嗉10_嘟熰境嗉11_嘟熰境嗉12'.split( + '_' + ), + monthsShortRegex: /^(嘟熰境嗉媆d{1,2})/, + monthsParseExact: true, + weekdays: + '嘟傕綗嘟犩紜嘟夃讲嗉嬥綐嗉媉嘟傕綗嘟犩紜嘟熰境嗉嬥綎嗉媉嘟傕綗嘟犩紜嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟傕綗嘟犩紜嘟`痉嘟傕紜嘟斷紜_嘟傕綗嘟犩紜嘟曕酱嘟⑧紜嘟栢酱_嘟傕綗嘟犩紜嘟斷紜嘟︵絼嘟︵紜_嘟傕綗嘟犩紜嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysShort: '嘟夃讲嗉嬥綐嗉媉嘟熰境嗉嬥綎嗉媉嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟`痉嘟傕紜嘟斷紜_嘟曕酱嘟⑧紜嘟栢酱_嘟斷紜嘟︵絼嘟︵紜_嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysMin: '嘟夃讲_嘟熰境_嘟樴讲嘟俖嘟`痉嘟俖嘟曕酱嘟嘟︵絼嘟嘟︵兢嘟亨綋'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嘟戉讲嗉嬥舰嘟侧絼] LT', + nextDay: '[嘟︵絼嗉嬥綁嘟侧綋] LT', + nextWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥舰嗑椸胶嘟︵紜嘟榏, LT', + lastDay: '[嘟佮紜嘟︵絼] LT', + lastWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥綐嘟愢綘嗉嬥綐] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嘟`紜', + past: '%s 嘟︵緮嘟撪紜嘟', + s: '嘟`綐嗉嬥溅嘟', + ss: '%d 嘟︵緪嘟⑧紜嘟嗋紞', + m: '嘟︵緪嘟⑧紜嘟樴紜嘟傕絽嘟侧絺', + mm: '%d 嘟︵緪嘟⑧紜嘟', + h: '嘟嗋酱嗉嬥綒嘟监綉嗉嬥絺嘟呧讲嘟', + hh: '%d 嘟嗋酱嗉嬥綒嘟监綉', + d: '嘟夃讲嘟撪紜嘟傕絽嘟侧絺', + dd: '%d 嘟夃讲嘟撪紜', + M: '嘟熰境嗉嬥綎嗉嬥絺嘟呧讲嘟', + MM: '%d 嘟熰境嗉嬥綎', + y: '嘟`郊嗉嬥絺嘟呧讲嘟', + yy: '%d 嘟`郊', + }, + preparse: function (string) { + return string.replace(/[嗉∴饥嗉`激嗉ム鸡嗉о绩嗉┼紶]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嘟樴綒嘟撪紜嘟樴郊|嘟炧郊嘟傕溅嗉嬥絸嘟嘟夃讲嘟撪紜嘟傕酱嘟剕嘟戉絺嘟监絼嗉嬥綉嘟倈嘟樴綒嘟撪紜嘟樴郊/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '嘟樴綒嘟撪紜嘟樴郊' && hour >= 4) || + (meridiem === '嘟夃讲嘟撪紜嘟傕酱嘟' && hour < 5) || + meridiem === '嘟戉絺嘟监絼嗉嬥綉嘟' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嘟樴綒嘟撪紜嘟樴郊'; + } else if (hour < 10) { + return '嘟炧郊嘟傕溅嗉嬥絸嘟'; + } else if (hour < 17) { + return '嘟夃讲嘟撪紜嘟傕酱嘟'; + } else if (hour < 20) { + return '嘟戉絺嘟监絼嗉嬥綉嘟'; + } else { + return '嘟樴綒嘟撪紜嘟樴郊'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return bo; + +}))); diff --git a/node_modules/moment/locale/br.js b/node_modules/moment/locale/br.js new file mode 100644 index 0000000..bd047fe --- /dev/null +++ b/node_modules/moment/locale/br.js @@ -0,0 +1,179 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[始\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[始\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + var br = moment.defineLocale('br', { + months: 'Genver_C始hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_C始hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Merc始her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warc始hoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Dec始h da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s 始zo', + s: 'un nebeud segondenno霉', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(a帽|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'a帽' : 'vet'; + 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. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + return br; + +}))); diff --git a/node_modules/moment/locale/bs.js b/node_modules/moment/locale/bs.js new file mode 100644 index 0000000..e0d6c85 --- /dev/null +++ b/node_modules/moment/locale/bs.js @@ -0,0 +1,161 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Markovi膰 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var bs = moment.defineLocale('bs', { + 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( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[pro拧lu] dddd [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return bs; + +}))); diff --git a/node_modules/moment/locale/ca.js b/node_modules/moment/locale/ca.js new file mode 100644 index 0000000..133071f --- /dev/null +++ b/node_modules/moment/locale/ca.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ca = moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_mar莽_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de mar莽_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[dem脿 a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + return ca; + +}))); diff --git a/node_modules/moment/locale/cs.js b/node_modules/moment/locale/cs.js new file mode 100644 index 0000000..43d0ebd --- /dev/null +++ b/node_modules/moment/locale/cs.js @@ -0,0 +1,191 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = { + format: 'leden_煤nor_b艡ezen_duben_kv臎ten_膷erven_膷ervenec_srpen_z谩艡铆_艡铆jen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_煤nora_b艡ezna_dubna_kv臎tna_膷ervna_膷ervence_srpna_z谩艡铆_艡铆jna_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_煤no_b艡e_dub_kv臎_膷vn_膷vc_srp_z谩艡_艡铆j_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^煤no/i, + /^b艡e/i, + /^dub/i, + /^kv臎/i, + /^(膷vn|膷erven$|膷ervna)/i, + /^(膷vc|膷ervenec|膷ervence)/i, + /^srp/i, + /^z谩艡/i, + /^艡铆j/i, + /^lis/i, + /^pro/i, + ], + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsRegex = + /^(leden|煤nor|b艡ezen|duben|kv臎ten|膷ervenec|膷ervence|膷erven|膷ervna|srpen|z谩艡铆|艡铆jen|listopad|prosinec|led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i; + + function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sekund' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dn铆'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'm臎s铆c' : 'm臎s铆cem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'm臎s铆ce' : 'm臎s铆c暖'); + } else { + return result + 'm臎s铆ci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + var cs = moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|煤nora|煤nor|b艡ezen|b艡ezna|duben|dubna|kv臎ten|kv臎tna|膷ervenec|膷ervence|膷erven|膷ervna|srpen|srpna|z谩艡铆|艡铆jen|艡铆jna|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'ned臎le_pond臎l铆_煤ter媒_st艡eda_膷tvrtek_p谩tek_sobota'.split('_'), + weekdaysShort: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + weekdaysMin: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[z铆tra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v ned臎li v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve st艡edu v] LT'; + case 4: + return '[ve 膷tvrtek v] LT'; + case 5: + return '[v p谩tek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[v膷era v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou ned臎li v] LT'; + case 1: + case 2: + return '[minul茅] dddd [v] LT'; + case 3: + return '[minulou st艡edu v] LT'; + case 4: + case 5: + return '[minul媒] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'p艡ed %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return cs; + +}))); diff --git a/node_modules/moment/locale/cv.js b/node_modules/moment/locale/cv.js new file mode 100644 index 0000000..abb1d4f --- /dev/null +++ b/node_modules/moment/locale/cv.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cv = moment.defineLocale('cv', { + months: '泻討褉谢邪褔_薪邪褉討褋_锌褍褕_邪泻邪_屑邪泄_耀訔褉褌屑械_褍褌討_耀褍褉谢邪_邪胁討薪_褞锌邪_褔映泻_褉邪褕褌邪胁'.split( + '_' + ), + monthsShort: '泻討褉_薪邪褉_锌褍褕_邪泻邪_屑邪泄_耀訔褉_褍褌討_耀褍褉_邪胁薪_褞锌邪_褔映泻_褉邪褕'.split('_'), + weekdays: + '胁褘褉褋邪褉薪懈泻褍薪_褌褍薪褌懈泻褍薪_褘褌谢邪褉懈泻褍薪_褞薪泻褍薪_泻訔耀薪械褉薪懈泻褍薪_褝褉薪械泻褍薪_褕討屑邪褌泻褍薪'.split( + '_' + ), + weekdaysShort: '胁褘褉_褌褍薪_褘褌谢_褞薪_泻訔耀_褝褉薪_褕討屑'.split('_'), + weekdaysMin: '胁褉_褌薪_褘褌_褞薪_泻耀_褝褉_褕屑'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔]', + LLL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + LLLL: 'dddd, YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + }, + calendar: { + sameDay: '[袩邪褟薪] LT [褋械褏械褌褉械]', + nextDay: '[蝎褉邪薪] LT [褋械褏械褌褉械]', + lastDay: '[訓薪械褉] LT [褋械褏械褌褉械]', + nextWeek: '[要懈褌械褋] dddd LT [褋械褏械褌褉械]', + lastWeek: '[袠褉褌薪訔] dddd LT [褋械褏械褌褉械]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /褋械褏械褌$/i.exec(output) + ? '褉械薪' + : /耀褍谢$/i.exec(output) + ? '褌邪薪' + : '褉邪薪'; + return output + affix; + }, + past: '%s 泻邪褟谢谢邪', + s: '锌訔褉-懈泻 耀械泻泻褍薪褌', + ss: '%d 耀械泻泻褍薪褌', + m: '锌訔褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '锌訔褉 褋械褏械褌', + hh: '%d 褋械褏械褌', + d: '锌訔褉 泻褍薪', + dd: '%d 泻褍薪', + M: '锌訔褉 褍泄討褏', + MM: '%d 褍泄討褏', + y: '锌訔褉 耀褍谢', + yy: '%d 耀褍谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-屑訔褕/, + ordinal: '%d-屑訔褕', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return cv; + +}))); diff --git a/node_modules/moment/locale/cy.js b/node_modules/moment/locale/cy.js new file mode 100644 index 0000000..3b987f2 --- /dev/null +++ b/node_modules/moment/locale/cy.js @@ -0,0 +1,109 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var cy = moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn 么l', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\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, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + 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. + }, + }); + + return cy; + +}))); diff --git a/node_modules/moment/locale/da.js b/node_modules/moment/locale/da.js new file mode 100644 index 0000000..2ed0583 --- /dev/null +++ b/node_modules/moment/locale/da.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var da = moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶n_man_tir_ons_tor_fre_l酶r'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'p氓 dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'f氓 sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'et 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return da; + +}))); diff --git a/node_modules/moment/locale/de-at.js b/node_modules/moment/locale/de-at.js new file mode 100644 index 0000000..7c31302 --- /dev/null +++ b/node_modules/moment/locale/de-at.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deAt = moment.defineLocale('de-at', { + months: 'J盲nner_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'J盲n._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return deAt; + +}))); diff --git a/node_modules/moment/locale/de-ch.js b/node_modules/moment/locale/de-ch.js new file mode 100644 index 0000000..10fed17 --- /dev/null +++ b/node_modules/moment/locale/de-ch.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var deCh = moment.defineLocale('de-ch', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return deCh; + +}))); diff --git a/node_modules/moment/locale/de.js b/node_modules/moment/locale/de.js new file mode 100644 index 0000000..cc061eb --- /dev/null +++ b/node_modules/moment/locale/de.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de = moment.defineLocale('de', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return de; + +}))); diff --git a/node_modules/moment/locale/dv.js b/node_modules/moment/locale/dv.js new file mode 100644 index 0000000..e6cc8f6 --- /dev/null +++ b/node_modules/moment/locale/dv.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + '迻蕃迋蕺迖蕈迌蕞', + '迠蕃迍薨迌蕺迖蕈迌蕞', + '迚蕨迌蕤迼蕺', + '迖蕲迺薨迌蕞迧蕺', + '迚蕲', + '迻瞢迋薨', + '迻蕺迧蕈迖蕤', + '迖薤迬蕈迱薨迵蕺', + '迱蕃迺薨迵蕃迚薨迍蕈迌蕺', + '迖蕻迒薨迵薤迍蕈迌蕺', + '迋蕻迗蕃迚薨迍蕈迌蕺', + '迲蕤迱蕃迚薨迍蕈迌蕺', + ], + weekdays = [ + '迖蕨迡蕤迖薨迣蕈', + '迉薤迚蕈', + '迖蕈迋薨迬蕨迌蕈', + '迍蕺迡蕈', + '迍蕺迌蕨迱薨迠蕈迣蕤', + '迉蕺迒蕺迌蕺', + '迉蕻迋蕤迉蕤迌蕺', + ]; + + var dv = moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: '迖蕨迡蕤_迉薤迚蕈_迖蕈迋薨_迍蕺迡蕈_迍蕺迌蕨_迉蕺迒蕺_迉蕻迋蕤'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /迚迒|迚迠/, + isPM: function (input) { + return '迚迠' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '迚迒'; + } else { + return '迚迠'; + } + }, + calendar: { + sameDay: '[迚蕤迖蕈迡蕺] LT', + nextDay: '[迚蕨迡蕈迚蕨] LT', + nextWeek: 'dddd LT', + lastDay: '[迖蕤迖薨迶蕃] LT', + lastWeek: '[迠蕨迖蕤迣蕺迗蕤] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '迣蕃迌蕲迬蕈迖蕤 %s', + past: '迒蕺迌蕤迋薨 %s', + s: '迱蕤迒蕺迋薨迣蕺迒蕻迏蕃迖薨', + ss: 'd% 迱蕤迒蕺迋薨迣蕺', + m: '迚蕤迋蕤迵蕃迖薨', + mm: '迚蕤迋蕤迵蕺 %d', + h: '迬蕈迲蕤迖蕤迌蕃迖薨', + hh: '迬蕈迲蕤迖蕤迌蕺 %d', + d: '迡蕺迗蕈迉蕃迖薨', + dd: '迡蕺迗蕈迱薨 %d', + M: '迚蕈迉蕃迖薨', + MM: '迚蕈迱薨 %d', + y: '迖蕈迉蕈迌蕃迖薨', + yy: '迖蕈迉蕈迌蕺 %d', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return dv; + +}))); diff --git a/node_modules/moment/locale/el.js b/node_modules/moment/locale/el.js new file mode 100644 index 0000000..a147859 --- /dev/null +++ b/node_modules/moment/locale/el.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + var el = moment.defineLocale('el', { + monthsNominativeEl: + '螜伪谓慰蠀维蟻喂慰蟼_桅蔚尾蟻慰蠀维蟻喂慰蟼_螠维蟻蟿喂慰蟼_螒蟺蟻委位喂慰蟼_螠维喂慰蟼_螜慰蠉谓喂慰蟼_螜慰蠉位喂慰蟼_螒蠉纬慰蠀蟽蟿慰蟼_危蔚蟺蟿苇渭尾蟻喂慰蟼_螣魏蟿蠋尾蟻喂慰蟼_螡慰苇渭尾蟻喂慰蟼_螖蔚魏苇渭尾蟻喂慰蟼'.split( + '_' + ), + monthsGenitiveEl: + '螜伪谓慰蠀伪蟻委慰蠀_桅蔚尾蟻慰蠀伪蟻委慰蠀_螠伪蟻蟿委慰蠀_螒蟺蟻喂位委慰蠀_螠伪螑慰蠀_螜慰蠀谓委慰蠀_螜慰蠀位委慰蠀_螒蠀纬慰蠉蟽蟿慰蠀_危蔚蟺蟿蔚渭尾蟻委慰蠀_螣魏蟿蠅尾蟻委慰蠀_螡慰蔚渭尾蟻委慰蠀_螖蔚魏蔚渭尾蟻委慰蠀'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: '螜伪谓_桅蔚尾_螠伪蟻_螒蟺蟻_螠伪蠆_螜慰蠀谓_螜慰蠀位_螒蠀纬_危蔚蟺_螣魏蟿_螡慰蔚_螖蔚魏'.split('_'), + weekdays: '螝蠀蟻喂伪魏萎_螖蔚蠀蟿苇蟻伪_韦蟻委蟿畏_韦蔚蟿维蟻蟿畏_螤苇渭蟺蟿畏_螤伪蟻伪蟽魏蔚蠀萎_危维尾尾伪蟿慰'.split( + '_' + ), + weekdaysShort: '螝蠀蟻_螖蔚蠀_韦蟻喂_韦蔚蟿_螤蔚渭_螤伪蟻_危伪尾'.split('_'), + weekdaysMin: '螝蠀_螖蔚_韦蟻_韦蔚_螤蔚_螤伪_危伪'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '渭渭' : '螠螠'; + } else { + return isLower ? '蟺渭' : '螤螠'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === '渭'; + }, + meridiemParse: /[螤螠]\.?螠?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[危萎渭蔚蟻伪 {}] LT', + nextDay: '[螒蠉蟻喂慰 {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[围胃蔚蟼 {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[蟿慰 蟺蟻慰畏纬慰蠉渭蔚谓慰] dddd [{}] LT'; + default: + return '[蟿畏谓 蟺蟻慰畏纬慰蠉渭蔚谓畏] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? '蟽蟿畏' : '蟽蟿喂蟼'); + }, + relativeTime: { + future: '蟽蔚 %s', + past: '%s 蟺蟻喂谓', + s: '位委纬伪 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + ss: '%d 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + m: '苇谓伪 位蔚蟺蟿蠈', + mm: '%d 位蔚蟺蟿维', + h: '渭委伪 蠋蟻伪', + hh: '%d 蠋蟻蔚蟼', + d: '渭委伪 渭苇蟻伪', + dd: '%d 渭苇蟻蔚蟼', + M: '苇谓伪蟼 渭萎谓伪蟼', + MM: '%d 渭萎谓蔚蟼', + y: '苇谓伪蟼 蠂蟻蠈谓慰蟼', + yy: '%d 蠂蟻蠈谓喂伪', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + return el; + +}))); diff --git a/node_modules/moment/locale/en-au.js b/node_modules/moment/locale/en-au.js new file mode 100644 index 0000000..6e320ba --- /dev/null +++ b/node_modules/moment/locale/en-au.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enAu = moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return enAu; + +}))); diff --git a/node_modules/moment/locale/en-ca.js b/node_modules/moment/locale/en-ca.js new file mode 100644 index 0000000..bc574f1 --- /dev/null +++ b/node_modules/moment/locale/en-ca.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enCa = moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enCa; + +}))); diff --git a/node_modules/moment/locale/en-gb.js b/node_modules/moment/locale/en-gb.js new file mode 100644 index 0000000..828791e --- /dev/null +++ b/node_modules/moment/locale/en-gb.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enGb = moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return enGb; + +}))); diff --git a/node_modules/moment/locale/en-ie.js b/node_modules/moment/locale/en-ie.js new file mode 100644 index 0000000..086cf39 --- /dev/null +++ b/node_modules/moment/locale/en-ie.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIe = moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return enIe; + +}))); diff --git a/node_modules/moment/locale/en-il.js b/node_modules/moment/locale/en-il.js new file mode 100644 index 0000000..e52503c --- /dev/null +++ b/node_modules/moment/locale/en-il.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIl = moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + return enIl; + +}))); diff --git a/node_modules/moment/locale/en-in.js b/node_modules/moment/locale/en-in.js new file mode 100644 index 0000000..06b9abc --- /dev/null +++ b/node_modules/moment/locale/en-in.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enIn = moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return enIn; + +}))); diff --git a/node_modules/moment/locale/en-nz.js b/node_modules/moment/locale/en-nz.js new file mode 100644 index 0000000..3bc7e9f --- /dev/null +++ b/node_modules/moment/locale/en-nz.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enNz = moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return enNz; + +}))); diff --git a/node_modules/moment/locale/en-sg.js b/node_modules/moment/locale/en-sg.js new file mode 100644 index 0000000..4de803c --- /dev/null +++ b/node_modules/moment/locale/en-sg.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var enSg = moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return enSg; + +}))); diff --git a/node_modules/moment/locale/eo.js b/node_modules/moment/locale/eo.js new file mode 100644 index 0000000..799dad0 --- /dev/null +++ b/node_modules/moment/locale/eo.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eo = moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a怒gusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_a怒g_sept_okt_nov_dec'.split('_'), + weekdays: 'diman膲o_lundo_mardo_merkredo_牡a怒do_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_牡a怒_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_牡a_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodia怒 je] LT', + nextDay: '[Morga怒 je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hiera怒 je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'anta怒 %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', 膲ar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eo; + +}))); diff --git a/node_modules/moment/locale/es-do.js b/node_modules/moment/locale/es-do.js new file mode 100644 index 0000000..8a557c3 --- /dev/null +++ b/node_modules/moment/locale/es-do.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esDo = moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return esDo; + +}))); diff --git a/node_modules/moment/locale/es-mx.js b/node_modules/moment/locale/es-mx.js new file mode 100644 index 0000000..a233e40 --- /dev/null +++ b/node_modules/moment/locale/es-mx.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esMx = moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inv谩lida', + }); + + return esMx; + +}))); diff --git a/node_modules/moment/locale/es-us.js b/node_modules/moment/locale/es-us.js new file mode 100644 index 0000000..2c52254 --- /dev/null +++ b/node_modules/moment/locale/es-us.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var esUs = moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return esUs; + +}))); diff --git a/node_modules/moment/locale/es.js b/node_modules/moment/locale/es.js new file mode 100644 index 0000000..7fc4628 --- /dev/null +++ b/node_modules/moment/locale/es.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napur铆 : https://github.com/julionc + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + var es = moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + invalidDate: 'Fecha inv谩lida', + }); + + return es; + +}))); diff --git a/node_modules/moment/locale/et.js b/node_modules/moment/locale/et.js new file mode 100644 index 0000000..7c8760d --- /dev/null +++ b/node_modules/moment/locale/et.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['m玫ne sekundi', 'm玫ni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['眉he minuti', '眉ks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['眉he tunni', 'tund aega', '眉ks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['眉he p盲eva', '眉ks p盲ev'], + M: ['kuu aja', 'kuu aega', '眉ks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['眉he aasta', 'aasta', '眉ks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + var et = moment.defineLocale('et', { + months: 'jaanuar_veebruar_m盲rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_m盲rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'p眉hap盲ev_esmasp盲ev_teisip盲ev_kolmap盲ev_neljap盲ev_reede_laup盲ev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[T盲na,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[J盲rgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲rast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d p盲eva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return et; + +}))); diff --git a/node_modules/moment/locale/eu.js b/node_modules/moment/locale/eu.js new file mode 100644 index 0000000..ca2e547 --- /dev/null +++ b/node_modules/moment/locale/eu.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var eu = moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return eu; + +}))); diff --git a/node_modules/moment/locale/fa.js b/node_modules/moment/locale/fa.js new file mode 100644 index 0000000..845757b --- /dev/null +++ b/node_modules/moment/locale/fa.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '郾', + 2: '鄄', + 3: '鄢', + 4: '鄞', + 5: '鄣', + 6: '鄱', + 7: '鄯', + 8: '鄹', + 9: '酃', + 0: '郯', + }, + numberMap = { + '郾': '1', + '鄄': '2', + '鄢': '3', + '鄞': '4', + '鄣': '5', + '鄱': '6', + '鄯': '7', + '鄹': '8', + '酃': '9', + '郯': '0', + }; + + var fa = moment.defineLocale('fa', { + months: '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + monthsShort: + '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + weekdays: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysShort: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysMin: '蹖_丿_爻_趩_倬_噩_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /賯亘賱 丕夭 馗賴乇|亘毓丿 丕夭 馗賴乇/, + isPM: function (input) { + return /亘毓丿 丕夭 馗賴乇/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '賯亘賱 丕夭 馗賴乇'; + } else { + return '亘毓丿 丕夭 馗賴乇'; + } + }, + calendar: { + sameDay: '[丕賲乇賵夭 爻丕毓鬲] LT', + nextDay: '[賮乇丿丕 爻丕毓鬲] LT', + nextWeek: 'dddd [爻丕毓鬲] LT', + lastDay: '[丿蹖乇賵夭 爻丕毓鬲] LT', + lastWeek: 'dddd [倬蹖卮] [爻丕毓鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '丿乇 %s', + past: '%s 倬蹖卮', + s: '趩賳丿 孬丕賳蹖賴', + ss: '%d 孬丕賳蹖賴', + m: '蹖讴 丿賯蹖賯賴', + mm: '%d 丿賯蹖賯賴', + h: '蹖讴 爻丕毓鬲', + hh: '%d 爻丕毓鬲', + d: '蹖讴 乇賵夭', + dd: '%d 乇賵夭', + M: '蹖讴 賲丕賴', + MM: '%d 賲丕賴', + y: '蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string + .replace(/[郯-酃]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + dayOfMonthOrdinalParse: /\d{1,2}賲/, + ordinal: '%d賲', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return fa; + +}))); diff --git a/node_modules/moment/locale/fi.js b/node_modules/moment/locale/fi.js new file mode 100644 index 0000000..07e57cf --- /dev/null +++ b/node_modules/moment/locale/fi.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme nelj盲 viisi kuusi seitsem盲n kahdeksan yhdeks盲n'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'nelj盲n', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'p盲iv盲n' : 'p盲iv盲'; + case 'dd': + result = isFuture ? 'p盲iv盲n' : 'p盲iv盲盲'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + var fi = moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes盲kuu_hein盲kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kes盲_hein盲_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + 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] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[t盲n盲盲n] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲盲st盲', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return fi; + +}))); diff --git a/node_modules/moment/locale/fil.js b/node_modules/moment/locale/fil.js new file mode 100644 index 0000000..13103e8 --- /dev/null +++ b/node_modules/moment/locale/fil.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fil = moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + return fil; + +}))); diff --git a/node_modules/moment/locale/fo.js b/node_modules/moment/locale/fo.js new file mode 100644 index 0000000..217fcfb --- /dev/null +++ b/node_modules/moment/locale/fo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var fo = moment.defineLocale('fo', { + months: 'januar_februar_mars_apr铆l_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_m谩nadagur_t媒sdagur_mikudagur_h贸sdagur_fr铆ggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_t媒s_mik_h贸s_fr铆_ley'.split('_'), + weekdaysMin: 'su_m谩_t媒_mi_h贸_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[脥 dag kl.] LT', + nextDay: '[脥 morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[脥 gj谩r kl.] LT', + lastWeek: '[s铆冒stu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s s铆冒ani', + s: 'f谩 sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein t铆mi', + hh: '%d t铆mar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein m谩na冒ur', + MM: '%d m谩na冒ir', + y: 'eitt 谩r', + yy: '%d 谩r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return fo; + +}))); diff --git a/node_modules/moment/locale/fr-ca.js b/node_modules/moment/locale/fr-ca.js new file mode 100644 index 0000000..7d48fd7 --- /dev/null +++ b/node_modules/moment/locale/fr-ca.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCa = moment.defineLocale('fr-ca', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + return frCa; + +}))); diff --git a/node_modules/moment/locale/fr-ch.js b/node_modules/moment/locale/fr-ch.js new file mode 100644 index 0000000..c28d81c --- /dev/null +++ b/node_modules/moment/locale/fr-ch.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var frCh = moment.defineLocale('fr-ch', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + return frCh; + +}))); diff --git a/node_modules/moment/locale/fr.js b/node_modules/moment/locale/fr.js new file mode 100644 index 0000000..4e5536b --- /dev/null +++ b/node_modules/moment/locale/fr.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsStrictRegex = + /^(janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsShortStrictRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?)/i, + monthsRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?|janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsParse = [ + /^janv/i, + /^f茅vr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^ao没t/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^d茅c/i, + ]; + + var fr = moment.defineLocale('fr', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + return fr; + +}))); diff --git a/node_modules/moment/locale/fy.js b/node_modules/moment/locale/fy.js new file mode 100644 index 0000000..46cac08 --- /dev/null +++ b/node_modules/moment/locale/fy.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + var fy = moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[么fr没ne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien min煤t', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + return fy; + +}))); diff --git a/node_modules/moment/locale/ga.js b/node_modules/moment/locale/ga.js new file mode 100644 index 0000000..96f988c --- /dev/null +++ b/node_modules/moment/locale/ga.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : Andr茅 Silva : https://github.com/askpt + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Ean谩ir', + 'Feabhra', + 'M谩rta', + 'Aibre谩n', + 'Bealtaine', + 'Meitheamh', + 'I煤il', + 'L煤nasa', + 'Me谩n F贸mhair', + 'Deireadh F贸mhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'M谩rt', + 'Aib', + 'Beal', + 'Meith', + 'I煤il', + 'L煤n', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'D茅 Domhnaigh', + 'D茅 Luain', + 'D茅 M谩irt', + 'D茅 C茅adaoin', + 'D茅ardaoin', + 'D茅 hAoine', + 'D茅 Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'M谩irt', 'C茅ad', 'D茅ar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'M谩', 'C茅', 'D茅', 'A', 'Sa']; + + var ga = moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Am谩rach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inn茅 ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s 贸 shin', + s: 'c煤pla soicind', + ss: '%d soicind', + m: 'n贸im茅ad', + mm: '%d n贸im茅ad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'l谩', + dd: '%d l谩', + M: 'm铆', + MM: '%d m铆onna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + return ga; + +}))); diff --git a/node_modules/moment/locale/gd.js b/node_modules/moment/locale/gd.js new file mode 100644 index 0000000..b053838 --- /dev/null +++ b/node_modules/moment/locale/gd.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am M脿rt', + 'An Giblean', + 'An C猫itean', + 'An t-脪gmhios', + 'An t-Iuchar', + 'An L霉nastal', + 'An t-Sultain', + 'An D脿mhair', + 'An t-Samhain', + 'An D霉bhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'M脿rt', + 'Gibl', + 'C猫it', + '脪gmh', + 'Iuch', + 'L霉n', + 'Sult', + 'D脿mh', + 'Samh', + 'D霉bh', + ], + weekdays = [ + 'Did貌mhnaich', + 'Diluain', + 'Dim脿irt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['D貌', 'Lu', 'M脿', 'Ci', 'Ar', 'Ha', 'Sa']; + + var gd = moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-m脿ireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-d猫 aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'm矛os', + MM: '%d m矛osan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + return gd; + +}))); diff --git a/node_modules/moment/locale/gl.js b/node_modules/moment/locale/gl.js new file mode 100644 index 0000000..16dcb5a --- /dev/null +++ b/node_modules/moment/locale/gl.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var gl = moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xu帽o_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xu帽._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_m茅rcores_xoves_venres_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._m茅r._xov._ven._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_m茅_xo_ve_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextDay: function () { + return '[ma帽谩 ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? '谩' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return gl; + +}))); diff --git a/node_modules/moment/locale/gom-deva.js b/node_modules/moment/locale/gom-deva.js new file mode 100644 index 0000000..ae93d0d --- /dev/null +++ b/node_modules/moment/locale/gom-deva.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['啶ム啶∴く啶 啶膏啶曕啶∴ぞ啶傕え啷', '啶ム啶∴ 啶膏啶曕啶'], + ss: [number + ' 啶膏啶曕啶∴ぞ啶傕え啷', number + ' 啶膏啶曕啶'], + m: ['啶忇啶 啶た啶`啶距え', '啶忇 啶た啶ㄠ啶'], + mm: [number + ' 啶た啶`啶距啶ㄠ', number + ' 啶た啶`啶距'], + h: ['啶忇啶 啶掂ぐ啶距え', '啶忇 啶掂ぐ'], + hh: [number + ' 啶掂ぐ啶距啶ㄠ', number + ' 啶掂ぐ啶距'], + d: ['啶忇啶 啶︵た啶膏ぞ啶', '啶忇 啶︵啶'], + dd: [number + ' 啶︵た啶膏ぞ啶傕え啷', number + ' 啶︵啶'], + M: ['啶忇啶 啶啶灌く啶ㄠ啶ぞ啶', '啶忇 啶啶灌く啶ㄠ'], + MM: [number + ' 啶啶灌く啶ㄠ啶ぞ啶ㄠ', number + ' 啶啶灌く啶ㄠ'], + y: ['啶忇啶 啶掂ぐ啷嵿じ啶距え', '啶忇 啶掂ぐ啷嵿じ'], + yy: [number + ' 啶掂ぐ啷嵿じ啶距啶ㄠ', number + ' 啶掂ぐ啷嵿じ啶距'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomDeva = moment.defineLocale('gom-deva', { + months: { + standalone: + '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啷啶瞋啶_啶溹啶╛啶溹啶侧く_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + format: '啶溹ぞ啶ㄠ啶掂ぞ啶班啶氞啶ぞ_啶啶啶班啶掂ぞ啶班啶氞啶ぞ_啶ぞ啶班啶氞ぞ啶氞啶ぞ_啶忇お啷嵿ぐ啷啶侧ぞ啶氞啶ぞ_啶啶ぞ啶氞啶ぞ_啶溹啶ㄠぞ啶氞啶ぞ_啶溹啶侧く啶距啷嵿く啶綺啶戉啶膏啶熰ぞ啶氞啶ぞ_啶膏お啷嵿啷囙啶ぐ啶距啷嵿く啶綺啶戉啷嵿啷嬥が啶班ぞ啶氞啶ぞ_啶ㄠ啶掂啶灌啶傕が啶班ぞ啶氞啶ぞ_啶∴た啶膏啶傕が啶班ぞ啶氞啶ぞ'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶歘啶忇お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋く啶むぞ啶癬啶膏啶ぞ啶癬啶啶椸こ啶距ぐ_啶啶оさ啶距ぐ_啶た啶班啶膏啶むぞ啶癬啶膏啶曕啶班ぞ啶癬啶多啶ㄠさ啶距ぐ'.split('_'), + weekdaysShort: '啶嗋く啶._啶膏啶._啶啶椸こ._啶啶._啶啶班啶膏啶._啶膏啶曕啶._啶多啶.'.split('_'), + weekdaysMin: '啶哶啶膏_啶_啶_啶啶班_啶膏_啶多'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [啶掂ぞ啶溹い啶距]', + LTS: 'A h:mm:ss [啶掂ぞ啶溹い啶距]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [啶掂ぞ啶溹い啶距]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + llll: 'ddd, D MMM YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + }, + calendar: { + sameDay: '[啶嗋く啶淽 LT', + nextDay: '[啶ぞ啶侧啶ぞ啶俔 LT', + nextWeek: '[啶啶∴げ啷媇 dddd[,] LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶熰げ啷媇 dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s 啶嗋う啷啶', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(啶掂啶)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal '啶掂啶' only applies to day of the month + case 'D': + return number + '啶掂啶'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /啶班ぞ啶む|啶膏啶距こ啷啶倈啶︵え啶ぞ啶班ぞ啶倈啶膏ぞ啶傕啷/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶む') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶距こ啷啶') { + return hour; + } else if (meridiem === '啶︵え啶ぞ啶班ぞ啶') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶傕啷') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶む'; + } else if (hour < 12) { + return '啶膏啶距こ啷啶'; + } else if (hour < 16) { + return '啶︵え啶ぞ啶班ぞ啶'; + } else if (hour < 20) { + return '啶膏ぞ啶傕啷'; + } else { + return '啶班ぞ啶む'; + } + }, + }); + + return gomDeva; + +}))); diff --git a/node_modules/moment/locale/gom-latn.js b/node_modules/moment/locale/gom-latn.js new file mode 100644 index 0000000..93cbe15 --- /dev/null +++ b/node_modules/moment/locale/gom-latn.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + var gomLatn = moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + return gomLatn; + +}))); diff --git a/node_modules/moment/locale/gu.js b/node_modules/moment/locale/gu.js new file mode 100644 index 0000000..6583f77 --- /dev/null +++ b/node_modules/moment/locale/gu.js @@ -0,0 +1,133 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '喃', + 2: '喃', + 3: '喃', + 4: '喃', + 5: '喃', + 6: '喃', + 7: '喃', + 8: '喃', + 9: '喃', + 0: '喃', + }, + numberMap = { + '喃': '1', + '喃': '2', + '喃': '3', + '喃': '4', + '喃': '5', + '喃': '6', + '喃': '7', + '喃': '8', + '喃': '9', + '喃': '0', + }; + + var gu = moment.defineLocale('gu', { + months: '嗒溹嗒ㄠ珝嗒珌嗒嗋喃_嗒珖嗒珝嗒班珌嗒嗋喃_嗒嗒班珝嗒歘嗒忇喃嵿嗒苦_嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧嗒坃嗒戉獥嗒膏珝嗒焈嗒膏喃嵿獰喃囙喃嵿嗒癬嗒戉獣喃嵿獰喃嵿嗒癬嗒ㄠ喃囙喃嵿嗒癬嗒∴嗒膏珖嗒珝嗒'.split( + '_' + ), + monthsShort: + '嗒溹嗒ㄠ珝嗒珌._嗒珖嗒珝嗒班珌._嗒嗒班珝嗒歘嗒忇喃嵿嗒._嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧._嗒戉獥._嗒膏喃嵿獰喃._嗒戉獣喃嵿獰喃._嗒ㄠ喃._嗒∴嗒膏珖.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗒班嗒苦嗒距_嗒膏珛嗒嗒距_嗒獋嗒椸嗒掂嗒癬嗒珌嗒о珝嗒掂嗒癬嗒椸珌嗒班珌嗒掂嗒癬嗒多珌嗒曕珝嗒班嗒距_嗒多嗒苦嗒距'.split( + '_' + ), + weekdaysShort: '嗒班嗒縚嗒膏珛嗒甠嗒獋嗒椸_嗒珌嗒о珝_嗒椸珌嗒班珌_嗒多珌嗒曕珝嗒癬嗒多嗒'.split('_'), + weekdaysMin: '嗒癬嗒膏珛_嗒獋_嗒珌_嗒椸珌_嗒多珌_嗒'.split('_'), + longDateFormat: { + LT: 'A h:mm 嗒掂嗒椸珝嗒珖', + LTS: 'A h:mm:ss 嗒掂嗒椸珝嗒珖', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + LLLL: 'dddd, D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + }, + calendar: { + sameDay: '[嗒嗋獪] LT', + nextDay: '[嗒曕嗒侧珖] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗒椸獓嗒曕嗒侧珖] LT', + lastWeek: '[嗒嗒涏嗒綸 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗒', + past: '%s 嗒喃囙嗒', + s: '嗒呧喃佮獣 嗒喃', + ss: '%d 嗒膏珖嗒曕獋嗒', + m: '嗒忇獣 嗒嗒ㄠ嗒', + mm: '%d 嗒嗒ㄠ嗒', + h: '嗒忇獣 嗒曕嗒距獣', + hh: '%d 嗒曕嗒距獣', + d: '嗒忇獣 嗒︵嗒掂', + dd: '%d 嗒︵嗒掂', + M: '嗒忇獣 嗒嗒苦喃', + MM: '%d 嗒嗒苦喃', + y: '嗒忇獣 嗒掂喃嵿', + yy: '%d 嗒掂喃嵿', + }, + preparse: function (string) { + return string.replace(/[喃о喃┼喃喃喃]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /嗒班嗒嗒喃嬥|嗒膏嗒距|嗒膏嗒傕獪/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗒班嗒') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒距') { + return hour; + } else if (meridiem === '嗒喃嬥') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒傕獪') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗒班嗒'; + } else if (hour < 10) { + return '嗒膏嗒距'; + } else if (hour < 17) { + return '嗒喃嬥'; + } else if (hour < 20) { + return '嗒膏嗒傕獪'; + } else { + return '嗒班嗒'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return gu; + +}))); diff --git a/node_modules/moment/locale/he.js b/node_modules/moment/locale/he.js new file mode 100644 index 0000000..e19a0f9 --- /dev/null +++ b/node_modules/moment/locale/he.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var he = moment.defineLocale('he', { + months: '讬谞讜讗专_驻讘专讜讗专_诪专抓_讗驻专讬诇_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙讜住讟_住驻讟诪讘专_讗讜拽讟讜讘专_谞讜讘诪讘专_讚爪诪讘专'.split( + '_' + ), + monthsShort: + '讬谞讜壮_驻讘专壮_诪专抓_讗驻专壮_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙壮_住驻讟壮_讗讜拽壮_谞讜讘壮_讚爪诪壮'.split('_'), + weekdays: '专讗砖讜谉_砖谞讬_砖诇讬砖讬_专讘讬注讬_讞诪讬砖讬_砖讬砖讬_砖讘转'.split('_'), + weekdaysShort: '讗壮_讘壮_讙壮_讚壮_讛壮_讜壮_砖壮'.split('_'), + weekdaysMin: '讗_讘_讙_讚_讛_讜_砖'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [讘]MMMM YYYY', + LLL: 'D [讘]MMMM YYYY HH:mm', + LLLL: 'dddd, D [讘]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[讛讬讜诐 讘志]LT', + nextDay: '[诪讞专 讘志]LT', + nextWeek: 'dddd [讘砖注讛] LT', + lastDay: '[讗转诪讜诇 讘志]LT', + lastWeek: '[讘讬讜诐] dddd [讛讗讞专讜谉 讘砖注讛] LT', + sameElse: 'L', + }, + relativeTime: { + future: '讘注讜讚 %s', + past: '诇驻谞讬 %s', + s: '诪住驻专 砖谞讬讜转', + ss: '%d 砖谞讬讜转', + m: '讚拽讛', + mm: '%d 讚拽讜转', + h: '砖注讛', + hh: function (number) { + if (number === 2) { + return '砖注转讬讬诐'; + } + return number + ' 砖注讜转'; + }, + d: '讬讜诐', + dd: function (number) { + if (number === 2) { + return '讬讜诪讬讬诐'; + } + return number + ' 讬诪讬诐'; + }, + M: '讞讜讚砖', + MM: function (number) { + if (number === 2) { + return '讞讜讚砖讬讬诐'; + } + return number + ' 讞讜讚砖讬诐'; + }, + y: '砖谞讛', + yy: function (number) { + if (number === 2) { + return '砖谞转讬讬诐'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' 砖谞讛'; + } + return number + ' 砖谞讬诐'; + }, + }, + meridiemParse: + /讗讞讛"爪|诇驻谞讛"爪|讗讞专讬 讛爪讛专讬讬诐|诇驻谞讬 讛爪讛专讬讬诐|诇驻谞讜转 讘讜拽专|讘讘讜拽专|讘注专讘/i, + isPM: function (input) { + return /^(讗讞讛"爪|讗讞专讬 讛爪讛专讬讬诐|讘注专讘)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return '诇驻谞讜转 讘讜拽专'; + } else if (hour < 10) { + return '讘讘讜拽专'; + } else if (hour < 12) { + return isLower ? '诇驻谞讛"爪' : '诇驻谞讬 讛爪讛专讬讬诐'; + } else if (hour < 18) { + return isLower ? '讗讞讛"爪' : '讗讞专讬 讛爪讛专讬讬诐'; + } else { + return '讘注专讘'; + } + }, + }); + + return he; + +}))); diff --git a/node_modules/moment/locale/hi.js b/node_modules/moment/locale/hi.js new file mode 100644 index 0000000..56515bd --- /dev/null +++ b/node_modules/moment/locale/hi.js @@ -0,0 +1,179 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }, + monthsParse = [ + /^啶溹え/i, + /^啶ぜ啶皘啶ぐ/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶む|啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ|啶ㄠさ啶/i, + /^啶︵た啶膏|啶︵た啶/i, + ], + shortMonthsParse = [ + /^啶溹え/i, + /^啶ぜ啶/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ/i, + /^啶︵た啶/i, + ]; + + var hi = moment.defineLocale('hi', { + months: { + format: '啶溹え啶掂ぐ啷_啶ぜ啶班さ啶班_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶むぎ啷嵿が啶癬啶呧啷嵿啷傕が啶癬啶ㄠさ啶啶ぐ_啶︵た啶膏ぎ啷嵿が啶'.split( + '_' + ), + standalone: + '啶溹え啶掂ぐ啷_啶ぐ啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶む啶ぐ_啶呧啷嵿啷傕が啶癬啶ㄠさ啶傕が啶癬啶︵た啶膏啶ぐ'.split( + '_' + ), + }, + monthsShort: + '啶溹え._啶ぜ啶._啶ぞ啶班啶歘啶呧お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶呧._啶膏た啶._啶呧啷嵿啷._啶ㄠさ._啶︵た啶.'.split('_'), + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸げ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸げ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶啷', + LTS: 'A h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶啷', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsShortRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsStrictRegex: + /^(啶溹え啶掂ぐ啷?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ?|啶?|啶溹啶?|啶溹啶侧ぞ啶?|啶呧啶膏啶?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶?\.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ?)/i, + + monthsShortStrictRegex: + /^(啶溹え\.?|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶瞈.?|啶呧\.?|啶膏た啶.?|啶呧啷嵿啷俓.?|啶ㄠさ\.?|啶︵た啶竆.?)/i, + + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶曕げ] LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕げ] LT', + lastWeek: '[啶た啶涏げ啷嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啶啶', + past: '%s 啶す啶侧', + s: '啶曕啶 啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶', + m: '啶忇 啶た啶ㄠ', + mm: '%d 啶た啶ㄠ', + h: '啶忇 啶樴啶熰ぞ', + hh: '%d 啶樴啶熰', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啷啶ㄠ', + MM: '%d 啶す啷啶ㄠ', + y: '啶忇 啶掂ぐ啷嵿し', + yy: '%d 啶掂ぐ啷嵿し', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /啶班ぞ啶啶膏啶す|啶︵啶す啶皘啶多ぞ啶/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶す') { + return hour; + } else if (meridiem === '啶︵啶す啶') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶多ぞ啶') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶'; + } else if (hour < 10) { + return '啶膏啶す'; + } else if (hour < 17) { + return '啶︵啶す啶'; + } else if (hour < 20) { + return '啶多ぞ啶'; + } else { + return '啶班ぞ啶'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return hi; + +}))); diff --git a/node_modules/moment/locale/hr.js b/node_modules/moment/locale/hr.js new file mode 100644 index 0000000..f41cce0 --- /dev/null +++ b/node_modules/moment/locale/hr.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Markovi膰 : https://github.com/bmarkovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var hr = moment.defineLocale('hr', { + months: { + format: 'sije膷nja_velja膷e_o啪ujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'sije膷anj_velja膷a_o啪ujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._o啪u._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[pro拧lu] [nedjelju] [u] LT'; + case 3: + return '[pro拧lu] [srijedu] [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hr; + +}))); diff --git a/node_modules/moment/locale/hu.js b/node_modules/moment/locale/hu.js new file mode 100644 index 0000000..162959d --- /dev/null +++ b/node_modules/moment/locale/hu.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var weekEndings = + 'vas谩rnap h茅tf艖n kedden szerd谩n cs眉t枚rt枚k枚n p茅nteken szombaton'.split(' '); + function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'n茅h谩ny m谩sodperc' + : 'n茅h谩ny m谩sodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' m谩sodperc' + : ' m谩sodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[m煤lt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + var hu = moment.defineLocale('hu', { + months: 'janu谩r_febru谩r_m谩rcius_谩prilis_m谩jus_j煤nius_j煤lius_augusztus_szeptember_okt贸ber_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._m谩rc._谩pr._m谩j._j煤n._j煤l._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vas谩rnap_h茅tf艖_kedd_szerda_cs眉t枚rt枚k_p茅ntek_szombat'.split('_'), + weekdaysShort: 'vas_h茅t_kedd_sze_cs眉t_p茅n_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s m煤lva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return hu; + +}))); diff --git a/node_modules/moment/locale/hy-am.js b/node_modules/moment/locale/hy-am.js new file mode 100644 index 0000000..9c65b1e --- /dev/null +++ b/node_modules/moment/locale/hy-am.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var hyAm = moment.defineLocale('hy-am', { + months: { + format: '瞻崭謧斩站铡謤斋_謨榨湛謤站铡謤斋_沾铡謤湛斋_铡蘸謤斋宅斋_沾铡盏斋战斋_瞻崭謧斩斋战斋_瞻崭謧宅斋战斋_謪眨崭战湛崭战斋_战榨蘸湛榨沾闸榨謤斋_瞻崭寨湛榨沾闸榨謤斋_斩崭盏榨沾闸榨謤斋_栅榨寨湛榨沾闸榨謤斋'.split( + '_' + ), + standalone: + '瞻崭謧斩站铡謤_謨榨湛謤站铡謤_沾铡謤湛_铡蘸謤斋宅_沾铡盏斋战_瞻崭謧斩斋战_瞻崭謧宅斋战_謪眨崭战湛崭战_战榨蘸湛榨沾闸榨謤_瞻崭寨湛榨沾闸榨謤_斩崭盏榨沾闸榨謤_栅榨寨湛榨沾闸榨謤'.split( + '_' + ), + }, + monthsShort: '瞻斩站_謨湛謤_沾謤湛_铡蘸謤_沾盏战_瞻斩战_瞻宅战_謪眨战_战蘸湛_瞻寨湛_斩沾闸_栅寨湛'.split('_'), + weekdays: + '寨斋謤铡寨斋_榨謤寨崭謧辗铡闸诈斋_榨謤榨謩辗铡闸诈斋_展崭謤榨謩辗铡闸诈斋_瞻斋斩眨辗铡闸诈斋_崭謧謤闸铡诈_辗铡闸铡诈'.split( + '_' + ), + weekdaysShort: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + weekdaysMin: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 诈.', + LLL: 'D MMMM YYYY 诈., HH:mm', + LLLL: 'dddd, D MMMM YYYY 诈., HH:mm', + }, + calendar: { + sameDay: '[铡盏战謪謤] LT', + nextDay: '[站铡詹炸] LT', + lastDay: '[榨謤榨寨] LT', + nextWeek: function () { + return 'dddd [謪謤炸 摘铡沾炸] LT'; + }, + lastWeek: function () { + return '[铡斩謥铡债] dddd [謪謤炸 摘铡沾炸] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s 瞻榨湛崭', + past: '%s 铡占铡栈', + s: '沾斋 謩铡斩斋 站铡盏謤寨盏铡斩', + ss: '%d 站铡盏謤寨盏铡斩', + m: '謤崭蘸榨', + mm: '%d 謤崭蘸榨', + h: '摘铡沾', + hh: '%d 摘铡沾', + d: '謪謤', + dd: '%d 謪謤', + M: '铡沾斋战', + MM: '%d 铡沾斋战', + y: '湛铡謤斋', + yy: '%d 湛铡謤斋', + }, + meridiemParse: /眨斋辗榨謤站铡|铡占铡站崭湛站铡|謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩/, + isPM: function (input) { + return /^(謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return '眨斋辗榨謤站铡'; + } else if (hour < 12) { + return '铡占铡站崭湛站铡'; + } else if (hour < 17) { + return '謥榨謤榨寨站铡'; + } else { + return '榨謤榨寨崭盏铡斩'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(斋斩|謤栅)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-斋斩'; + } + return number + '-謤栅'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return hyAm; + +}))); diff --git a/node_modules/moment/locale/id.js b/node_modules/moment/locale/id.js new file mode 100644 index 0000000..9f8ff0a --- /dev/null +++ b/node_modules/moment/locale/id.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var id = moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return id; + +}))); diff --git a/node_modules/moment/locale/is.js b/node_modules/moment/locale/is.js new file mode 100644 index 0000000..0252006 --- /dev/null +++ b/node_modules/moment/locale/is.js @@ -0,0 +1,151 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik 脰rn Sigur冒sson : https://github.com/hinrik + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sek煤ndur' + : 'nokkrum sek煤ndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sek煤ndur' : 'sek煤ndum') + ); + } + return result + 'sek煤nda'; + case 'm': + return withoutSuffix ? 'm铆n煤ta' : 'm铆n煤tu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'm铆n煤tur' : 'm铆n煤tum') + ); + } else if (withoutSuffix) { + return result + 'm铆n煤ta'; + } + return result + 'm铆n煤tu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'd枚gum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'm谩nu冒ur'; + } + return isFuture ? 'm谩nu冒' : 'm谩nu冒i'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'm谩nu冒ir'; + } + return result + (isFuture ? 'm谩nu冒i' : 'm谩nu冒um'); + } else if (withoutSuffix) { + return result + 'm谩nu冒ur'; + } + return result + (isFuture ? 'm谩nu冒' : 'm谩nu冒i'); + case 'y': + return withoutSuffix || isFuture ? '谩r' : '谩ri'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? '谩r' : '谩rum'); + } + return result + (withoutSuffix || isFuture ? '谩r' : '谩ri'); + } + } + + var is = moment.defineLocale('is', { + months: 'jan煤ar_febr煤ar_mars_apr铆l_ma铆_j煤n铆_j煤l铆_谩g煤st_september_okt贸ber_n贸vember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_ma铆_j煤n_j煤l_谩g煤_sep_okt_n贸v_des'.split('_'), + weekdays: + 'sunnudagur_m谩nudagur_镁ri冒judagur_mi冒vikudagur_fimmtudagur_f枚studagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_镁ri_mi冒_fim_f枚s_lau'.split('_'), + weekdaysMin: 'Su_M谩_脼r_Mi_Fi_F枚_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[铆 dag kl.] LT', + nextDay: '[谩 morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[铆 g忙r kl.] LT', + lastWeek: '[s铆冒asta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s s铆冒an', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return is; + +}))); diff --git a/node_modules/moment/locale/it-ch.js b/node_modules/moment/locale/it-ch.js new file mode 100644 index 0000000..8042827 --- /dev/null +++ b/node_modules/moment/locale/it-ch.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var itCh = moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri 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: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return itCh; + +}))); diff --git a/node_modules/moment/locale/it.js b/node_modules/moment/locale/it.js new file mode 100644 index 0000000..2ac9037 --- /dev/null +++ b/node_modules/moment/locale/it.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var it = moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return it; + +}))); diff --git a/node_modules/moment/locale/ja.js b/node_modules/moment/locale/ja.js new file mode 100644 index 0000000..88d8454 --- /dev/null +++ b/node_modules/moment/locale/ja.js @@ -0,0 +1,159 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ja = moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '浠ゅ拰', + narrow: '銒', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '骞虫垚', + narrow: '銔', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '鏄拰', + narrow: '銔', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '澶ф', + narrow: '銔', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '鏄庢不', + narrow: '銔', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '瑗挎殾', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '绱鍏冨墠', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(鍏億\d+)骞/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '鍏' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split('_'), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏃ユ洔鏃鏈堟洔鏃鐏洔鏃姘存洔鏃鏈ㄦ洔鏃閲戞洔鏃鍦熸洔鏃'.split('_'), + weekdaysShort: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + weekdaysMin: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃(ddd) HH:mm', + }, + meridiemParse: /鍗堝墠|鍗堝緦/i, + isPM: function (input) { + return input === '鍗堝緦'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '鍗堝墠'; + } else { + return '鍗堝緦'; + } + }, + calendar: { + sameDay: '[浠婃棩] LT', + nextDay: '[鏄庢棩] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[鏉ラ盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[鏄ㄦ棩] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[鍏堥盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}鏃/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '鍏冨勾' : number + '骞'; + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '鏁扮', + ss: '%d绉', + m: '1鍒', + mm: '%d鍒', + h: '1鏅傞枔', + hh: '%d鏅傞枔', + d: '1鏃', + dd: '%d鏃', + M: '1銉舵湀', + MM: '%d銉舵湀', + y: '1骞', + yy: '%d骞', + }, + }); + + return ja; + +}))); diff --git a/node_modules/moment/locale/jv.js b/node_modules/moment/locale/jv.js new file mode 100644 index 0000000..ab6655f --- /dev/null +++ b/node_modules/moment/locale/jv.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var jv = moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return jv; + +}))); diff --git a/node_modules/moment/locale/ka.js b/node_modules/moment/locale/ka.js new file mode 100644 index 0000000..6357669 --- /dev/null +++ b/node_modules/moment/locale/ka.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ka = moment.defineLocale('ka', { + months: '醿樶儛醿溼儠醿愥儬醿榑醿椺償醿戓償醿犪儠醿愥儦醿榑醿涐儛醿犪儮醿榑醿愥優醿犪儤醿氠儤_醿涐儛醿樶儭醿榑醿樶儠醿溼儤醿♂儤_醿樶儠醿氠儤醿♂儤_醿愥儝醿曖儤醿♂儮醿漘醿♂償醿メ儮醿斸儧醿戓償醿犪儤_醿濁儱醿⑨儩醿涐儜醿斸儬醿榑醿溼儩醿斸儧醿戓償醿犪儤_醿撫償醿欋償醿涐儜醿斸儬醿'.split( + '_' + ), + monthsShort: '醿樶儛醿淿醿椺償醿慱醿涐儛醿燺醿愥優醿燺醿涐儛醿榑醿樶儠醿淿醿樶儠醿歘醿愥儝醿昣醿♂償醿醿濁儱醿醿溼儩醿擾醿撫償醿'.split('_'), + weekdays: { + standalone: + '醿欋儠醿樶儬醿恄醿濁儬醿ㄡ儛醿戓儛醿椺儤_醿♂儛醿涐儴醿愥儜醿愥儣醿榑醿濁儣醿儴醿愥儜醿愥儣醿榑醿儯醿椺儴醿愥儜醿愥儣醿榑醿炨儛醿犪儛醿♂儥醿斸儠醿榑醿ㄡ儛醿戓儛醿椺儤'.split( + '_' + ), + format: '醿欋儠醿樶儬醿愥儭_醿濁儬醿ㄡ儛醿戓儛醿椺儭_醿♂儛醿涐儴醿愥儜醿愥儣醿醿濁儣醿儴醿愥儜醿愥儣醿醿儯醿椺儴醿愥儜醿愥儣醿醿炨儛醿犪儛醿♂儥醿斸儠醿醿ㄡ儛醿戓儛醿椺儭'.split( + '_' + ), + isFormat: /(醿儤醿溼儛|醿ㄡ償醿涐儞醿斸儝)/, + }, + weekdaysShort: '醿欋儠醿榑醿濁儬醿╛醿♂儛醿沖醿濁儣醿甠醿儯醿梍醿炨儛醿燺醿ㄡ儛醿'.split('_'), + weekdaysMin: '醿欋儠_醿濁儬_醿♂儛_醿濁儣_醿儯_醿炨儛_醿ㄡ儛'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醿撫儲醿斸儭] LT[-醿栣償]', + nextDay: '[醿儠醿愥儦] LT[-醿栣償]', + lastDay: '[醿掅儯醿ㄡ儤醿淽 LT[-醿栣償]', + nextWeek: '[醿ㄡ償醿涐儞醿斸儝] dddd LT[-醿栣償]', + lastWeek: '[醿儤醿溼儛] dddd LT-醿栣償', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(醿儛醿泑醿儯醿梶醿♂儛醿愥儣|醿償醿殀醿撫儲|醿椺儠)(醿榺醿)/, + function ($0, $1, $2) { + return $2 === '醿' ? $1 + '醿ㄡ儤' : $1 + $2 + '醿ㄡ儤'; + } + ); + }, + past: function (s) { + if (/(醿儛醿涐儤|醿儯醿椺儤|醿♂儛醿愥儣醿榺醿撫儲醿攟醿椺儠醿)/.test(s)) { + return s.replace(/(醿榺醿)$/, '醿樶儭 醿儤醿'); + } + if (/醿償醿氠儤/.test(s)) { + return s.replace(/醿償醿氠儤$/, '醿儦醿樶儭 醿儤醿'); + } + return s; + }, + s: '醿犪儛醿涐儞醿斸儨醿樶儧醿 醿儛醿涐儤', + ss: '%d 醿儛醿涐儤', + m: '醿儯醿椺儤', + mm: '%d 醿儯醿椺儤', + h: '醿♂儛醿愥儣醿', + hh: '%d 醿♂儛醿愥儣醿', + d: '醿撫儲醿', + dd: '%d 醿撫儲醿', + M: '醿椺儠醿', + MM: '%d 醿椺儠醿', + y: '醿償醿氠儤', + yy: '%d 醿償醿氠儤', + }, + dayOfMonthOrdinalParse: /0|1-醿氠儤|醿涐償-\d{1,2}|\d{1,2}-醿/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-醿氠儤'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return '醿涐償-' + number; + } + return number + '-醿'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + return ka; + +}))); diff --git a/node_modules/moment/locale/kk.js b/node_modules/moment/locale/kk.js new file mode 100644 index 0000000..38f2e8c --- /dev/null +++ b/node_modules/moment/locale/kk.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-褕褨', + 1: '-褕褨', + 2: '-褕褨', + 3: '-褕褨', + 4: '-褕褨', + 5: '-褕褨', + 6: '-褕褘', + 7: '-褕褨', + 8: '-褕褨', + 9: '-褕褘', + 10: '-褕褘', + 20: '-褕褘', + 30: '-褕褘', + 40: '-褕褘', + 50: '-褕褨', + 60: '-褕褘', + 70: '-褕褨', + 80: '-褕褨', + 90: '-褕褘', + 100: '-褕褨', + }; + + var kk = moment.defineLocale('kk', { + months: '覜邪遥褌邪褉_邪覜锌邪薪_薪邪褍褉褘蟹_褋訖褍褨褉_屑邪屑褘褉_屑邪褍褋褘屑_褕褨谢写械_褌邪屑褘蟹_覜褘褉泻爷泄械泻_覜邪蟹邪薪_覜邪褉邪褕邪_卸械谢褌芯覜褋邪薪'.split( + '_' + ), + monthsShort: '覜邪遥_邪覜锌_薪邪褍_褋訖褍_屑邪屑_屑邪褍_褕褨谢_褌邪屑_覜褘褉_覜邪蟹_覜邪褉_卸械谢'.split('_'), + weekdays: '卸械泻褋械薪斜褨_写爷泄褋械薪斜褨_褋械泄褋械薪斜褨_褋訖褉褋械薪斜褨_斜械泄褋械薪斜褨_卸冶屑邪_褋械薪斜褨'.split( + '_' + ), + weekdaysShort: '卸械泻_写爷泄_褋械泄_褋訖褉_斜械泄_卸冶屑_褋械薪'.split('_'), + weekdaysMin: '卸泻_写泄_褋泄_褋褉_斜泄_卸屑_褋薪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐褨薪 褋邪覔邪褌] LT', + nextDay: '[袝褉褌械遥 褋邪覔邪褌] LT', + nextWeek: 'dddd [褋邪覔邪褌] LT', + lastDay: '[袣械褕械 褋邪覔邪褌] LT', + lastWeek: '[莹褌泻械薪 邪锌褌邪薪褘遥] dddd [褋邪覔邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 褨褕褨薪写械', + past: '%s 斜冶褉褘薪', + s: '斜褨褉薪械褕械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜褨褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '斜褨褉 褋邪覔邪褌', + hh: '%d 褋邪覔邪褌', + d: '斜褨褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜褨褉 邪泄', + MM: '%d 邪泄', + y: '斜褨褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褕褨|褕褘)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return kk; + +}))); diff --git a/node_modules/moment/locale/km.js b/node_modules/moment/locale/km.js new file mode 100644 index 0000000..5306436 --- /dev/null +++ b/node_modules/moment/locale/km.js @@ -0,0 +1,114 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '釤', + 2: '釤', + 3: '釤', + 4: '釤', + 5: '釤', + 6: '釤', + 7: '釤', + 8: '釤', + 9: '釤', + 0: '釤', + }, + numberMap = { + '釤': '1', + '釤': '2', + '釤': '3', + '釤': '4', + '釤': '5', + '釤': '6', + '釤': '7', + '釤': '8', + '釤': '9', + '釤': '0', + }; + + var km = moment.defineLocale('km', { + months: '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + monthsShort: + '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + weekdays: '釣⑨灦釣戓灧釣忈煉釣檁釣呩煇釣撫煉釣慱釣⑨瀯釤掅瀭釣夺灇_釣栣灮釣抇釣栣煉釣氠灎釣熱煉釣斸瀼釣丰煃_釣熱灮釣釤掅灇_釣熱焻釣氠煃'.split('_'), + weekdaysShort: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysMin: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /釣栣煉釣氠灩釣|釣涐煉釣勧灦釣/, + isPM: function (input) { + return input === '釣涐煉釣勧灦釣'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '釣栣煉釣氠灩釣'; + } else { + return '釣涐煉釣勧灦釣'; + } + }, + calendar: { + sameDay: '[釣愥煉釣勧焹釣撫焷釤 釣樶焿釤勧瀯] LT', + nextDay: '[釣熱煉釣⑨焸釣 釣樶焿釤勧瀯] LT', + nextWeek: 'dddd [釣樶焿釤勧瀯] LT', + lastDay: '[釣樶煉釣熱灧釣涐灅釣丰瀴 釣樶焿釤勧瀯] LT', + lastWeek: 'dddd [釣熱灁釤掅瀼釣夺灎釤嶀灅釣会灀] [釣樶焿釤勧瀯] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s釣戓焵釣', + past: '%s釣樶灮釣', + s: '釣斸焿釣会灀釤掅灅釣夺灀釣溼灧釣撫灦釣戓灨', + ss: '%d 釣溼灧釣撫灦釣戓灨', + m: '釣樶灲釣欋灀釣夺瀾釣', + mm: '%d 釣撫灦釣戓灨', + h: '釣樶灲釣欋灅釤夅焺釣', + hh: '%d 釣樶焿釤勧瀯', + d: '釣樶灲釣欋瀽釤掅瀯釤', + dd: '%d 釣愥煉釣勧焹', + M: '釣樶灲釣欋瀬釤', + MM: '%d 釣佱焸', + y: '釣樶灲釣欋瀱釤掅灀釣夺焼', + yy: '%d 釣嗎煉釣撫灦釤', + }, + dayOfMonthOrdinalParse: /釣戓灨\d{1,2}/, + ordinal: '釣戓灨%d', + preparse: function (string) { + return string.replace(/[釤♂煝釤a煠釤メ煢釤п煥釤┽煚]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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. + }, + }); + + return km; + +}))); diff --git a/node_modules/moment/locale/kn.js b/node_modules/moment/locale/kn.js new file mode 100644 index 0000000..5fe70b0 --- /dev/null +++ b/node_modules/moment/locale/kn.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '喑', + 2: '喑', + 3: '喑', + 4: '喑', + 5: '喑', + 6: '喑', + 7: '喑', + 8: '喑', + 9: '喑', + 0: '喑', + }, + numberMap = { + '喑': '1', + '喑': '2', + '喑': '3', + '喑': '4', + '喑': '5', + '喑': '6', + '喑': '7', + '喑': '8', + '喑': '9', + '喑': '0', + }; + + var kn = moment.defineLocale('kn', { + months: '嗖溹波嗖掂舶嗖縚嗖硢嗖硩嗖班驳嗖班部_嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖傕铂嗖班硩_嗖呧矔喑嵿矡喑嗋硞喑曕铂嗖班硩_嗖ㄠ驳喑嗋矀嗖舶喑峗嗖∴部嗖膏硢嗖傕铂嗖班硩'.split( + '_' + ), + monthsShort: + '嗖溹波_嗖硢嗖硩嗖癬嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖俖嗖呧矔喑嵿矡喑嗋硞喑昣嗖ㄠ驳喑嗋矀_嗖∴部嗖膏硢嗖'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗖簿嗖ㄠ硜嗖掂簿嗖癬嗖膏硢喑傕硶嗖驳嗖距舶_嗖矀嗖椸渤嗖掂簿嗖癬嗖硜嗖о驳嗖距舶_嗖椸硜嗖班硜嗖掂簿嗖癬嗖多硜嗖曕硩嗖班驳嗖距舶_嗖多波嗖苦驳嗖距舶'.split( + '_' + ), + weekdaysShort: '嗖簿嗖ㄠ硜_嗖膏硢喑傕硶嗖甠嗖矀嗖椸渤_嗖硜嗖嗖椸硜嗖班硜_嗖多硜嗖曕硩嗖癬嗖多波嗖'.split('_'), + weekdaysMin: '嗖簿_嗖膏硢喑傕硶_嗖矀_嗖硜_嗖椸硜_嗖多硜_嗖'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嗖囙矀嗖︵硜] LT', + nextDay: '[嗖ㄠ簿嗖赤硢] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗖ㄠ部嗖ㄠ硩嗖ㄠ硢] LT', + lastWeek: '[嗖曕硢喑傕波喑嗋帛] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗖ㄠ矀嗖む舶', + past: '%s 嗖灌部嗖傕拨喑', + s: '嗖曕硢嗖侧驳喑 嗖曕硩嗖粪玻嗖椸渤喑', + ss: '%d 嗖膏硢嗖曕硢嗖傕病喑佮矖嗖赤硜', + m: '嗖掄矀嗖︵硜 嗖ㄠ部嗖部嗖', + mm: '%d 嗖ㄠ部嗖部嗖', + h: '嗖掄矀嗖︵硜 嗖椸矀嗖熰硢', + hh: '%d 嗖椸矀嗖熰硢', + d: '嗖掄矀嗖︵硜 嗖︵部嗖', + dd: '%d 嗖︵部嗖', + M: '嗖掄矀嗖︵硜 嗖む部嗖傕矖嗖赤硜', + MM: '%d 嗖む部嗖傕矖嗖赤硜', + y: '嗖掄矀嗖︵硜 嗖掂舶喑嵿卜', + yy: '%d 嗖掂舶喑嵿卜', + }, + preparse: function (string) { + return string.replace(/[喑о敞喑┼唱喑超喑钞喑肠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嗖班簿嗖む硩嗖班部|嗖硢嗖赤部嗖椸硩嗖椸硢|嗖钵喑嵿帛嗖距补喑嵿波|嗖膏矀嗖溹硢/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗖班簿嗖む硩嗖班部') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗖硢嗖赤部嗖椸硩嗖椸硢') { + return hour; + } else if (meridiem === '嗖钵喑嵿帛嗖距补喑嵿波') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗖膏矀嗖溹硢') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗖班簿嗖む硩嗖班部'; + } else if (hour < 10) { + return '嗖硢嗖赤部嗖椸硩嗖椸硢'; + } else if (hour < 17) { + return '嗖钵喑嵿帛嗖距补喑嵿波'; + } else if (hour < 20) { + return '嗖膏矀嗖溹硢'; + } else { + return '嗖班簿嗖む硩嗖班部'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(嗖ㄠ硢喑)/, + ordinal: function (number) { + return number + '嗖ㄠ硢喑'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return kn; + +}))); diff --git a/node_modules/moment/locale/ko.js b/node_modules/moment/locale/ko.js new file mode 100644 index 0000000..c81c13e --- /dev/null +++ b/node_modules/moment/locale/ko.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ko = moment.defineLocale('ko', { + months: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split('_'), + monthsShort: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split( + '_' + ), + weekdays: '鞚检殧鞚糭鞗旍殧鞚糭頇旍殧鞚糭靾橃殧鞚糭氇╈殧鞚糭旮堨殧鞚糭韱犾殧鞚'.split('_'), + weekdaysShort: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + weekdaysMin: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY雲 MMMM D鞚', + LLL: 'YYYY雲 MMMM D鞚 A h:mm', + LLLL: 'YYYY雲 MMMM D鞚 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY雲 MMMM D鞚', + lll: 'YYYY雲 MMMM D鞚 A h:mm', + llll: 'YYYY雲 MMMM D鞚 dddd A h:mm', + }, + calendar: { + sameDay: '鞓る姌 LT', + nextDay: '雮挫澕 LT', + nextWeek: 'dddd LT', + lastDay: '鞏挫牅 LT', + lastWeek: '歆雮滌< dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 頉', + past: '%s 鞝', + s: '氇 齑', + ss: '%d齑', + m: '1攵', + mm: '%d攵', + h: '頃 鞁滉皠', + hh: '%d鞁滉皠', + d: '頃橂(', + dd: '%d鞚', + M: '頃 雼', + MM: '%d雼', + y: '鞚 雲', + yy: '%d雲', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鞚紎鞗攟欤)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鞚'; + case 'M': + return number + '鞗'; + case 'w': + case 'W': + return number + '欤'; + default: + return number; + } + }, + meridiemParse: /鞓れ爠|鞓ろ泟/, + isPM: function (token) { + return token === '鞓ろ泟'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '鞓れ爠' : '鞓ろ泟'; + }, + }); + + return ko; + +}))); diff --git a/node_modules/moment/locale/ku.js b/node_modules/moment/locale/ku.js new file mode 100644 index 0000000..71c56a1 --- /dev/null +++ b/node_modules/moment/locale/ku.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + months = [ + '讴丕賳賵賳蹖 丿賵賵蹠賲', + '卮賵亘丕鬲', + '卅丕夭丕乇', + '賳蹖爻丕賳', + '卅丕蹖丕乇', + '丨賵夭蹠蹖乇丕賳', + '鬲蹠賲賲賵夭', + '卅丕亘', + '卅蹠蹖賱賵賵賱', + '鬲卮乇蹖賳蹖 蹖蹠賰蹠賲', + '鬲卮乇蹖賳蹖 丿賵賵蹠賲', + '賰丕賳賵賳蹖 蹖蹠讴蹠賲', + ]; + + var ku = moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + '蹖賴鈥屬冐促団屬呝呝団宊丿賵賵卮賴鈥屬呝呝団宊爻蹘卮賴鈥屬呝呝団宊趩賵丕乇卮賴鈥屬呝呝団宊倬蹘賳噩卮賴鈥屬呝呝団宊賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split( + '_' + ), + weekdaysShort: + '蹖賴鈥屬冐促団屬卂丿賵賵卮賴鈥屬卂爻蹘卮賴鈥屬卂趩賵丕乇卮賴鈥屬卂倬蹘賳噩卮賴鈥屬卂賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split('_'), + weekdaysMin: '蹖_丿_爻_趩_倬_賴_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /卅蹘賵丕乇賴鈥寍亘賴鈥屰屫з嗃/, + isPM: function (input) { + return /卅蹘賵丕乇賴鈥/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '亘賴鈥屰屫з嗃'; + } else { + return '卅蹘賵丕乇賴鈥'; + } + }, + calendar: { + sameDay: '[卅賴鈥屬呚臂 賰丕鬲跇賲蹘乇] LT', + nextDay: '[亘賴鈥屰屫з嗃 賰丕鬲跇賲蹘乇] LT', + nextWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + lastDay: '[丿賵蹘賳蹘 賰丕鬲跇賲蹘乇] LT', + lastWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賱賴鈥 %s', + past: '%s', + s: '趩賴鈥屬嗀 趩乇賰賴鈥屰屬団屬', + ss: '趩乇賰賴鈥 %d', + m: '蹖賴鈥屬 禺賵賱賴鈥屬', + mm: '%d 禺賵賱賴鈥屬', + h: '蹖賴鈥屬 賰丕鬲跇賲蹘乇', + hh: '%d 賰丕鬲跇賲蹘乇', + d: '蹖賴鈥屬 跁蹎跇', + dd: '%d 跁蹎跇', + M: '蹖賴鈥屬 賲丕賳诏', + MM: '%d 賲丕賳诏', + y: '蹖賴鈥屬 爻丕诘', + yy: '%d 爻丕诘', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return ku; + +}))); diff --git a/node_modules/moment/locale/ky.js b/node_modules/moment/locale/ky.js new file mode 100644 index 0000000..6dce606 --- /dev/null +++ b/node_modules/moment/locale/ky.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-褔爷', + 1: '-褔懈', + 2: '-褔懈', + 3: '-褔爷', + 4: '-褔爷', + 5: '-褔懈', + 6: '-褔褘', + 7: '-褔懈', + 8: '-褔懈', + 9: '-褔褍', + 10: '-褔褍', + 20: '-褔褘', + 30: '-褔褍', + 40: '-褔褘', + 50: '-褔爷', + 60: '-褔褘', + 70: '-褔懈', + 80: '-褔懈', + 90: '-褔褍', + 100: '-褔爷', + }; + + var ky = moment.defineLocale('ky', { + months: '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉褌_邪锌褉_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split( + '_' + ), + weekdays: '袞械泻褕械屑斜懈_袛爷泄褕萤屑斜爷_楔械泄褕械屑斜懈_楔邪褉褕械屑斜懈_袘械泄褕械屑斜懈_袞褍屑邪_袠褕械屑斜懈'.split( + '_' + ), + weekdaysShort: '袞械泻_袛爷泄_楔械泄_楔邪褉_袘械泄_袞褍屑_袠褕械'.split('_'), + weekdaysMin: '袞泻_袛泄_楔泄_楔褉_袘泄_袞屑_袠褕'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐爷薪 褋邪邪褌] LT', + nextDay: '[协褉褌械遥 褋邪邪褌] LT', + nextWeek: 'dddd [褋邪邪褌] LT', + lastDay: '[袣械褔褝褝 褋邪邪褌] LT', + lastWeek: '[莹褌泻萤薪 邪锌褌邪薪褘薪] dddd [泻爷薪爷] [褋邪邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 懈褔懈薪写械', + past: '%s 屑褍褉褍薪', + s: '斜懈褉薪械褔械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜懈褉 屑爷薪萤褌', + mm: '%d 屑爷薪萤褌', + h: '斜懈褉 褋邪邪褌', + hh: '%d 褋邪邪褌', + d: '斜懈褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜懈褉 邪泄', + MM: '%d 邪泄', + y: '斜懈褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褔懈|褔褘|褔爷|褔褍)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ky; + +}))); diff --git a/node_modules/moment/locale/lb.js b/node_modules/moment/locale/lb.js new file mode 100644 index 0000000..ffcb758 --- /dev/null +++ b/node_modules/moment/locale/lb.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + var lb = moment.defineLocale('lb', { + months: 'Januar_Februar_M盲erz_Abr毛ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_M茅indeg_D毛nschdeg_M毛ttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._M茅._D毛._M毛._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_M茅_D毛_M毛_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[G毛schter um] LT', + lastWeek: function () { + // Different date string for 'D毛nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d M茅int', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return lb; + +}))); diff --git a/node_modules/moment/locale/lo.js b/node_modules/moment/locale/lo.js new file mode 100644 index 0000000..18fc666 --- /dev/null +++ b/node_modules/moment/locale/lo.js @@ -0,0 +1,77 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var lo = moment.defineLocale('lo', { + months: '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + monthsShort: + '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + weekdays: '嗪翰嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysShort: '嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysMin: '嗪梍嗪坃嗪簞_嗪瀇嗪炧韩_嗪簛_嗪'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: '嗪о罕嗪檇ddd D MMMM YYYY HH:mm', + }, + meridiemParse: /嗪曕涵嗪權粈嗪娻夯嗷夃翰|嗪曕涵嗪權粊嗪ム簢/, + isPM: function (input) { + return input === '嗪曕涵嗪權粊嗪ム簢'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '嗪曕涵嗪權粈嗪娻夯嗷夃翰'; + } else { + return '嗪曕涵嗪權粊嗪ム簢'; + } + }, + calendar: { + sameDay: '[嗪∴悍嗷夃簷嗪掂粔嗷嗪о亥嗪瞉 LT', + nextDay: '[嗪∴悍嗷夃涵嗪粪粓嗪權粈嗪о亥嗪瞉 LT', + nextWeek: '[嗪о罕嗪橾dddd[嗷溹粔嗪侧粈嗪о亥嗪瞉 LT', + lastDay: '[嗪∴悍嗷夃骇嗪侧簷嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + lastWeek: '[嗪о罕嗪橾dddd[嗷佮亥嗷夃骇嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '嗪旱嗪 %s', + past: '%s嗪溹粓嗪侧簷嗪∴翰', + s: '嗪氞粛嗷堗粈嗪椸夯嗷堗翰嗷冟簲嗪о捍嗪權翰嗪椸旱', + ss: '%d 嗪о捍嗪權翰嗪椸旱', + m: '1 嗪權翰嗪椸旱', + mm: '%d 嗪權翰嗪椸旱', + h: '1 嗪娻夯嗷堗骇嗷傕骸嗪', + hh: '%d 嗪娻夯嗷堗骇嗷傕骸嗪', + d: '1 嗪∴悍嗷', + dd: '%d 嗪∴悍嗷', + M: '1 嗷嗪斷悍嗪簷', + MM: '%d 嗷嗪斷悍嗪簷', + y: '1 嗪涏旱', + yy: '%d 嗪涏旱', + }, + dayOfMonthOrdinalParse: /(嗪椸旱嗷)\d{1,2}/, + ordinal: function (number) { + return '嗪椸旱嗷' + number; + }, + }); + + return lo; + +}))); diff --git a/node_modules/moment/locale/lt.js b/node_modules/moment/locale/lt.js new file mode 100644 index 0000000..e20d208 --- /dev/null +++ b/node_modules/moment/locale/lt.js @@ -0,0 +1,136 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Moz奴ras : https://github.com/mmozuras + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekund臈_sekund啪i懦_sekundes', + m: 'minut臈_minut臈s_minut臋', + mm: 'minut臈s_minu膷i懦_minutes', + h: 'valanda_valandos_valand膮', + hh: 'valandos_valand懦_valandas', + d: 'diena_dienos_dien膮', + dd: 'dienos_dien懦_dienas', + M: 'm臈nuo_m臈nesio_m臈nes寞', + MM: 'm臈nesiai_m臈nesi懦_m臈nesius', + y: 'metai_met懦_metus', + yy: 'metai_met懦_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekund臈s'; + } else { + return isFuture ? 'keli懦 sekund啪i懦' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + var lt = moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_baland啪io_gegu啪臈s_bir啪elio_liepos_rugpj奴膷io_rugs臈jo_spalio_lapkri膷io_gruod啪io'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegu啪臈_bir啪elis_liepa_rugpj奴tis_rugs臈jis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadien寞_pirmadien寞_antradien寞_tre膷iadien寞_ketvirtadien寞_penktadien寞_拧e拧tadien寞'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_tre膷iadienis_ketvirtadienis_penktadienis_拧e拧tadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_艩e拧'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_艩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[艩iandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Pra臈jus寞] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prie拧 %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + 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. + }, + }); + + return lt; + +}))); diff --git a/node_modules/moment/locale/lv.js b/node_modules/moment/locale/lv.js new file mode 100644 index 0000000..109fdfe --- /dev/null +++ b/node_modules/moment/locale/lv.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : J膩nis Elmeris : https://github.com/JanisE + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var units = { + ss: 'sekundes_sekund膿m_sekunde_sekundes'.split('_'), + m: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + mm: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + h: 'stundas_stund膩m_stunda_stundas'.split('_'), + hh: 'stundas_stund膩m_stunda_stundas'.split('_'), + d: 'dienas_dien膩m_diena_dienas'.split('_'), + dd: 'dienas_dien膩m_diena_dienas'.split('_'), + M: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + MM: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 min奴te", "3 min奴tes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 min奴tes" as in "p膿c 21 min奴tes". + // E.g. "3 min奴t膿m" as in "p膿c 3 min奴t膿m". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'da啪as sekundes' : 'da啪膩m sekund膿m'; + } + + var lv = moment.defineLocale('lv', { + months: 'janv膩ris_febru膩ris_marts_apr墨lis_maijs_j奴nijs_j奴lijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_j奴n_j奴l_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'sv膿tdiena_pirmdiena_otrdiena_tre拧diena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[艩odien pulksten] LT', + nextDay: '[R墨t pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pag膩ju拧膩] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'p膿c %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return lv; + +}))); diff --git a/node_modules/moment/locale/me.js b/node_modules/moment/locale/me.js new file mode 100644 index 0000000..21b6826 --- /dev/null +++ b/node_modules/moment/locale/me.js @@ -0,0 +1,128 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nika膷 : https://github.com/miodragnikac + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + var me = moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedjelje] [u] LT', + '[pro拧log] [ponedjeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srijede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return me; + +}))); diff --git a/node_modules/moment/locale/mi.js b/node_modules/moment/locale/mi.js new file mode 100644 index 0000000..f95f9cb --- /dev/null +++ b/node_modules/moment/locale/mi.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mi = moment.defineLocale('mi', { + months: 'Kohi-t膩te_Hui-tanguru_Pout奴-te-rangi_Paenga-wh膩wh膩_Haratua_Pipiri_H艒ngoingoi_Here-turi-k艒k膩_Mahuru_Whiringa-膩-nuku_Whiringa-膩-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_H艒ngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'R膩tapu_Mane_T奴rei_Wenerei_T膩ite_Paraire_H膩tarei'.split('_'), + weekdaysShort: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + weekdaysMin: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te h膿kona ruarua', + ss: '%d h膿kona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return mi; + +}))); diff --git a/node_modules/moment/locale/mk.js b/node_modules/moment/locale/mk.js new file mode 100644 index 0000000..c66500d --- /dev/null +++ b/node_modules/moment/locale/mk.js @@ -0,0 +1,97 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mk = moment.defineLocale('mk', { + months: '褬邪薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪懈_褬褍谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褬邪薪_褎械胁_屑邪褉_邪锌褉_屑邪褬_褬褍薪_褬褍谢_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢邪_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁褉褌芯泻_锌械褌芯泻_褋邪斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉械_褔械褌_锌械褌_褋邪斜'.split('_'), + weekdaysMin: '薪e_锌o_胁褌_褋褉_褔械_锌械_褋a'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛械薪械褋 胁芯] LT', + nextDay: '[校褌褉械 胁芯] LT', + nextWeek: '[袙芯] dddd [胁芯] LT', + lastDay: '[袙褔械褉邪 胁芯] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袠蟹屑懈薪邪褌邪褌邪] dddd [胁芯] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袠蟹屑懈薪邪褌懈芯褌] dddd [胁芯] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械写 %s', + s: '薪械泻芯谢泻褍 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '械写薪邪 屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '械写械薪 褔邪褋', + hh: '%d 褔邪褋邪', + d: '械写械薪 写械薪', + dd: '%d 写械薪邪', + M: '械写械薪 屑械褋械褑', + MM: '%d 屑械褋械褑懈', + y: '械写薪邪 谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return mk; + +}))); diff --git a/node_modules/moment/locale/ml.js b/node_modules/moment/locale/ml.js new file mode 100644 index 0000000..6a7298c --- /dev/null +++ b/node_modules/moment/locale/ml.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ml = moment.defineLocale('ml', { + months: '啻溹川嗟佮吹啻班纯_啻祮啻祶啻班祦啻掂窗啻縚啻淳嗟监礆嗟嵿礆嗟峗啻忇椽嗟嵿窗啻苦到_啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱_啻撪礂啻膏祶啻编祶啻编祶_啻膏祮啻祶啻编祶啻编磦啻导_啻掄磿嗟嵿礋嗟嬥船嗟糭啻ㄠ吹啻傕船嗟糭啻∴纯啻膏磦啻导'.split( + '_' + ), + monthsShort: + '啻溹川嗟._啻祮啻祶啻班祦._啻淳嗟._啻忇椽嗟嵿窗啻._啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱._啻撪礂._啻膏祮啻祶啻编祶啻._啻掄磿嗟嵿礋嗟._啻ㄠ吹啻._啻∴纯啻膏磦.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '啻炧淳啻幢啻距创嗟嵿礆_啻む纯啻權祶啻曕闯啻距创嗟嵿礆_啻氞祳啻掂祶啻掂淳啻脆祶啻歘啻祦啻о川啻距创嗟嵿礆_啻掂祶啻淳啻脆淳啻脆祶啻歘啻掂祮啻赤祶啻赤纯啻淳啻脆祶啻歘啻多川啻苦疮啻距创嗟嵿礆'.split( + '_' + ), + weekdaysShort: '啻炧淳啻导_啻む纯啻權祶啻曕稻_啻氞祳啻掂祶啻礯啻祦啻о祷_啻掂祶啻淳啻脆磦_啻掂祮啻赤祶啻赤纯_啻多川啻'.split('_'), + weekdaysMin: '啻炧淳_啻む纯_啻氞祳_啻祦_啻掂祶啻淳_啻掂祮_啻'.split('_'), + longDateFormat: { + LT: 'A h:mm -啻ㄠ祦', + LTS: 'A h:mm:ss -啻ㄠ祦', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -啻ㄠ祦', + LLLL: 'dddd, D MMMM YYYY, A h:mm -啻ㄠ祦', + }, + calendar: { + sameDay: '[啻囙川嗟嵿川嗟峕 LT', + nextDay: '[啻ㄠ淳啻赤祮] LT', + nextWeek: 'dddd, LT', + lastDay: '[啻囙川嗟嵿川啻侧祮] LT', + lastWeek: '[啻曕创啻苦礊嗟嵿礊] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啻曕创啻苦礊嗟嵿礊嗟', + past: '%s 啻祦嗟秽椽嗟', + s: '啻呧到啻 啻ㄠ纯啻纯啻粪礄嗟嵿礄嗟', + ss: '%d 啻膏祮啻曕祶啻曕祷啻∴祶', + m: '啻掄窗嗟 啻纯啻ㄠ纯啻编祶啻编祶', + mm: '%d 啻纯啻ㄠ纯啻编祶啻编祶', + h: '啻掄窗嗟 啻矗啻苦磿嗟嵿磿嗟傕导', + hh: '%d 啻矗啻苦磿嗟嵿磿嗟傕导', + d: '啻掄窗嗟 啻︵纯啻掂锤啻', + dd: '%d 啻︵纯啻掂锤啻', + M: '啻掄窗嗟 啻淳啻膏磦', + MM: '%d 啻淳啻膏磦', + y: '啻掄窗嗟 啻掂导啻粪磦', + yy: '%d 啻掂导啻粪磦', + }, + meridiemParse: /啻班淳啻む祶啻班纯|啻班淳啻掂纯啻侧祮|啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟峾啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦|啻班淳啻む祶啻班纯/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '啻班淳啻む祶啻班纯' && hour >= 4) || + meridiem === '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟' || + meridiem === '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啻班淳啻む祶啻班纯'; + } else if (hour < 12) { + return '啻班淳啻掂纯啻侧祮'; + } else if (hour < 17) { + return '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟'; + } else if (hour < 20) { + return '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦'; + } else { + return '啻班淳啻む祶啻班纯'; + } + }, + }); + + return ml; + +}))); diff --git a/node_modules/moment/locale/mn.js b/node_modules/moment/locale/mn.js new file mode 100644 index 0000000..a37b792 --- /dev/null +++ b/node_modules/moment/locale/mn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? '褏褝写褏褝薪 褋械泻褍薪写' : '褏褝写褏褝薪 褋械泻褍薪写褘薪'; + case 'ss': + return number + (withoutSuffix ? ' 褋械泻褍薪写' : ' 褋械泻褍薪写褘薪'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' 屑懈薪褍褌' : ' 屑懈薪褍褌褘薪'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' 褑邪谐' : ' 褑邪谐懈泄薪'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' 萤写萤褉' : ' 萤写褉懈泄薪'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' 褋邪褉' : ' 褋邪褉褘薪'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' 卸懈谢' : ' 卸懈谢懈泄薪'); + default: + return number; + } + } + + var mn = moment.defineLocale('mn', { + months: '袧褝谐写爷谐褝褝褉 褋邪褉_啸芯褢褉写褍谐邪邪褉 褋邪褉_袚褍褉邪胁写褍谐邪邪褉 褋邪褉_袛萤褉萤胁写爷谐褝褝褉 褋邪褉_孝邪胁写褍谐邪邪褉 褋邪褉_袟褍褉谐邪写褍谐邪邪褉 褋邪褉_袛芯谢写褍谐邪邪褉 褋邪褉_袧邪泄屑写褍谐邪邪褉 褋邪褉_袝褋写爷谐褝褝褉 褋邪褉_袗褉邪胁写褍谐邪邪褉 褋邪褉_袗褉胁邪薪 薪褝谐写爷谐褝褝褉 褋邪褉_袗褉胁邪薪 褏芯褢褉写褍谐邪邪褉 褋邪褉'.split( + '_' + ), + monthsShort: + '1 褋邪褉_2 褋邪褉_3 褋邪褉_4 褋邪褉_5 褋邪褉_6 褋邪褉_7 褋邪褉_8 褋邪褉_9 褋邪褉_10 褋邪褉_11 褋邪褉_12 褋邪褉'.split( + '_' + ), + monthsParseExact: true, + weekdays: '袧褟屑_袛邪胁邪邪_袦褟谐屑邪褉_袥褏邪谐胁邪_袩爷褉褝胁_袘邪邪褋邪薪_袘褟屑斜邪'.split('_'), + weekdaysShort: '袧褟屑_袛邪胁_袦褟谐_袥褏邪_袩爷褉_袘邪邪_袘褟屑'.split('_'), + weekdaysMin: '袧褟_袛邪_袦褟_袥褏_袩爷_袘邪_袘褟'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY 芯薪褘 MMMM褘薪 D', + LLL: 'YYYY 芯薪褘 MMMM褘薪 D HH:mm', + LLLL: 'dddd, YYYY 芯薪褘 MMMM褘薪 D HH:mm', + }, + meridiemParse: /耶莹|耶啸/i, + isPM: function (input) { + return input === '耶啸'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '耶莹'; + } else { + return '耶啸'; + } + }, + calendar: { + sameDay: '[莹薪萤萤写萤褉] LT', + nextDay: '[袦邪褉谐邪邪褕] LT', + nextWeek: '[袠褉褝褏] dddd LT', + lastDay: '[莹褔懈谐写萤褉] LT', + lastWeek: '[莹薪谐萤褉褋萤薪] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 写邪褉邪邪', + past: '%s 萤屑薪萤', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} 萤写萤褉/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' 萤写萤褉'; + default: + return number; + } + }, + }); + + return mn; + +}))); diff --git a/node_modules/moment/locale/mr.js b/node_modules/moment/locale/mr.js new file mode 100644 index 0000000..73d5762 --- /dev/null +++ b/node_modules/moment/locale/mr.js @@ -0,0 +1,214 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶'; + break; + case 'm': + output = '啶忇 啶た啶ㄠた啶'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰'; + break; + case 'h': + output = '啶忇 啶むぞ啶'; + break; + case 'hh': + output = '%d 啶むぞ啶'; + break; + case 'd': + output = '啶忇 啶︵た啶掂じ'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ'; + break; + case 'M': + output = '啶忇 啶す啶苦え啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷'; + break; + case 'y': + output = '啶忇 啶掂ぐ啷嵿し'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啷'; + break; + } + } else { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶︵ぞ啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶︵ぞ啶'; + break; + case 'm': + output = '啶忇啶 啶た啶ㄠた啶熰ぞ'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰ぞ啶'; + break; + case 'h': + output = '啶忇啶 啶むぞ啶膏ぞ'; + break; + case 'hh': + output = '%d 啶むぞ啶膏ぞ啶'; + break; + case 'd': + output = '啶忇啶 啶︵た啶掂じ啶'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ啶距'; + break; + case 'M': + output = '啶忇啶 啶す啶苦え啷嵿く啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷嵿く啶距'; + break; + case 'y': + output = '啶忇啶 啶掂ぐ啷嵿し啶'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啶距'; + break; + } + } + return output.replace(/%d/i, number); + } + + var mr = moment.defineLocale('mr', { + months: '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶._啶忇お啷嵿ぐ啶._啶._啶溹啶._啶溹啶侧._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸こ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸こ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶掂ぞ啶溹い啶', + LTS: 'A h:mm:ss 啶掂ぞ啶溹い啶', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶夃う啷嵿く啶綸 LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶椸啶瞉 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぇ啷嵿く啷', + past: '%s啶啶班啶掂', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶す啶距啷噟啶膏啶距こ啷|啶︵啶ぞ啶班|啶膏ぞ啶啶曕ぞ啶赤|啶班ぞ啶む啶班/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶す啶距啷' || meridiem === '啶膏啶距こ啷') { + return hour; + } else if ( + meridiem === '啶︵啶ぞ啶班' || + meridiem === '啶膏ぞ啶啶曕ぞ啶赤' || + meridiem === '啶班ぞ啶む啶班' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return '啶す啶距啷'; + } else if (hour < 12) { + return '啶膏啶距こ啷'; + } else if (hour < 17) { + return '啶︵啶ぞ啶班'; + } else if (hour < 20) { + return '啶膏ぞ啶啶曕ぞ啶赤'; + } else { + return '啶班ぞ啶む啶班'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return mr; + +}))); diff --git a/node_modules/moment/locale/ms-my.js b/node_modules/moment/locale/ms-my.js new file mode 100644 index 0000000..8d66c2b --- /dev/null +++ b/node_modules/moment/locale/ms-my.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var msMy = moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return msMy; + +}))); diff --git a/node_modules/moment/locale/ms.js b/node_modules/moment/locale/ms.js new file mode 100644 index 0000000..37782fb --- /dev/null +++ b/node_modules/moment/locale/ms.js @@ -0,0 +1,86 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ms = moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ms; + +}))); diff --git a/node_modules/moment/locale/mt.js b/node_modules/moment/locale/mt.js new file mode 100644 index 0000000..94b2559 --- /dev/null +++ b/node_modules/moment/locale/mt.js @@ -0,0 +1,67 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var mt = moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_臓unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di膵embru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_臓un_Lul_Aww_Set_Ott_Nov_Di膵'.split('_'), + weekdays: + 'Il-摩add_It-Tnejn_It-Tlieta_L-Erbg魔a_Il-摩amis_Il-臓img魔a_Is-Sibt'.split( + '_' + ), + weekdaysShort: '摩ad_Tne_Tli_Erb_摩am_臓im_Sib'.split('_'), + weekdaysMin: '摩a_Tn_Tl_Er_摩a_臓i_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[G魔ada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-biera魔 fil-]LT', + lastWeek: 'dddd [li g魔adda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f鈥 %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'sieg魔a', + hh: '%d sieg魔at', + d: '摹urnata', + dd: '%d 摹ranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return mt; + +}))); diff --git a/node_modules/moment/locale/my.js b/node_modules/moment/locale/my.js new file mode 100644 index 0000000..c1ef2df --- /dev/null +++ b/node_modules/moment/locale/my.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '醽', + 2: '醽', + 3: '醽', + 4: '醽', + 5: '醽', + 6: '醽', + 7: '醽', + 8: '醽', + 9: '醽', + 0: '醽', + }, + numberMap = { + '醽': '1', + '醽': '2', + '醽': '3', + '醽': '4', + '醽': '5', + '醽': '6', + '醽': '7', + '醽': '8', + '醽': '9', + '醽': '0', + }; + + var my = moment.defineLocale('my', { + months: '醼囜斸横斸濁涐甠醼栣贬栣贬横濁涐甠醼欋愥篲醼п曖坚甠醼欋盻醼囜结斸篲醼囜搬溼勧篲醼炨坚傖愥篲醼呩醼横愥勧横樶琠醼♂贬醼横愥樶琠醼斸濁勧横樶琠醼掅囜勧横樶'.split( + '_' + ), + monthsShort: '醼囜斸篲醼栣盻醼欋愥篲醼曖坚甠醼欋盻醼囜结斸篲醼溼勧篲醼炨糭醼呩醼篲醼♂贬醼篲醼斸痏醼掅'.split('_'), + weekdays: '醼愥斸勧横贯傖斸结盻醼愥斸勧横贯溼琠醼♂勧横贯傖玙醼椺掅贯撫熱搬竉醼醼坚炨曖愥贬竉醼炨贬醼坚琠醼呩斸'.split( + '_' + ), + weekdaysShort: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + weekdaysMin: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醼氠斸.] LT [醼欋踞琞', + nextDay: '[醼欋斸醼横栣坚斸篯 LT [醼欋踞琞', + nextWeek: 'dddd LT [醼欋踞琞', + lastDay: '[醼欋斸.醼] LT [醼欋踞琞', + lastWeek: '[醼曖坚羔佱册丰炨贬琞 dddd LT [醼欋踞琞', + sameElse: 'L', + }, + relativeTime: { + future: '醼溼欋娽横 %s 醼欋踞', + past: '醼溼结斸横佱册丰炨贬 %s 醼', + s: '醼呩醼贯醼斸.醼♂斸娽横羔勧氠', + ss: '%d 醼呩醼贯醼斸丰', + m: '醼愥呩横欋斸呩', + mm: '%d 醼欋斸呩', + h: '醼愥呩横斸涐', + hh: '%d 醼斸涐', + d: '醼愥呩横涐醼', + dd: '%d 醼涐醼', + M: '醼愥呩横', + MM: '%d 醼', + y: '醼愥呩横斸踞呩', + yy: '%d 醼斸踞呩', + }, + preparse: function (string) { + return string.replace(/[醽佱亗醽冡亜醽呩亞醽囜亪醽夅亐]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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. + }, + }); + + return my; + +}))); diff --git a/node_modules/moment/locale/nb.js b/node_modules/moment/locale/nb.js new file mode 100644 index 0000000..74da7af --- /dev/null +++ b/node_modules/moment/locale/nb.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokm氓l [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nb = moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶._ma._ti._on._to._fr._l酶.'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return nb; + +}))); diff --git a/node_modules/moment/locale/ne.js b/node_modules/moment/locale/ne.js new file mode 100644 index 0000000..d455e00 --- /dev/null +++ b/node_modules/moment/locale/ne.js @@ -0,0 +1,132 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + var ne = moment.defineLocale('ne', { + months: '啶溹え啶掂ぐ啷_啶啶啶班啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶粪啶焈啶膏啶啶熰啶啶ぐ_啶呧啷嵿啷嬥が啶癬啶ㄠ啶啶啶ぐ_啶∴た啶膏啶啶ぐ'.split( + '_' + ), + monthsShort: + '啶溹え._啶啶啶班._啶ぞ啶班啶歘啶呧お啷嵿ぐ啶._啶_啶溹啶╛啶溹啶侧ぞ啶._啶呧._啶膏啶啶._啶呧啷嵿啷._啶ㄠ啶._啶∴た啶膏.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋啶むが啶距ぐ_啶膏啶が啶距ぐ_啶啷嵿啶侧が啶距ぐ_啶啶оが啶距ぐ_啶た啶灌た啶ぞ啶癬啶多啶曕啶班が啶距ぐ_啶多え啶苦が啶距ぐ'.split( + '_' + ), + weekdaysShort: '啶嗋啶._啶膏啶._啶啷嵿啶._啶啶._啶た啶灌た._啶多啶曕啶._啶多え啶.'.split('_'), + weekdaysMin: '啶._啶膏._啶._啶._啶た._啶多._啶.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A啶曕 h:mm 啶啷', + LTS: 'A啶曕 h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A啶曕 h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A啶曕 h:mm 啶啷', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶班ぞ啶むた|啶た啶灌ぞ啶▅啶︵た啶夃啶膏|啶膏ぞ啶佮/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶むた') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶た啶灌ぞ啶') { + return hour; + } else if (meridiem === '啶︵た啶夃啶膏') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶佮') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return '啶班ぞ啶むた'; + } else if (hour < 12) { + return '啶た啶灌ぞ啶'; + } else if (hour < 16) { + return '啶︵た啶夃啶膏'; + } else if (hour < 20) { + return '啶膏ぞ啶佮'; + } else { + return '啶班ぞ啶むた'; + } + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶啶侧た] LT', + nextWeek: '[啶嗋啶佮う啷媇 dddd[,] LT', + lastDay: '[啶灌た啶溹] LT', + lastWeek: '[啶椸啶曕] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぞ', + past: '%s 啶呧啶距ぁ啶', + s: '啶曕啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶`啶', + m: '啶忇 啶た啶ㄠ啶', + mm: '%d 啶た啶ㄠ啶', + h: '啶忇 啶樴ぃ啷嵿啶', + hh: '%d 啶樴ぃ啷嵿啶', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啶苦え啶', + MM: '%d 啶す啶苦え啶', + y: '啶忇 啶ぐ啷嵿し', + yy: '%d 啶ぐ啷嵿し', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ne; + +}))); diff --git a/node_modules/moment/locale/nl-be.js b/node_modules/moment/locale/nl-be.js new file mode 100644 index 0000000..2079383 --- /dev/null +++ b/node_modules/moment/locale/nl-be.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nlBe = moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + return nlBe; + +}))); diff --git a/node_modules/moment/locale/nl.js b/node_modules/moment/locale/nl.js new file mode 100644 index 0000000..770e90f --- /dev/null +++ b/node_modules/moment/locale/nl.js @@ -0,0 +1,115 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + var nl = moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + w: '茅茅n week', + ww: '%d weken', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + return nl; + +}))); diff --git a/node_modules/moment/locale/nn.js b/node_modules/moment/locale/nn.js new file mode 100644 index 0000000..c65268e --- /dev/null +++ b/node_modules/moment/locale/nn.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var nn = moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_m氓ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._m氓._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_m氓_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I g氓r klokka] LT', + lastWeek: '[F酶reg氓ande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein m氓nad', + MM: '%d m氓nader', + y: 'eit 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return nn; + +}))); diff --git a/node_modules/moment/locale/oc-lnc.js b/node_modules/moment/locale/oc-lnc.js new file mode 100644 index 0000000..ba8f433 --- /dev/null +++ b/node_modules/moment/locale/oc-lnc.js @@ -0,0 +1,96 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAG脠S : https://github.com/Quenty31 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ocLnc = moment.defineLocale('oc-lnc', { + months: { + standalone: + 'geni猫r_febri猫r_mar莽_abril_mai_junh_julhet_agost_setembre_oct貌bre_novembre_decembre'.split( + '_' + ), + format: "de geni猫r_de febri猫r_de mar莽_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct貌bre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dim猫cres_dij貌us_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[u猫i a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[i猫r a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\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, + }, + }); + + return ocLnc; + +}))); diff --git a/node_modules/moment/locale/pa-in.js b/node_modules/moment/locale/pa-in.js new file mode 100644 index 0000000..d57eb75 --- /dev/null +++ b/node_modules/moment/locale/pa-in.js @@ -0,0 +1,133 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '喋', + 2: '喋', + 3: '喋', + 4: '喋', + 5: '喋', + 6: '喋', + 7: '喋', + 8: '喋', + 9: '喋', + 0: '喋', + }, + numberMap = { + '喋': '1', + '喋': '2', + '喋': '3', + '喋': '4', + '喋': '5', + '喋': '6', + '喋': '7', + '喋': '8', + '喋': '9', + '喋': '0', + }; + + var paIn = moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + monthsShort: + '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + weekdays: '啜愢à啜掂ň啜癬啜膏⿱啜ǖ啜距ò_啜┌啜椸ú啜掂ň啜癬啜﹣啜оǖ啜距ò_啜掂﹢啜班ǖ啜距ò_啜膏喋佮┍啜曕ò啜掂ň啜癬啜膏啜ㄠ﹢啜氞ò啜掂ň啜'.split( + '_' + ), + weekdaysShort: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + weekdaysMin: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + longDateFormat: { + LT: 'A h:mm 啜掂喋', + LTS: 'A h:mm:ss 啜掂喋', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啜掂喋', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啜掂喋', + }, + calendar: { + sameDay: '[啜呧] LT', + nextDay: '[啜曕ú] LT', + nextWeek: '[啜呧啜侧ň] dddd, LT', + lastDay: '[啜曕ú] LT', + lastWeek: '[啜ǹ啜涏ú喋嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啜掂ǹ喋编', + past: '%s 啜ǹ啜涏ú喋', + s: '啜曕﹣啜 啜膏〞啜苦┌啜', + ss: '%d 啜膏〞啜苦┌啜', + m: '啜囙〞 啜ǹ喋班', + mm: '%d 啜ǹ喋班', + h: '啜囙┍啜 啜樴┌啜熰ň', + hh: '%d 啜樴┌啜熰﹪', + d: '啜囙┍啜 啜︵ǹ啜', + dd: '%d 啜︵ǹ啜', + M: '啜囙┍啜 啜ü喋啜ㄠň', + MM: '%d 啜ü喋啜ㄠ﹪', + y: '啜囙┍啜 啜膏ň啜', + yy: '%d 啜膏ň啜', + }, + preparse: function (string) { + return string.replace(/[喋о┄喋┼┆喋┈喋┊喋│]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /啜班ň啜啜膏ǖ喋囙ò|啜︵﹣啜ü啜苦ò|啜膏啜距ó/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啜班ň啜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啜膏ǖ喋囙ò') { + return hour; + } else if (meridiem === '啜︵﹣啜ü啜苦ò') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啜膏啜距ó') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啜班ň啜'; + } else if (hour < 10) { + return '啜膏ǖ喋囙ò'; + } else if (hour < 17) { + return '啜︵﹣啜ü啜苦ò'; + } else if (hour < 20) { + return '啜膏啜距ó'; + } else { + return '啜班ň啜'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return paIn; + +}))); diff --git a/node_modules/moment/locale/pl.js b/node_modules/moment/locale/pl.js new file mode 100644 index 0000000..0750bb3 --- /dev/null +++ b/node_modules/moment/locale/pl.js @@ -0,0 +1,151 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var monthsNominative = + 'stycze艅_luty_marzec_kwiecie艅_maj_czerwiec_lipiec_sierpie艅_wrzesie艅_pa藕dziernik_listopad_grudzie艅'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze艣nia_pa藕dziernika_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^pa藕/i, + /^lis/i, + /^gru/i, + ]; + function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minut臋'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzin臋'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesi膮ce' : 'miesi臋cy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } + } + + var pl = moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa藕_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedzia艂ek_wtorek_艣roda_czwartek_pi膮tek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_艣r_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_艢r_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dzi艣 o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedziel臋 o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W 艣rod臋 o] LT'; + + case 6: + return '[W sobot臋 o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zesz艂膮 niedziel臋 o] LT'; + case 3: + return '[W zesz艂膮 艣rod臋 o] LT'; + case 6: + return '[W zesz艂膮 sobot臋 o] LT'; + default: + return '[W zesz艂y] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzie艅', + dd: '%d dni', + w: 'tydzie艅', + ww: translate, + M: 'miesi膮c', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return pl; + +}))); diff --git a/node_modules/moment/locale/pt-br.js b/node_modules/moment/locale/pt-br.js new file mode 100644 index 0000000..ee123bd --- /dev/null +++ b/node_modules/moment/locale/pt-br.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ptBr = moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_ter莽a-feira_quarta-feira_quinta-feira_sexta-feira_s谩bado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_s谩b'.split('_'), + weekdaysMin: 'do_2陋_3陋_4陋_5陋_6陋_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [脿s] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [脿s] HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + invalidDate: 'Data inv谩lida', + }); + + return ptBr; + +}))); diff --git a/node_modules/moment/locale/pt.js b/node_modules/moment/locale/pt.js new file mode 100644 index 0000000..a113ed7 --- /dev/null +++ b/node_modules/moment/locale/pt.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var pt = moment.defineLocale('pt', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Ter莽a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S谩bado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S谩b'.split('_'), + weekdaysMin: 'Do_2陋_3陋_4陋_5陋_6陋_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + return pt; + +}))); diff --git a/node_modules/moment/locale/ro.js b/node_modules/moment/locale/ro.js new file mode 100644 index 0000000..c2a9dd8 --- /dev/null +++ b/node_modules/moment/locale/ro.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 's膬pt膬m芒ni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + var ro = moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminic膬_luni_mar葲i_miercuri_joi_vineri_s芒mb膬t膬'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S芒m'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S芒'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[m芒ine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s 卯n urm膬', + s: 'c芒teva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o or膬', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o s膬pt膬m芒n膬', + ww: relativeTimeWithPlural, + M: 'o lun膬', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return ro; + +}))); diff --git a/node_modules/moment/locale/ru.js b/node_modules/moment/locale/ru.js new file mode 100644 index 0000000..918e9d5 --- /dev/null +++ b/node_modules/moment/locale/ru.js @@ -0,0 +1,224 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : 袣芯褉械薪斜械褉谐 袦邪褉泻 : https://github.com/socketpair + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '屑懈薪褍褌邪_屑懈薪褍褌褘_屑懈薪褍褌' : '屑懈薪褍褌褍_屑懈薪褍褌褘_屑懈薪褍褌', + hh: '褔邪褋_褔邪褋邪_褔邪褋芯胁', + dd: '写械薪褜_写薪褟_写薪械泄', + ww: '薪械写械谢褟_薪械写械谢懈_薪械写械谢褜', + MM: '屑械褋褟褑_屑械褋褟褑邪_屑械褋褟褑械胁', + yy: '谐芯写_谐芯写邪_谢械褌', + }; + if (key === 'm') { + return withoutSuffix ? '屑懈薪褍褌邪' : '屑懈薪褍褌褍'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + var monthsParse = [ + /^褟薪胁/i, + /^褎械胁/i, + /^屑邪褉/i, + /^邪锌褉/i, + /^屑邪[泄褟]/i, + /^懈褞薪/i, + /^懈褞谢/i, + /^邪胁谐/i, + /^褋械薪/i, + /^芯泻褌/i, + /^薪芯褟/i, + /^写械泻/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : 搂 103 + // 小芯泻褉邪褖械薪懈褟 屑械褋褟褑械胁: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + var ru = moment.defineLocale('ru', { + months: { + format: '褟薪胁邪褉褟_褎械胁褉邪谢褟_屑邪褉褌邪_邪锌褉械谢褟_屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐褍褋褌邪_褋械薪褌褟斜褉褟_芯泻褌褟斜褉褟_薪芯褟斜褉褟_写械泻邪斜褉褟'.split( + '_' + ), + standalone: + '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + }, + monthsShort: { + // 锌芯 CLDR 懈屑械薪薪芯 "懈褞谢." 懈 "懈褞薪.", 薪芯 泻邪泻芯泄 褋屑褘褋谢 屑械薪褟褌褜 斜褍泻胁褍 薪邪 褌芯褔泻褍? + format: '褟薪胁._褎械胁褉._屑邪褉._邪锌褉._屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + standalone: + '褟薪胁._褎械胁褉._屑邪褉褌_邪锌褉._屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + }, + weekdays: { + standalone: + '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁械褉谐_锌褟褌薪懈褑邪_褋褍斜斜芯褌邪'.split( + '_' + ), + format: '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写褍_褔械褌胁械褉谐_锌褟褌薪懈褑褍_褋褍斜斜芯褌褍'.split( + '_' + ), + isFormat: /\[ ?[袙胁] ?(?:锌褉芯褕谢褍褞|褋谢械写褍褞褖褍褞|褝褌褍)? ?] ?dddd/, + }, + weekdaysShort: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈, 锌芯 褌褉懈 斜褍泻胁褘, 写谢褟 薪械泻芯褌芯褉褘褏, 锌芯 4 斜褍泻胁褘, 褋芯泻褉邪褖械薪懈褟 褋 褌芯褔泻芯泄 懈 斜械蟹 褌芯褔泻懈 + monthsRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 泻芯锌懈褟 锌褉械写褘写褍褖械谐芯 + monthsShortRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈 + monthsStrictRegex: + /^(褟薪胁邪褉[褟褜]|褎械胁褉邪谢[褟褜]|屑邪褉褌邪?|邪锌褉械谢[褟褜]|屑邪[褟泄]|懈褞薪[褟褜]|懈褞谢[褟褜]|邪胁谐褍褋褌邪?|褋械薪褌褟斜褉[褟褜]|芯泻褌褟斜褉[褟褜]|薪芯褟斜褉[褟褜]|写械泻邪斜褉[褟褜])/i, + + // 袙褘褉邪卸械薪懈械, 泻芯褌芯褉芯械 褋芯芯褌胁械褌褋褌胁褍械褌 褌芯谢褜泻芯 褋芯泻褉邪褖褢薪薪褘屑 褎芯褉屑邪屑 + monthsShortStrictRegex: + /^(褟薪胁\.|褎械胁褉?\.|屑邪褉[褌.]|邪锌褉\.|屑邪[褟泄]|懈褞薪[褜褟.]|懈褞谢[褜褟.]|邪胁谐\.|褋械薪褌?\.|芯泻褌\.|薪芯褟斜?\.|写械泻\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., H:mm', + LLLL: 'dddd, D MMMM YYYY 谐., H:mm', + }, + calendar: { + sameDay: '[小械谐芯写薪褟, 胁] LT', + nextDay: '[袟邪胁褌褉邪, 胁] LT', + lastDay: '[袙褔械褉邪, 胁] LT', + nextWeek: 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'; + } + } + }, + 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', + }, + relativeTime: { + future: '褔械褉械蟹 %s', + past: '%s 薪邪蟹邪写', + s: '薪械褋泻芯谢褜泻芯 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '褔邪褋', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + w: '薪械写械谢褟', + ww: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔懈|褍褌褉邪|写薪褟|胁械褔械褉邪/i, + isPM: function (input) { + return /^(写薪褟|胁械褔械褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔懈'; + } else if (hour < 12) { + return '褍褌褉邪'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔械褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯|褟)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + case 'w': + case 'W': + return number + '-褟'; + default: + return number; + } + }, + 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. + }, + }); + + return ru; + +}))); diff --git a/node_modules/moment/locale/sd.js b/node_modules/moment/locale/sd.js new file mode 100644 index 0000000..56ff8c7 --- /dev/null +++ b/node_modules/moment/locale/sd.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + '噩賳賵乇賷', + '賮賷亘乇賵乇賷', + '賲丕乇趩', + '丕倬乇賷賱', + '賲卅賷', + '噩賵賳', + '噩賵賱丕亍賽', + '丌诏爻俳', + '爻賷倬俳賲亘乇', + '丌讵俳賵亘乇', + '賳賵賲亘乇', + '趭爻賲亘乇', + ], + days = ['丌趩乇', '爻賵賲乇', '丕诒丕乇賵', '丕乇亘毓', '禺賲賷爻', '噩賲毓', '趪賳趪乇']; + + var sd = moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丕趧] LT', + nextDay: '[爻趢丕诨賷] LT', + nextWeek: 'dddd [丕诔賷賳 賴賮鬲賷 鬲賷] LT', + lastDay: '[讵丕賱賴賴] LT', + lastWeek: '[诏夭乇賷賱 賴賮鬲賷] dddd [鬲賷] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 倬賵亍', + past: '%s 丕诔', + s: '趩賳丿 爻賷讵賳趭', + ss: '%d 爻賷讵賳趭', + m: '賴讵 賲賳俳', + mm: '%d 賲賳俳', + h: '賴讵 讵賱丕讵', + hh: '%d 讵賱丕讵', + d: '賴讵 趶賷賳賴賳', + dd: '%d 趶賷賳賴賳', + M: '賴讵 賲賴賷賳賵', + MM: '%d 賲賴賷賳丕', + y: '賴讵 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + return sd; + +}))); diff --git a/node_modules/moment/locale/se.js b/node_modules/moment/locale/se.js new file mode 100644 index 0000000..289929a --- /dev/null +++ b/node_modules/moment/locale/se.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : B氓rd Rolstad Henriksen : https://github.com/karamell + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var se = moment.defineLocale('se', { + months: 'o膽膽ajagem谩nnu_guovvam谩nnu_njuk膷am谩nnu_cuo艐om谩nnu_miessem谩nnu_geassem谩nnu_suoidnem谩nnu_borgem谩nnu_膷ak膷am谩nnu_golggotm谩nnu_sk谩bmam谩nnu_juovlam谩nnu'.split( + '_' + ), + monthsShort: + 'o膽膽j_guov_njuk_cuo_mies_geas_suoi_borg_膷ak膷_golg_sk谩b_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuoss谩rga_ma艐艐eb谩rga_gaskavahkku_duorastat_bearjadat_l谩vvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_ma艐_gask_duor_bear_l谩v'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s gea啪es', + past: 'ma艐it %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta m谩nnu', + MM: '%d m谩nut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return se; + +}))); diff --git a/node_modules/moment/locale/si.js b/node_modules/moment/locale/si.js new file mode 100644 index 0000000..4421d04 --- /dev/null +++ b/node_modules/moment/locale/si.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + /*jshint -W100*/ + var si = moment.defineLocale('si', { + months: '喽⑧侗喾喾忇痘喾抇喽脆窓喽多痘喾喾忇痘喾抇喽膏窂喽秽穵喽窋_喽呧洞喾娾嵿痘喾氞督喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾澿穬喾娻董喾擾喾冟窅喽脆穵喽窅喽膏穵喽多痘喾奯喽斷稓喾娻董喾澿抖喽秽穵_喽编窚喾喾愢陡喾娻抖喽秽穵_喽窓喾冟窅喽膏穵喽多痘喾'.split( + '_' + ), + monthsShort: '喽⑧侗_喽脆窓喽禵喽膏窂喽秽穵_喽呧洞喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾漘喾冟窅喽脆穵_喽斷稓喾奯喽编窚喾喾恄喽窓喾冟窅'.split( + '_' + ), + weekdays: + '喽夃痘喾掄动喾廮喾冟冻喾斷动喾廮喽呧稛喾勦痘喾斷穩喾忇动喾廮喽多动喾忇动喾廮喽多穵鈥嵿痘喾勦穬喾娻洞喽窉喽编穵喽窂_喾冟窉喽氞窋喽秽窂喽窂_喾冟窓喽编穬喾斷痘喾忇动喾'.split( + '_' + ), + weekdaysShort: '喽夃痘喾抇喾冟冻喾擾喽呧稛_喽多动喾廮喽多穵鈥嵿痘喾刜喾冟窉喽氞窋_喾冟窓喽'.split('_'), + weekdaysMin: '喽塤喾僟喽卂喽禵喽多穵鈥嵿痘_喾冟窉_喾冟窓'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [喾喾愢侗喾抅 dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[喽呧动] LT[喽', + nextDay: '[喾勦窓喽 LT[喽', + nextWeek: 'dddd LT[喽', + lastDay: '[喽娻逗喾歖 LT[喽', + lastWeek: '[喽脆穬喾斷稖喾掄逗] dddd LT[喽', + sameElse: 'L', + }, + relativeTime: { + future: '%s喽氞窉喽编穵', + past: '%s喽氞锭 喽脆窓喽', + s: '喽董喾娻洞喽 喽氞窉喾勦窉喽脆逗', + ss: '喽董喾娻洞喽 %d', + m: '喽膏窉喽编窉喽穵喽窋喾', + mm: '喽膏窉喽编窉喽穵喽窋 %d', + h: '喽脆窅喽', + hh: '喽脆窅喽 %d', + d: '喽窉喽编逗', + dd: '喽窉喽 %d', + M: '喽膏窂喾冟逗', + MM: '喽膏窂喾 %d', + y: '喾喾冟痘', + yy: '喾喾冟痘 %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} 喾喾愢侗喾/, + ordinal: function (number) { + return number + ' 喾喾愢侗喾'; + }, + meridiemParse: /喽脆窓喽 喾喽秽窋|喽脆穬喾 喾喽秽窋|喽脆窓.喾|喽.喾./, + isPM: function (input) { + return input === '喽.喾.' || input === '喽脆穬喾 喾喽秽窋'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '喽.喾.' : '喽脆穬喾 喾喽秽窋'; + } else { + return isLower ? '喽脆窓.喾.' : '喽脆窓喽 喾喽秽窋'; + } + }, + }); + + return si; + +}))); diff --git a/node_modules/moment/locale/sk.js b/node_modules/moment/locale/sk.js new file mode 100644 index 0000000..99edae7 --- /dev/null +++ b/node_modules/moment/locale/sk.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = + 'janu谩r_febru谩r_marec_apr铆l_m谩j_j煤n_j煤l_august_september_okt贸ber_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_m谩j_j煤n_j煤l_aug_sep_okt_nov_dec'.split('_'); + function plural(n) { + return n > 1 && n < 5; + } + function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sek煤nd' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sek煤nd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'min煤ta' : isFuture ? 'min煤tu' : 'min煤tou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'min煤ty' : 'min煤t'); + } else { + return result + 'min煤tami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hod铆n'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'de艌' : 'd艌om'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dn铆'); + } else { + return result + 'd艌ami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + var sk = moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nede木a_pondelok_utorok_streda_拧tvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_拧t_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_拧t_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nede木u o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo 拧tvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[v膷era o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minul煤 nede木u o] LT'; + case 1: + case 2: + return '[minul媒] dddd [o] LT'; + case 3: + return '[minul煤 stredu o] LT'; + case 4: + case 5: + return '[minul媒] dddd [o] LT'; + case 6: + return '[minul煤 sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return sk; + +}))); diff --git a/node_modules/moment/locale/sl.js b/node_modules/moment/locale/sl.js new file mode 100644 index 0000000..38f1210 --- /dev/null +++ b/node_modules/moment/locale/sl.js @@ -0,0 +1,182 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedov拧ek : https://github.com/sedovsek + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + var sl = moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_膷etrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._膷et._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_膷e_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[v膷eraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prej拧njo] [nedeljo] [ob] LT'; + case 3: + return '[prej拧njo] [sredo] [ob] LT'; + case 6: + return '[prej拧njo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prej拧nji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '膷ez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sl; + +}))); diff --git a/node_modules/moment/locale/sq.js b/node_modules/moment/locale/sq.js new file mode 100644 index 0000000..154e3d6 --- /dev/null +++ b/node_modules/moment/locale/sq.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flak毛rim Ismani : https://github.com/flakerimi +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sq = moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N毛ntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N毛n_Dhj'.split('_'), + weekdays: 'E Diel_E H毛n毛_E Mart毛_E M毛rkur毛_E Enjte_E Premte_E Shtun毛'.split( + '_' + ), + weekdaysShort: 'Die_H毛n_Mar_M毛r_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_M毛_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot n毛] LT', + nextDay: '[Nes毛r n毛] LT', + nextWeek: 'dddd [n毛] LT', + lastDay: '[Dje n毛] LT', + lastWeek: 'dddd [e kaluar n毛] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'n毛 %s', + past: '%s m毛 par毛', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'nj毛 minut毛', + mm: '%d minuta', + h: 'nj毛 or毛', + hh: '%d or毛', + d: 'nj毛 dit毛', + dd: '%d dit毛', + M: 'nj毛 muaj', + MM: '%d muaj', + y: 'nj毛 vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return sq; + +}))); diff --git a/node_modules/moment/locale/sr-cyrl.js b/node_modules/moment/locale/sr-cyrl.js new file mode 100644 index 0000000..9da10fa --- /dev/null +++ b/node_modules/moment/locale/sr-cyrl.js @@ -0,0 +1,138 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['褋械泻褍薪写邪', '褋械泻褍薪写械', '褋械泻褍薪写懈'], + m: ['褬械写邪薪 屑懈薪褍褌', '褬械写薪芯谐 屑懈薪褍褌邪'], + mm: ['屑懈薪褍褌', '屑懈薪褍褌邪', '屑懈薪褍褌邪'], + h: ['褬械写邪薪 褋邪褌', '褬械写薪芯谐 褋邪褌邪'], + hh: ['褋邪褌', '褋邪褌邪', '褋邪褌懈'], + d: ['褬械写邪薪 写邪薪', '褬械写薪芯谐 写邪薪邪'], + dd: ['写邪薪', '写邪薪邪', '写邪薪邪'], + M: ['褬械写邪薪 屑械褋械褑', '褬械写薪芯谐 屑械褋械褑邪'], + MM: ['屑械褋械褑', '屑械褋械褑邪', '屑械褋械褑懈'], + y: ['褬械写薪褍 谐芯写懈薪褍', '褬械写薪械 谐芯写懈薪械'], + yy: ['谐芯写懈薪褍', '谐芯写懈薪械', '谐芯写懈薪邪'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return '褬械写薪邪 谐芯写懈薪邪'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === '谐芯写懈薪褍') { + return number + ' 谐芯写懈薪邪'; + } + + return number + ' ' + word; + }, + }; + + var srCyrl = moment.defineLocale('sr-cyrl', { + months: '褬邪薪褍邪褉_褎械斜褉褍邪褉_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪_褬褍谢_邪胁谐褍褋褌_褋械锌褌械屑斜邪褉_芯泻褌芯斜邪褉_薪芯胁械屑斜邪褉_写械褑械屑斜邪褉'.split( + '_' + ), + monthsShort: + '褬邪薪._褎械斜._屑邪褉._邪锌褉._屑邪褬_褬褍薪_褬褍谢_邪胁谐._褋械锌._芯泻褌._薪芯胁._写械褑.'.split('_'), + monthsParseExact: true, + weekdays: '薪械写械褭邪_锌芯薪械写械褭邪泻_褍褌芯褉邪泻_褋褉械写邪_褔械褌胁褉褌邪泻_锌械褌邪泻_褋褍斜芯褌邪'.split('_'), + weekdaysShort: '薪械写._锌芯薪._褍褌芯._褋褉械._褔械褌._锌械褌._褋褍斜.'.split('_'), + weekdaysMin: '薪械_锌芯_褍褌_褋褉_褔械_锌械_褋褍'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[写邪薪邪褋 褍] LT', + nextDay: '[褋褍褌褉邪 褍] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[褍] [薪械写械褭褍] [褍] LT'; + case 3: + return '[褍] [褋褉械写褍] [褍] LT'; + case 6: + return '[褍] [褋褍斜芯褌褍] [褍] LT'; + case 1: + case 2: + case 4: + case 5: + return '[褍] dddd [褍] LT'; + } + }, + lastDay: '[褬褍褔械 褍] LT', + lastWeek: function () { + var lastWeekDays = [ + '[锌褉芯褕谢械] [薪械写械褭械] [褍] LT', + '[锌褉芯褕谢芯谐] [锌芯薪械写械褭泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [褍褌芯褉泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褉械写械] [褍] LT', + '[锌褉芯褕谢芯谐] [褔械褌胁褉褌泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [锌械褌泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褍斜芯褌械] [褍] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械 %s', + s: '薪械泻芯谢懈泻芯 褋械泻褍薪写懈', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return srCyrl; + +}))); diff --git a/node_modules/moment/locale/sr.js b/node_modules/moment/locale/sr.js new file mode 100644 index 0000000..8f53e7c --- /dev/null +++ b/node_modules/moment/locale/sr.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + var sr = moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_膷etvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._膷et._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_膷e_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedelje] [u] LT', + '[pro拧log] [ponedeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sr; + +}))); diff --git a/node_modules/moment/locale/ss.js b/node_modules/moment/locale/ss.js new file mode 100644 index 0000000..ce8a657 --- /dev/null +++ b/node_modules/moment/locale/ss.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ss = moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + 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. + }, + }); + + return ss; + +}))); diff --git a/node_modules/moment/locale/sv.js b/node_modules/moment/locale/sv.js new file mode 100644 index 0000000..90fe441 --- /dev/null +++ b/node_modules/moment/locale/sv.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sv = moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's枚ndag_m氓ndag_tisdag_onsdag_torsdag_fredag_l枚rdag'.split('_'), + weekdaysShort: 's枚n_m氓n_tis_ons_tor_fre_l枚r'.split('_'), + weekdaysMin: 's枚_m氓_ti_on_to_fr_l枚'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Ig氓r] LT', + nextWeek: '[P氓] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'f枚r %s sedan', + s: 'n氓gra sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en m氓nad', + MM: '%d m氓nader', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + 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. + }, + }); + + return sv; + +}))); diff --git a/node_modules/moment/locale/sw.js b/node_modules/moment/locale/sw.js new file mode 100644 index 0000000..1a5ac64 --- /dev/null +++ b/node_modules/moment/locale/sw.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var sw = moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return sw; + +}))); diff --git a/node_modules/moment/locale/ta.js b/node_modules/moment/locale/ta.js new file mode 100644 index 0000000..0f28832 --- /dev/null +++ b/node_modules/moment/locale/ta.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var symbolMap = { + 1: '喁', + 2: '喁', + 3: '喁', + 4: '喁', + 5: '喁', + 6: '喁', + 7: '喁', + 8: '喁', + 9: '喁', + 0: '喁', + }, + numberMap = { + '喁': '1', + '喁': '2', + '喁': '3', + '喁': '4', + '喁': '5', + '喁': '6', + '喁': '7', + '喁': '8', + '喁': '9', + '喁': '0', + }; + + var ta = moment.defineLocale('ta', { + months: '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + monthsShort: + '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + weekdays: + '喈炧喈喈编瘝喈编瘉喈曕瘝喈曕喈脆喁坃喈む喈權瘝喈曕疅喁嵿畷喈苦喈瘓_喈氞瘑喈掂瘝喈掂喈瘝喈曕喈脆喁坃喈瘉喈む喁嵿畷喈苦喈瘓_喈掂喈喈脆畷喁嵿畷喈苦喈瘓_喈掂瘑喈赤瘝喈赤喈曕瘝喈曕喈脆喁坃喈氞喈苦畷喁嵿畷喈苦喈瘓'.split( + '_' + ), + weekdaysShort: '喈炧喈喈编瘉_喈む喈權瘝喈曕喁峗喈氞瘑喈掂瘝喈掂喈瘝_喈瘉喈む喁峗喈掂喈喈脆喁峗喈掂瘑喈赤瘝喈赤_喈氞喈'.split( + '_' + ), + weekdaysMin: '喈炧_喈む_喈氞瘑_喈瘉_喈掂_喈掂瘑_喈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[喈囙喁嵿喁乚 LT', + nextDay: '[喈ㄠ喈赤瘓] LT', + nextWeek: 'dddd, LT', + lastDay: '[喈ㄠ瘒喈编瘝喈编瘉] LT', + lastWeek: '[喈曕疅喈ㄠ瘝喈 喈掂喈班喁峕 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喈囙喁', + past: '%s 喈瘉喈┼瘝', + s: '喈掄喁 喈氞喈 喈掂喈ㄠ喈熰喈曕喁', + ss: '%d 喈掂喈ㄠ喈熰喈曕喁', + m: '喈掄喁 喈ㄠ喈喈熰喁', + mm: '%d 喈ㄠ喈喈熰畽喁嵿畷喈赤瘝', + h: '喈掄喁 喈喈 喈ㄠ瘒喈班喁', + hh: '%d 喈喈 喈ㄠ瘒喈班喁', + d: '喈掄喁 喈ㄠ喈赤瘝', + dd: '%d 喈ㄠ喈熰瘝喈曕喁', + M: '喈掄喁 喈喈む喁', + MM: '%d 喈喈む畽喁嵿畷喈赤瘝', + y: '喈掄喁 喈掂喁佮疅喈瘝', + yy: '%d 喈嗋喁嵿疅喁佮畷喈赤瘝', + }, + dayOfMonthOrdinalParse: /\d{1,2}喈掂喁/, + ordinal: function (number) { + return number + '喈掂喁'; + }, + preparse: function (string) { + return string.replace(/[喁о喁┼喁喁喁]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /喈喈喁峾喈掂瘓喈曕喁坾喈曕喈侧瘓|喈ㄠ喁嵿喈曕喁峾喈庎喁嵿喈距疅喁亅喈喈侧瘓/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' 喈喈喁'; + } else if (hour < 6) { + return ' 喈掂瘓喈曕喁'; // 喈掂瘓喈曕喁 + } else if (hour < 10) { + return ' 喈曕喈侧瘓'; // 喈曕喈侧瘓 + } else if (hour < 14) { + return ' 喈ㄠ喁嵿喈曕喁'; // 喈ㄠ喁嵿喈曕喁 + } else if (hour < 18) { + return ' 喈庎喁嵿喈距疅喁'; // 喈庎喁嵿喈距疅喁 + } else if (hour < 22) { + return ' 喈喈侧瘓'; // 喈喈侧瘓 + } else { + return ' 喈喈喁'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喈喈喁') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === '喈掂瘓喈曕喁' || meridiem === '喈曕喈侧瘓') { + return hour; + } else if (meridiem === '喈ㄠ喁嵿喈曕喁') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return ta; + +}))); diff --git a/node_modules/moment/locale/te.js b/node_modules/moment/locale/te.js new file mode 100644 index 0000000..85bab7e --- /dev/null +++ b/node_modules/moment/locale/te.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var te = moment.defineLocale('te', { + months: '喟溹皑喟掂鞍喟縚喟翱喟睄喟班暗喟班翱_喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟苦安啾峗喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸喟膏睄喟熰眮_喟膏眴喟睄喟熰眴喟傕艾喟班睄_喟呧皶啾嵿盁啾嬥艾喟班睄_喟ㄠ暗喟傕艾喟班睄_喟∴翱喟膏眴喟傕艾喟班睄'.split( + '_' + ), + monthsShort: + '喟溹皑._喟翱喟睄喟._喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟._喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸._喟膏眴喟睄._喟呧皶啾嵿盁啾._喟ㄠ暗._喟∴翱喟膏眴.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '喟嗋唉喟苦暗喟距鞍喟俖喟膏眿喟暗喟距鞍喟俖喟皞喟椸俺喟掂熬喟班皞_喟眮喟о暗喟距鞍喟俖喟椸眮喟班眮喟掂熬喟班皞_喟多眮喟曕睄喟班暗喟距鞍喟俖喟多皑喟苦暗喟距鞍喟'.split( + '_' + ), + weekdaysShort: '喟嗋唉喟縚喟膏眿喟甠喟皞喟椸俺_喟眮喟喟椸眮喟班眮_喟多眮喟曕睄喟癬喟多皑喟'.split('_'), + weekdaysMin: '喟哶喟膏眿_喟皞_喟眮_喟椸眮_喟多眮_喟'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[喟ㄠ眹喟∴眮] LT', + nextDay: '[喟班眹喟眮] LT', + nextWeek: 'dddd, LT', + lastDay: '[喟ㄠ翱喟ㄠ睄喟╙ LT', + lastWeek: '[喟椸挨] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喟侧眿', + past: '%s 喟曕睄喟班翱喟む皞', + s: '喟曕眾喟ㄠ睄喟ㄠ翱 喟曕睄喟粪埃喟距安啾', + ss: '%d 喟膏眴喟曕皑啾嵿安啾', + m: '喟掄皶 喟ㄠ翱喟翱喟粪皞', + mm: '%d 喟ㄠ翱喟翱喟粪熬喟侧眮', + h: '喟掄皶 喟椸皞喟', + hh: '%d 喟椸皞喟熰安啾', + d: '喟掄皶 喟班眿喟溹眮', + dd: '%d 喟班眿喟溹眮喟侧眮', + M: '喟掄皶 喟ㄠ眴喟', + MM: '%d 喟ㄠ眴喟侧安啾', + y: '喟掄皶 喟膏皞喟掂挨啾嵿案喟班皞', + yy: '%d 喟膏皞喟掂挨啾嵿案喟班熬喟侧眮', + }, + dayOfMonthOrdinalParse: /\d{1,2}喟/, + ordinal: '%d喟', + meridiemParse: /喟班熬喟む睄喟班翱|喟夃唉喟皞|喟哀啾嵿隘喟距肮啾嵿皑喟倈喟膏熬喟皞喟む睄喟班皞/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喟班熬喟む睄喟班翱') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '喟夃唉喟皞') { + return hour; + } else if (meridiem === '喟哀啾嵿隘喟距肮啾嵿皑喟') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '喟膏熬喟皞喟む睄喟班皞') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '喟班熬喟む睄喟班翱'; + } else if (hour < 10) { + return '喟夃唉喟皞'; + } else if (hour < 17) { + return '喟哀啾嵿隘喟距肮啾嵿皑喟'; + } else if (hour < 20) { + return '喟膏熬喟皞喟む睄喟班皞'; + } else { + return '喟班熬喟む睄喟班翱'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + return te; + +}))); diff --git a/node_modules/moment/locale/tet.js b/node_modules/moment/locale/tet.js new file mode 100644 index 0000000..931384a --- /dev/null +++ b/node_modules/moment/locale/tet.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tet = moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju帽u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return tet; + +}))); diff --git a/node_modules/moment/locale/tg.js b/node_modules/moment/locale/tg.js new file mode 100644 index 0000000..bde72ad --- /dev/null +++ b/node_modules/moment/locale/tg.js @@ -0,0 +1,128 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 0: '-褍屑', + 1: '-褍屑', + 2: '-褞屑', + 3: '-褞屑', + 4: '-褍屑', + 5: '-褍屑', + 6: '-褍屑', + 7: '-褍屑', + 8: '-褍屑', + 9: '-褍屑', + 10: '-褍屑', + 12: '-褍屑', + 13: '-褍屑', + 20: '-褍屑', + 30: '-褞屑', + 40: '-褍屑', + 50: '-褍屑', + 60: '-褍屑', + 70: '-褍屑', + 80: '-褍屑', + 90: '-褍屑', + 100: '-褍屑', + }; + + var tg = moment.defineLocale('tg', { + months: { + format: '褟薪胁邪褉懈_褎械胁褉邪谢懈_屑邪褉褌懈_邪锌褉械谢懈_屑邪泄懈_懈褞薪懈_懈褞谢懈_邪胁谐褍褋褌懈_褋械薪褌褟斜褉懈_芯泻褌褟斜褉懈_薪芯褟斜褉懈_写械泻邪斜褉懈'.split( + '_' + ), + standalone: + '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + }, + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '褟泻褕邪薪斜械_写褍褕邪薪斜械_褋械褕邪薪斜械_褔芯褉褕邪薪斜械_锌邪薪曳褕邪薪斜械_曳褍屑褗邪_褕邪薪斜械'.split( + '_' + ), + weekdaysShort: '褟褕斜_写褕斜_褋褕斜_褔褕斜_锌褕斜_曳褍屑_褕薪斜'.split('_'), + weekdaysMin: '褟褕_写褕_褋褕_褔褕_锌褕_曳屑_褕斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袠屑褉盈蟹 褋芯邪褌懈] LT', + nextDay: '[肖邪褉写芯 褋芯邪褌懈] LT', + lastDay: '[袛懈褉盈蟹 褋芯邪褌懈] LT', + nextWeek: 'dddd[懈] [页邪褎褌邪懈 芯褟薪写邪 褋芯邪褌懈] LT', + lastWeek: 'dddd[懈] [页邪褎褌邪懈 谐褍蟹邪褕褌邪 褋芯邪褌懈] LT', + sameElse: 'L', + }, + relativeTime: { + future: '斜邪褗写懈 %s', + past: '%s 锌械褕', + s: '褟泻褔邪薪写 褋芯薪懈褟', + m: '褟泻 写邪覜懈覜邪', + mm: '%d 写邪覜懈覜邪', + h: '褟泻 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '褟泻 褉盈蟹', + dd: '%d 褉盈蟹', + M: '褟泻 屑芯页', + MM: '%d 屑芯页', + y: '褟泻 褋芯谢', + yy: '%d 褋芯谢', + }, + meridiemParse: /褕邪斜|褋褍斜页|褉盈蟹|斜械谐芯页/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '褕邪斜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '褋褍斜页') { + return hour; + } else if (meridiem === '褉盈蟹') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '斜械谐芯页') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '褕邪斜'; + } else if (hour < 11) { + return '褋褍斜页'; + } else if (hour < 16) { + return '褉盈蟹'; + } else if (hour < 19) { + return '斜械谐芯页'; + } else { + return '褕邪斜'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褍屑|褞屑)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + return tg; + +}))); diff --git a/node_modules/moment/locale/th.js b/node_modules/moment/locale/th.js new file mode 100644 index 0000000..f83bad9 --- /dev/null +++ b/node_modules/moment/locale/th.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var th = moment.defineLocale('th', { + months: '喔∴竵喔`覆喔勦浮_喔佮父喔∴笭喔侧笧喔编笝喔樴箤_喔∴傅喔權覆喔勦浮_喙喔∴俯喔侧涪喔檁喔炧袱喔┼笭喔侧竸喔喔∴复喔栢父喔權覆喔⑧笝_喔佮福喔佮笌喔侧竸喔喔复喔囙斧喔侧竸喔喔佮副喔權涪喔侧涪喔檁喔曕父喔ム覆喔勦浮_喔炧袱喔ㄠ笀喔脆竵喔侧涪喔檁喔樴副喔權抚喔侧竸喔'.split( + '_' + ), + monthsShort: + '喔.喔._喔.喔._喔∴傅.喔._喙喔.喔._喔.喔._喔∴复.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔笟喔斷傅_喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), + weekdaysShort: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔猒喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), // yes, three characters difference + weekdaysMin: '喔覆._喔._喔._喔._喔炧袱._喔._喔.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY 喙喔о弗喔 H:mm', + LLLL: '喔о副喔檇ddd喔椸傅喙 D MMMM YYYY 喙喔о弗喔 H:mm', + }, + meridiemParse: /喔佮箞喔笝喙喔椸傅喙堗涪喔噟喔弗喔编竾喙喔椸傅喙堗涪喔/, + isPM: function (input) { + return input === '喔弗喔编竾喙喔椸傅喙堗涪喔'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '喔佮箞喔笝喙喔椸傅喙堗涪喔'; + } else { + return '喔弗喔编竾喙喔椸傅喙堗涪喔'; + } + }, + calendar: { + sameDay: '[喔о副喔權笝喔掂箟 喙喔о弗喔瞉 LT', + nextDay: '[喔炧福喔膏箞喔囙笝喔掂箟 喙喔о弗喔瞉 LT', + nextWeek: 'dddd[喔笝喙夃覆 喙喔о弗喔瞉 LT', + lastDay: '[喙喔∴阜喙堗腑喔о覆喔權笝喔掂箟 喙喔о弗喔瞉 LT', + lastWeek: '[喔о副喔橾dddd[喔椸傅喙堗箒喔ム箟喔 喙喔о弗喔瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '喔傅喔 %s', + past: '%s喔椸傅喙堗箒喔ム箟喔', + s: '喙勦浮喙堗竵喔掂箞喔о复喔權覆喔椸傅', + ss: '%d 喔о复喔權覆喔椸傅', + m: '1 喔權覆喔椸傅', + mm: '%d 喔權覆喔椸傅', + h: '1 喔娻副喙堗抚喙傕浮喔', + hh: '%d 喔娻副喙堗抚喙傕浮喔', + d: '1 喔о副喔', + dd: '%d 喔о副喔', + w: '1 喔副喔涏笖喔侧斧喙', + ww: '%d 喔副喔涏笖喔侧斧喙', + M: '1 喙喔斷阜喔笝', + MM: '%d 喙喔斷阜喔笝', + y: '1 喔涏傅', + yy: '%d 喔涏傅', + }, + }); + + return th; + +}))); diff --git a/node_modules/moment/locale/tk.js b/node_modules/moment/locale/tk.js new file mode 100644 index 0000000..24d4ede --- /dev/null +++ b/node_modules/moment/locale/tk.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'眉nji", + 4: "'眉nji", + 100: "'眉nji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + var tk = moment.defineLocale('tk', { + months: '脻anwar_Fewral_Mart_Aprel_Ma媒_I媒un_I媒ul_Awgust_Sent媒abr_Okt媒abr_No媒abr_Dekabr'.split( + '_' + ), + monthsShort: '脻an_Few_Mar_Apr_Ma媒_I媒n_I媒l_Awg_Sen_Okt_No媒_Dek'.split('_'), + weekdays: '脻ek艧enbe_Du艧enbe_Si艧enbe_脟ar艧enbe_Pen艧enbe_Anna_艦enbe'.split( + '_' + ), + weekdaysShort: '脻ek_Du艧_Si艧_脟ar_Pen_Ann_艦en'.split('_'), + weekdaysMin: '脻k_D艧_S艧_脟r_Pn_An_艦n'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[d眉媒n] LT', + lastWeek: '[ge莽en] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s so艌', + past: '%s 枚艌', + s: 'birn盲莽e sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir a媒', + MM: '%d a媒', + y: 'bir 媒yl', + yy: '%d 媒yl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tk; + +}))); diff --git a/node_modules/moment/locale/tl-ph.js b/node_modules/moment/locale/tl-ph.js new file mode 100644 index 0000000..871b078 --- /dev/null +++ b/node_modules/moment/locale/tl-ph.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tlPh = moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + return tlPh; + +}))); diff --git a/node_modules/moment/locale/tlh.js b/node_modules/moment/locale/tlh.js new file mode 100644 index 0000000..ee39f1e --- /dev/null +++ b/node_modules/moment/locale/tlh.js @@ -0,0 +1,135 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa鈥檁cha鈥檁wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu鈥' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + var tlh = moment.defineLocale('tlh', { + months: 'tera鈥 jar wa鈥檁tera鈥 jar cha鈥檁tera鈥 jar wej_tera鈥 jar loS_tera鈥 jar vagh_tera鈥 jar jav_tera鈥 jar Soch_tera鈥 jar chorgh_tera鈥 jar Hut_tera鈥 jar wa鈥檓aH_tera鈥 jar wa鈥檓aH wa鈥檁tera鈥 jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsShort: + 'jar wa鈥檁jar cha鈥檁jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa鈥檓aH_jar wa鈥檓aH wa鈥檁jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa鈥檒eS] LT', + nextWeek: 'LLL', + lastDay: '[wa鈥橦u鈥橾 LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa鈥 tup', + mm: translate, + h: 'wa鈥 rep', + hh: translate, + d: 'wa鈥 jaj', + dd: translate, + M: 'wa鈥 jar', + MM: translate, + y: 'wa鈥 DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + return tlh; + +}))); diff --git a/node_modules/moment/locale/tr.js b/node_modules/moment/locale/tr.js new file mode 100644 index 0000000..663778e --- /dev/null +++ b/node_modules/moment/locale/tr.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yi臒it Kaya: https://github.com/BYK + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'眉nc眉", + 4: "'眉nc眉", + 100: "'眉nc眉", + 6: "'nc谋", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'谋nc谋", + 90: "'谋nc谋", + }; + + var tr = moment.defineLocale('tr', { + months: 'Ocak_艦ubat_Mart_Nisan_May谋s_Haziran_Temmuz_A臒ustos_Eyl眉l_Ekim_Kas谋m_Aral谋k'.split( + '_' + ), + monthsShort: 'Oca_艦ub_Mar_Nis_May_Haz_Tem_A臒u_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Sal谋_脟ar艧amba_Per艧embe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_脟ar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_脟a_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? '枚枚' : '脰脰'; + } else { + return isLower ? '枚s' : '脰S'; + } + }, + meridiemParse: /枚枚|脰脰|枚s|脰S/, + isPM: function (input) { + return input === '枚s' || input === '脰S'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[yar谋n saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[d眉n] LT', + lastWeek: '[ge莽en] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 枚nce', + s: 'birka莽 saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir y谋l', + yy: '%d y谋l', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'谋nc谋"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return tr; + +}))); diff --git a/node_modules/moment/locale/tzl.js b/node_modules/moment/locale/tzl.js new file mode 100644 index 0000000..5eb1c06 --- /dev/null +++ b/node_modules/moment/locale/tzl.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iust矛 Canun + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + var tzl = moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Mar莽_Avr茂u_Mai_G眉n_Julia_Guscht_Setemvar_Listop盲ts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_G眉n_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'S煤ladi_L煤ne莽i_Maitzi_M谩rcuri_Xh煤adi_Vi茅ner莽i_S谩turi'.split('_'), + weekdaysShort: 'S煤l_L煤n_Mai_M谩r_Xh煤_Vi茅_S谩t'.split('_'), + weekdaysMin: 'S煤_L煤_Ma_M谩_Xh_Vi_S谩'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi 脿] LT', + nextDay: '[dem脿 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[ieiri 脿] LT', + lastWeek: '[s眉r el] dddd [lasteu 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n m铆ut", "'iens m铆ut"], + mm: [number + ' m铆uts', '' + number + ' m铆uts'], + h: ["'n 镁ora", "'iensa 镁ora"], + hh: [number + ' 镁oras', '' + number + ' 镁oras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + return tzl; + +}))); diff --git a/node_modules/moment/locale/tzm-latn.js b/node_modules/moment/locale/tzm-latn.js new file mode 100644 index 0000000..34425a7 --- /dev/null +++ b/node_modules/moment/locale/tzm-latn.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzmLatn = moment.defineLocale('tzm-latn', { + months: 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minu岣', + mm: '%d minu岣', + h: 'sa蓻a', + hh: '%d tassa蓻in', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzmLatn; + +}))); diff --git a/node_modules/moment/locale/tzm.js b/node_modules/moment/locale/tzm.js new file mode 100644 index 0000000..5db61f9 --- /dev/null +++ b/node_modules/moment/locale/tzm.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var tzm = moment.defineLocale('tzm', { + months: '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + monthsShort: + '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + weekdays: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysShort: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysMin: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[獯扳禉獯封祬 獯碷 LT', + nextDay: '[獯扳禉獯解窗 獯碷 LT', + nextWeek: 'dddd [獯碷 LT', + lastDay: '[獯扳禋獯扳祻獾 獯碷 LT', + lastWeek: 'dddd [獯碷 LT', + sameElse: 'L', + }, + relativeTime: { + future: '獯封窗獯封祬 獾 獾⑩窗獾 %s', + past: '獾⑩窗獾 %s', + s: '獾夆祹獾夆唇', + ss: '%d 獾夆祹獾夆唇', + m: '獾庘祲獾忊祿獯', + mm: '%d 獾庘祲獾忊祿獯', + h: '獾欌窗獾勨窗', + hh: '%d 獾溾窗獾欌禉獯扳祫獾夆祻', + d: '獯扳禉獾', + dd: '%d o獾欌禉獯扳祻', + M: '獯扳耽o獾撯禂', + MM: '%d 獾夆耽獾⑩祲獾斺祻', + y: '獯扳禉獯斥窗獾', + yy: '%d 獾夆禉獯斥窗獾欌祻', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + return tzm; + +}))); diff --git a/node_modules/moment/locale/ug-cn.js b/node_modules/moment/locale/ug-cn.js new file mode 100644 index 0000000..5efffdd --- /dev/null +++ b/node_modules/moment/locale/ug-cn.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var ugCn = moment.defineLocale('ug-cn', { + months: '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + monthsShort: + '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + weekdays: '賷蹠賰卮蹠賳亘蹠_丿蹐卮蹠賳亘蹠_爻蹠賷卮蹠賳亘蹠_趩丕乇卮蹠賳亘蹠_倬蹠賷卮蹠賳亘蹠_噩蹐賲蹠_卮蹠賳亘蹠'.split( + '_' + ), + weekdaysShort: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + weekdaysMin: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶', + LLL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + LLLL: 'dddd貙 YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + }, + meridiemParse: /賷蹛乇賶賲 賰蹛趩蹠|爻蹠诰蹠乇|趩蹐卮鬲賶賳 亘蹏乇蹏賳|趩蹐卮|趩蹐卮鬲賶賳 賰蹛賷賶賳|賰蹠趩/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === '賷蹛乇賶賲 賰蹛趩蹠' || + meridiem === '爻蹠诰蹠乇' || + meridiem === '趩蹐卮鬲賶賳 亘蹏乇蹏賳' + ) { + return hour; + } else if (meridiem === '趩蹐卮鬲賶賳 賰蹛賷賶賳' || meridiem === '賰蹠趩') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '賷蹛乇賶賲 賰蹛趩蹠'; + } else if (hm < 900) { + return '爻蹠诰蹠乇'; + } else if (hm < 1130) { + return '趩蹐卮鬲賶賳 亘蹏乇蹏賳'; + } else if (hm < 1230) { + return '趩蹐卮'; + } else if (hm < 1800) { + return '趩蹐卮鬲賶賳 賰蹛賷賶賳'; + } else { + return '賰蹠趩'; + } + }, + calendar: { + sameDay: '[亘蹐诏蹐賳 爻丕卅蹠鬲] LT', + nextDay: '[卅蹠鬲蹠 爻丕卅蹠鬲] LT', + nextWeek: '[賰蹛賱蹠乇賰賶] dddd [爻丕卅蹠鬲] LT', + lastDay: '[鬲蹎賳蹐诏蹐賳] LT', + lastWeek: '[卅丕賱丿賶賳賯賶] dddd [爻丕卅蹠鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 賰蹛賷賶賳', + past: '%s 亘蹏乇蹏賳', + s: '賳蹠趩趩蹠 爻蹛賰賵賳鬲', + ss: '%d 爻蹛賰賵賳鬲', + m: '亘賶乇 賲賶賳蹏鬲', + mm: '%d 賲賶賳蹏鬲', + h: '亘賶乇 爻丕卅蹠鬲', + hh: '%d 爻丕卅蹠鬲', + d: '亘賶乇 賰蹐賳', + dd: '%d 賰蹐賳', + M: '亘賶乇 卅丕賷', + MM: '%d 卅丕賷', + y: '亘賶乇 賷賶賱', + yy: '%d 賷賶賱', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-賰蹐賳賶|-卅丕賷|-诰蹠倬鬲蹠)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-賰蹐賳賶'; + case 'w': + case 'W': + return number + '-诰蹠倬鬲蹠'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + return ugCn; + +}))); diff --git a/node_modules/moment/locale/uk.js b/node_modules/moment/locale/uk.js new file mode 100644 index 0000000..89e0431 --- /dev/null +++ b/node_modules/moment/locale/uk.js @@ -0,0 +1,178 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elens煤le : https://github.com/Oire + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写懈_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写懈_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁懈谢懈薪邪_褏胁懈谢懈薪懈_褏胁懈谢懈薪' : '褏胁懈谢懈薪褍_褏胁懈谢懈薪懈_褏胁懈谢懈薪', + hh: withoutSuffix ? '谐芯写懈薪邪_谐芯写懈薪懈_谐芯写懈薪' : '谐芯写懈薪褍_谐芯写懈薪懈_谐芯写懈薪', + dd: '写械薪褜_写薪褨_写薪褨胁', + MM: '屑褨褋褟褑褜_屑褨褋褟褑褨_屑褨褋褟褑褨胁', + yy: '褉褨泻_褉芯泻懈_褉芯泻褨胁', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁懈谢懈薪邪' : '褏胁懈谢懈薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐芯写懈薪邪' : '谐芯写懈薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + '薪械写褨谢褟_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写邪_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲廮褋褍斜芯褌邪'.split( + '_' + ), + accusative: + '薪械写褨谢褞_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写褍_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲巁褋褍斜芯褌褍'.split( + '_' + ), + genitive: + '薪械写褨谢褨_锌芯薪械写褨谢泻邪_胁褨胁褌芯褉泻邪_褋械褉械写懈_褔械褌胁械褉谐邪_锌鈥櫻徰傂叫秆喲朹褋褍斜芯褌懈'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[袙胁校褍]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:屑懈薪褍谢芯褩|薪邪褋褌褍锌薪芯褩)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + '芯' + (this.hours() === 11 ? '斜' : '') + '] LT'; + }; + } + + var uk = moment.defineLocale('uk', { + months: { + format: '褋褨褔薪褟_谢褞褌芯谐芯_斜械褉械蟹薪褟_泻胁褨褌薪褟_褌褉邪胁薪褟_褔械褉胁薪褟_谢懈锌薪褟_褋械褉锌薪褟_胁械褉械褋薪褟_卸芯胁褌薪褟_谢懈褋褌芯锌邪写邪_谐褉褍写薪褟'.split( + '_' + ), + standalone: + '褋褨褔械薪褜_谢褞褌懈泄_斜械褉械蟹械薪褜_泻胁褨褌械薪褜_褌褉邪胁械薪褜_褔械褉胁械薪褜_谢懈锌械薪褜_褋械褉锌械薪褜_胁械褉械褋械薪褜_卸芯胁褌械薪褜_谢懈褋褌芯锌邪写_谐褉褍写械薪褜'.split( + '_' + ), + }, + monthsShort: '褋褨褔_谢褞褌_斜械褉_泻胁褨褌_褌褉邪胁_褔械褉胁_谢懈锌_褋械褉锌_胁械褉_卸芯胁褌_谢懈褋褌_谐褉褍写'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 褉.', + LLL: 'D MMMM YYYY 褉., HH:mm', + LLLL: 'dddd, D MMMM YYYY 褉., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[小褜芯谐芯写薪褨 '), + nextDay: processHoursFunction('[袟邪胁褌褉邪 '), + lastDay: processHoursFunction('[袙褔芯褉邪 '), + nextWeek: processHoursFunction('[校] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[袦懈薪褍谢芯褩] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[袦懈薪褍谢芯谐芯] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '%s 褌芯屑褍', + s: '写械泻褨谢褜泻邪 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '谐芯写懈薪褍', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + M: '屑褨褋褟褑褜', + MM: relativeTimeWithPlural, + y: '褉褨泻', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /薪芯褔褨|褉邪薪泻褍|写薪褟|胁械褔芯褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔芯褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褨'; + } else if (hour < 12) { + return '褉邪薪泻褍'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔芯褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uk; + +}))); diff --git a/node_modules/moment/locale/ur.js b/node_modules/moment/locale/ur.js new file mode 100644 index 0000000..9720dcf --- /dev/null +++ b/node_modules/moment/locale/ur.js @@ -0,0 +1,93 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var months = [ + '噩賳賵乇蹖', + '賮乇賵乇蹖', + '賲丕乇趩', + '丕倬乇蹖賱', + '賲卅蹖', + '噩賵賳', + '噩賵賱丕卅蹖', + '丕诏爻鬲', + '爻鬲賲亘乇', + '丕讴鬲賵亘乇', + '賳賵賲亘乇', + '丿爻賲亘乇', + ], + days = ['丕鬲賵丕乇', '倬蹖乇', '賲賳诏賱', '亘丿诰', '噩賲毓乇丕鬲', '噩賲毓蹃', '蹃賮鬲蹃']; + + var ur = moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丌噩 亘賵賯鬲] LT', + nextDay: '[讴賱 亘賵賯鬲] LT', + nextWeek: 'dddd [亘賵賯鬲] LT', + lastDay: '[诏匕卮鬲蹃 乇賵夭 亘賵賯鬲] LT', + lastWeek: '[诏匕卮鬲蹃] dddd [亘賵賯鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 亘毓丿', + past: '%s 賯亘賱', + s: '趩賳丿 爻蹖讴賳趫', + ss: '%d 爻蹖讴賳趫', + m: '丕蹖讴 賲賳俟', + mm: '%d 賲賳俟', + h: '丕蹖讴 诏诰賳俟蹃', + hh: '%d 诏诰賳俟蹝', + d: '丕蹖讴 丿賳', + dd: '%d 丿賳', + M: '丕蹖讴 賲丕蹃', + MM: '%d 賲丕蹃', + y: '丕蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + return ur; + +}))); diff --git a/node_modules/moment/locale/uz-latn.js b/node_modules/moment/locale/uz-latn.js new file mode 100644 index 0000000..af08e60 --- /dev/null +++ b/node_modules/moment/locale/uz-latn.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uzLatn = moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + return uzLatn; + +}))); diff --git a/node_modules/moment/locale/uz.js b/node_modules/moment/locale/uz.js new file mode 100644 index 0000000..a8a87fc --- /dev/null +++ b/node_modules/moment/locale/uz.js @@ -0,0 +1,62 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var uz = moment.defineLocale('uz', { + months: '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '携泻褕邪薪斜邪_袛褍褕邪薪斜邪_小械褕邪薪斜邪_效芯褉褕邪薪斜邪_袩邪泄褕邪薪斜邪_袞褍屑邪_楔邪薪斜邪'.split('_'), + weekdaysShort: '携泻褕_袛褍褕_小械褕_效芯褉_袩邪泄_袞褍屑_楔邪薪'.split('_'), + weekdaysMin: '携泻_袛褍_小械_效芯_袩邪_袞褍_楔邪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[袘褍谐褍薪 褋芯邪褌] LT [写邪]', + nextDay: '[协褉褌邪谐邪] LT [写邪]', + nextWeek: 'dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + lastDay: '[袣械褔邪 褋芯邪褌] LT [写邪]', + lastWeek: '[校褌谐邪薪] dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + sameElse: 'L', + }, + relativeTime: { + future: '携泻懈薪 %s 懈褔懈写邪', + past: '袘懈褉 薪械褔邪 %s 芯谢写懈薪', + s: '褎褍褉褋邪褌', + ss: '%d 褎褍褉褋邪褌', + m: '斜懈褉 写邪泻懈泻邪', + mm: '%d 写邪泻懈泻邪', + h: '斜懈褉 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '斜懈褉 泻褍薪', + dd: '%d 泻褍薪', + M: '斜懈褉 芯泄', + MM: '%d 芯泄', + y: '斜懈褉 泄懈谢', + yy: '%d 泄懈谢', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + return uz; + +}))); diff --git a/node_modules/moment/locale/vi.js b/node_modules/moment/locale/vi.js new file mode 100644 index 0000000..fb6b4b4 --- /dev/null +++ b/node_modules/moment/locale/vi.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var vi = moment.defineLocale('vi', { + months: 'th谩ng 1_th谩ng 2_th谩ng 3_th谩ng 4_th谩ng 5_th谩ng 6_th谩ng 7_th谩ng 8_th谩ng 9_th谩ng 10_th谩ng 11_th谩ng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ch峄 nh岷璽_th峄 hai_th峄 ba_th峄 t瓢_th峄 n膬m_th峄 s谩u_th峄 b岷'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [n膬m] YYYY', + LLL: 'D MMMM [n膬m] YYYY HH:mm', + LLLL: 'dddd, D MMMM [n膬m] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[H么m nay l煤c] LT', + nextDay: '[Ng脿y mai l煤c] LT', + nextWeek: 'dddd [tu岷 t峄沬 l煤c] LT', + lastDay: '[H么m qua l煤c] LT', + lastWeek: 'dddd [tu岷 tr瓢峄沜 l煤c] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s t峄沬', + past: '%s tr瓢峄沜', + s: 'v脿i gi芒y', + ss: '%d gi芒y', + m: 'm峄檛 ph煤t', + mm: '%d ph煤t', + h: 'm峄檛 gi峄', + hh: '%d gi峄', + d: 'm峄檛 ng脿y', + dd: '%d ng脿y', + w: 'm峄檛 tu岷', + ww: '%d tu岷', + M: 'm峄檛 th谩ng', + MM: '%d th谩ng', + y: 'm峄檛 n膬m', + yy: '%d n膬m', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + return vi; + +}))); diff --git a/node_modules/moment/locale/x-pseudo.js b/node_modules/moment/locale/x-pseudo.js new file mode 100644 index 0000000..f67a2bf --- /dev/null +++ b/node_modules/moment/locale/x-pseudo.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var xPseudo = moment.defineLocale('x-pseudo', { + months: 'J~谩帽煤谩~r媒_F~茅br煤~谩r媒_~M谩rc~h_脕p~r铆l_~M谩媒_~J煤帽茅~_J煤l~媒_脕煤~g煤st~_S茅p~t茅mb~茅r_脫~ct贸b~茅r_脩~贸v茅m~b茅r_~D茅c茅~mb茅r'.split( + '_' + ), + monthsShort: + 'J~谩帽_~F茅b_~M谩r_~脕pr_~M谩媒_~J煤帽_~J煤l_~脕煤g_~S茅p_~脫ct_~脩贸v_~D茅c'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~煤帽d谩~媒_M贸~帽d谩媒~_T煤茅~sd谩媒~_W茅d~帽茅sd~谩媒_T~h煤rs~d谩媒_~Fr铆d~谩媒_S~谩t煤r~d谩媒'.split( + '_' + ), + weekdaysShort: 'S~煤帽_~M贸帽_~T煤茅_~W茅d_~Th煤_~Fr铆_~S谩t'.split('_'), + weekdaysMin: 'S~煤_M贸~_T煤_~W茅_T~h_Fr~_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~贸d谩~媒 谩t] LT', + nextDay: '[T~贸m贸~rr贸~w 谩t] LT', + nextWeek: 'dddd [谩t] LT', + lastDay: '[脻~茅st~茅rd谩~媒 谩t] LT', + lastWeek: '[L~谩st] dddd [谩t] LT', + sameElse: 'L', + }, + relativeTime: { + future: '铆~帽 %s', + past: '%s 谩~g贸', + s: '谩 ~f茅w ~s茅c贸~帽ds', + ss: '%d s~茅c贸帽~ds', + m: '谩 ~m铆帽~煤t茅', + mm: '%d m~铆帽煤~t茅s', + h: '谩~帽 h贸~煤r', + hh: '%d h~贸煤rs', + d: '谩 ~d谩媒', + dd: '%d d~谩媒s', + M: '谩 ~m贸帽~th', + MM: '%d m~贸帽t~hs', + y: '谩 ~媒茅谩r', + yy: '%d 媒~茅谩rs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + return xPseudo; + +}))); diff --git a/node_modules/moment/locale/yo.js b/node_modules/moment/locale/yo.js new file mode 100644 index 0000000..9fe818b --- /dev/null +++ b/node_modules/moment/locale/yo.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var yo = moment.defineLocale('yo', { + months: 'S岷固乺岷固乢E虁re虁le虁_岷竢岷固na虁_I虁gbe虂_E虁bibi_O虁ku虁du_Ag岷筸o_O虁gu虂n_Owewe_峄屘wa虁ra虁_Be虂lu虂_峄屘p岷固虁'.split( + '_' + ), + monthsShort: 'S岷固乺_E虁rl_岷竢n_I虁gb_E虁bi_O虁ku虁_Ag岷筥O虁gu虂_Owe_峄屘wa虁_Be虂l_峄屘p岷固虁'.split('_'), + weekdays: 'A虁i虁ku虂_Aje虂_I虁s岷固乬un_峄宩峄嵦乺u虂_峄宩峄嵦乥峄峗岷竧i虁_A虁ba虂m岷固乼a'.split('_'), + weekdaysShort: 'A虁i虁k_Aje虂_I虁s岷固乢峄宩r_峄宩b_岷竧i虁_A虁ba虂'.split('_'), + weekdaysMin: 'A虁i虁_Aj_I虁s_峄宺_峄宐_岷竧_A虁b'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[O虁ni虁 ni] LT', + nextDay: '[峄屘la ni] LT', + nextWeek: "dddd [峄宻岷固 to虂n'b峄峕 [ni] LT", + lastDay: '[A虁na ni] LT', + lastWeek: 'dddd [峄宻岷固 to虂l峄嵦乚 [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ni虂 %s', + past: '%s k峄峧a虂', + s: 'i虁s岷筳u虂 aaya虂 die', + ss: 'aaya虂 %d', + m: 'i虁s岷筳u虂 kan', + mm: 'i虁s岷筳u虂 %d', + h: 'wa虂kati kan', + hh: 'wa虂kati %d', + d: '峄峧峄嵦 kan', + dd: '峄峧峄嵦 %d', + M: 'osu虁 kan', + MM: 'osu虁 %d', + y: '峄峝u虂n kan', + yy: '峄峝u虂n %d', + }, + dayOfMonthOrdinalParse: /峄峧峄嵦乗s\d{1,2}/, + ordinal: '峄峧峄嵦 %d', + 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. + }, + }); + + return yo; + +}))); diff --git a/node_modules/moment/locale/zh-cn.js b/node_modules/moment/locale/zh-cn.js new file mode 100644 index 0000000..c14ca47 --- /dev/null +++ b/node_modules/moment/locale/zh-cn.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhCn = moment.defineLocale('zh-cn', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '鍛ㄦ棩_鍛ㄤ竴_鍛ㄤ簩_鍛ㄤ笁_鍛ㄥ洓_鍛ㄤ簲_鍛ㄥ叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃h鐐筸m鍒', + LLLL: 'YYYY骞碝鏈圖鏃dddAh鐐筸m鍒', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } else { + // '涓崍' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[涓媇dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + lastDay: '[鏄ㄥぉ]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[涓奭dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾鍛)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '鍛'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍚', + past: '%s鍓', + s: '鍑犵', + ss: '%d 绉', + m: '1 鍒嗛挓', + mm: '%d 鍒嗛挓', + h: '1 灏忔椂', + hh: '%d 灏忔椂', + d: '1 澶', + dd: '%d 澶', + w: '1 鍛', + ww: '%d 鍛', + M: '1 涓湀', + MM: '%d 涓湀', + y: '1 骞', + yy: '%d 骞', + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + 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. + }, + }); + + return zhCn; + +}))); diff --git a/node_modules/moment/locale/zh-hk.js b/node_modules/moment/locale/zh-hk.js new file mode 100644 index 0000000..de900fd --- /dev/null +++ b/node_modules/moment/locale/zh-hk.js @@ -0,0 +1,112 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhHk = moment.defineLocale('zh-hk', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1200) { + return '涓婂崍'; + } else if (hm === 1200) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: '[涓媇ddddLT', + lastDay: '[鏄ㄥぉ]LT', + lastWeek: '[涓奭ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + return zhHk; + +}))); diff --git a/node_modules/moment/locale/zh-mo.js b/node_modules/moment/locale/zh-mo.js new file mode 100644 index 0000000..b32feab --- /dev/null +++ b/node_modules/moment/locale/zh-mo.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhMo = moment.defineLocale('zh-mo', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍏', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + return zhMo; + +}))); diff --git a/node_modules/moment/locale/zh-tw.js b/node_modules/moment/locale/zh-tw.js new file mode 100644 index 0000000..4f80ece --- /dev/null +++ b/node_modules/moment/locale/zh-tw.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + var zhTw = moment.defineLocale('zh-tw', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + return zhTw; + +}))); diff --git a/node_modules/moment/min/locales.js b/node_modules/moment/min/locales.js new file mode 100644 index 0000000..b4d302c --- /dev/null +++ b/node_modules/moment/min/locales.js @@ -0,0 +1,12570 @@ +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + && typeof require === 'function' ? factory(require('../moment')) : + typeof define === 'function' && define.amd ? define(['../moment'], factory) : + factory(global.moment) +}(this, (function (moment) { 'use strict'; + + //! moment.js locale configuration + + moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[M么re om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\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 + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '噩丕賳賮賷', + '賮賷賮乇賷', + '賲丕乇爻', + '兀賮乇賷賱', + '賲丕賷', + '噩賵丕賳', + '噩賵賷賱賷丞', + '兀賵鬲', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-kw', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿鬲賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕鬲賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm$1 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$1 = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize$1 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$1(number), + str = plurals$1[u][pluralForm$1(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$1 = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + moment.defineLocale('ar-ly', { + months: months$1, + monthsShort: months$1, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize$1('s'), + ss: pluralize$1('s'), + m: pluralize$1('m'), + mm: pluralize$1('m'), + h: pluralize$1('h'), + hh: pluralize$1('h'), + d: pluralize$1('d'), + dd: pluralize$1('d'), + M: pluralize$1('M'), + MM: pluralize$1('M'), + y: pluralize$1('y'), + yy: pluralize$1('y'), + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-ma', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕孬賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$1 = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }; + + moment.defineLocale('ar-sa', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$1[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ar-tn', { + months: '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$2 = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap$1 = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + pluralForm$2 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$2 = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize$2 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$2(number), + str = plurals$2[u][pluralForm$2(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$2 = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + moment.defineLocale('ar', { + months: months$2, + monthsShort: months$2, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize$2('s'), + ss: pluralize$2('s'), + m: pluralize$2('m'), + mm: pluralize$2('m'), + h: pluralize$2('h'), + hh: pluralize$2('h'), + d: pluralize$2('d'), + dd: pluralize$2('d'), + M: pluralize$2('M'), + MM: pluralize$2('M'), + y: pluralize$2('y'), + yy: pluralize$2('y'), + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap$1[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$2[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-眉nc眉', + 4: '-眉nc眉', + 100: '-眉nc眉', + 6: '-nc谋', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-谋nc谋', + 90: '-谋nc谋', + }; + + moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ert蓹si_脟蓹r艧蓹nb蓹 ax艧am谋_脟蓹r艧蓹nb蓹_C眉m蓹 ax艧am谋_C眉m蓹_艦蓹nb蓹'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_脟Ax_脟蓹r_CAx_C眉m_艦蓹n'.split('_'), + weekdaysMin: 'Bz_BE_脟A_脟蓹_CA_C眉_艦蓹'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[g蓹l蓹n h蓹ft蓹] dddd [saat] LT', + lastDay: '[d眉n蓹n] LT', + lastWeek: '[ke莽蓹n h蓹ft蓹] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 蓹vv蓹l', + s: 'bir ne莽蓹 saniy蓹', + ss: '%d saniy蓹', + m: 'bir d蓹qiq蓹', + mm: '%d d蓹qiq蓹', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gec蓹|s蓹h蓹r|g眉nd眉z|ax艧am/, + isPM: function (input) { + return /^(g眉nd眉z|ax艧am)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gec蓹'; + } else if (hour < 12) { + return 's蓹h蓹r'; + } else if (hour < 17) { + return 'g眉nd眉z'; + } else { + return 'ax艧am'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(谋nc谋|inci|nci|眉nc眉|nc谋|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-谋nc谋'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁褨谢褨薪邪_褏胁褨谢褨薪褘_褏胁褨谢褨薪' : '褏胁褨谢褨薪褍_褏胁褨谢褨薪褘_褏胁褨谢褨薪', + hh: withoutSuffix ? '谐邪写蟹褨薪邪_谐邪写蟹褨薪褘_谐邪写蟹褨薪' : '谐邪写蟹褨薪褍_谐邪写蟹褨薪褘_谐邪写蟹褨薪', + dd: '写蟹械薪褜_写薪褨_写蟹褢薪', + MM: '屑械褋褟褑_屑械褋褟褑褘_屑械褋褟褑邪褳', + yy: '谐芯写_谐邪写褘_谐邪写芯褳', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁褨谢褨薪邪' : '褏胁褨谢褨薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐邪写蟹褨薪邪' : '谐邪写蟹褨薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + moment.defineLocale('be', { + months: { + format: '褋褌褍写蟹械薪褟_谢褞褌邪谐邪_褋邪泻邪胁褨泻邪_泻褉邪褋邪胁褨泻邪_褌褉邪褳薪褟_褔褝褉胁械薪褟_谢褨锌械薪褟_卸薪褨褳薪褟_胁械褉邪褋薪褟_泻邪褋褌褉褘褔薪褨泻邪_谢褨褋褌邪锌邪写邪_褋薪械卸薪褟'.split( + '_' + ), + standalone: + '褋褌褍写蟹械薪褜_谢褞褌褘_褋邪泻邪胁褨泻_泻褉邪褋邪胁褨泻_褌褉邪胁械薪褜_褔褝褉胁械薪褜_谢褨锌械薪褜_卸薪褨胁械薪褜_胁械褉邪褋械薪褜_泻邪褋褌褉褘褔薪褨泻_谢褨褋褌邪锌邪写_褋薪械卸邪薪褜'.split( + '_' + ), + }, + monthsShort: + '褋褌褍写_谢褞褌_褋邪泻_泻褉邪褋_褌褉邪胁_褔褝褉胁_谢褨锌_卸薪褨胁_胁械褉_泻邪褋褌_谢褨褋褌_褋薪械卸'.split('_'), + weekdays: { + format: '薪褟写蟹械谢褞_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写褍_褔邪褑胁械褉_锌褟褌薪褨褑褍_褋褍斜芯褌褍'.split( + '_' + ), + standalone: + '薪褟写蟹械谢褟_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写邪_褔邪褑胁械褉_锌褟褌薪褨褑邪_褋褍斜芯褌邪'.split( + '_' + ), + isFormat: /\[ ?[校褍褳] ?(?:屑褨薪褍谢褍褞|薪邪褋褌褍锌薪褍褞)? ?\] ?dddd/, + }, + weekdaysShort: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., HH:mm', + LLLL: 'dddd, D MMMM YYYY 谐., HH:mm', + }, + calendar: { + sameDay: '[小褢薪薪褟 褳] LT', + nextDay: '[袟邪褳褌褉邪 褳] LT', + lastDay: '[校褔芯褉邪 褳] LT', + nextWeek: function () { + return '[校] dddd [褳] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[校 屑褨薪褍谢褍褞] dddd [褳] LT'; + case 1: + case 2: + case 4: + return '[校 屑褨薪褍谢褘] dddd [褳] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '锌褉邪蟹 %s', + past: '%s 褌邪屑褍', + s: '薪械泻邪谢褜泻褨 褋械泻褍薪写', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: '写蟹械薪褜', + dd: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔褘|褉邪薪褨褑褘|写薪褟|胁械褔邪褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔邪褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褘'; + } else if (hour < 12) { + return '褉邪薪褨褑褘'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔邪褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褨|褘|谐邪)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-褨' + : number + '-褘'; + case 'D': + return number + '-谐邪'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('bg', { + months: '褟薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪泄_褞薪懈_褞谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褟薪褍_褎械胁_屑邪褉_邪锌褉_屑邪泄_褞薪懈_褞谢懈_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢褟_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉褟写邪_褔械褌胁褗褉褌褗泻_锌械褌褗泻_褋褗斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉褟_褔械褌_锌械褌_褋褗斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛薪械褋 胁] LT', + nextDay: '[校褌褉械 胁] LT', + nextWeek: 'dddd [胁] LT', + lastDay: '[袙褔械褉邪 胁] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袦懈薪邪谢邪褌邪] dddd [胁] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袦懈薪邪谢懈褟] dddd [胁] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '褋谢械写 %s', + past: '锌褉械写懈 %s', + s: '薪褟泻芯谢泻芯 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '褔邪褋', + hh: '%d 褔邪褋邪', + d: '写械薪', + dd: '%d 写械薪邪', + w: '褋械写屑懈褑邪', + ww: '%d 褋械写屑懈褑懈', + M: '屑械褋械褑', + MM: '%d 屑械褋械褑邪', + y: '谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M蓻kalo_Zuw蓻nkalo_Zuluyekalo_Utikalo_S蓻tanburukalo_蓴kut蓴burukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_M蓻_Zuw_Zul_Uti_S蓻t_蓴ku_Now_Des'.split('_'), + weekdays: 'Kari_Nt蓻n蓻n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Nt蓻_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + }, + calendar: { + sameDay: '[Bi l蓻r蓻] LT', + nextDay: '[Sini l蓻r蓻] LT', + nextWeek: 'dddd [don l蓻r蓻] LT', + lastDay: '[Kunu l蓻r蓻] LT', + lastWeek: 'dddd [t蓻m蓻nen l蓻r蓻] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s k蓴n蓴', + past: 'a b蓻 %s b蓴', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'l蓻r蓻 kelen', + hh: 'l蓻r蓻 %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$3 = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap$2 = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + moment.defineLocale('bn-bd', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap$2[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$3[match]; + }); + }, + + meridiemParse: /唳班唳唳唳皘唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳膏Θ唰嵿Η唰嵿Ο唳緗唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '唳班唳') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '唳唳') { + return hour; + } else if (meridiem === '唳膏唳距Σ') { + return hour; + } else if (meridiem === '唳︵唳唳') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === '唳唳曕唳') { + return hour + 12; + } else if (meridiem === '唳膏Θ唰嵿Η唰嵿Ο唳') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 6) { + return '唳唳'; + } else if (hour < 12) { + return '唳膏唳距Σ'; + } else if (hour < 15) { + return '唳︵唳唳'; + } else if (hour < 18) { + return '唳唳曕唳'; + } else if (hour < 20) { + return '唳膏Θ唰嵿Η唰嵿Ο唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$4 = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap$3 = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + moment.defineLocale('bn', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap$3[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$4[match]; + }); + }, + meridiemParse: /唳班唳唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '唳班唳' && hour >= 4) || + (meridiem === '唳︵唳唳' && hour < 5) || + meridiem === '唳唳曕唳' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 10) { + return '唳膏唳距Σ'; + } else if (hour < 17) { + return '唳︵唳唳'; + } else if (hour < 20) { + return '唳唳曕唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$5 = { + 1: '嗉', + 2: '嗉', + 3: '嗉', + 4: '嗉', + 5: '嗉', + 6: '嗉', + 7: '嗉', + 8: '嗉', + 9: '嗉', + 0: '嗉', + }, + numberMap$4 = { + '嗉': '1', + '嗉': '2', + '嗉': '3', + '嗉': '4', + '嗉': '5', + '嗉': '6', + '嗉': '7', + '嗉': '8', + '嗉': '9', + '嗉': '0', + }; + + moment.defineLocale('bo', { + months: '嘟熰境嗉嬥綎嗉嬥綉嘟勦紜嘟斷郊_嘟熰境嗉嬥綎嗉嬥絺嘟夃讲嘟︵紜嘟擾嘟熰境嗉嬥綎嗉嬥絺嘟︵酱嘟樴紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟炧讲嗉嬥綌_嘟熰境嗉嬥綎嗉嬥剑嗑斷紜嘟擾嘟熰境嗉嬥綎嗉嬥綉嗑侧酱嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟戉酱嘟撪紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟⑧緬嗑编綉嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綉嘟傕酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟呧讲嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟夃讲嘟︵紜嘟'.split( + '_' + ), + monthsShort: + '嘟熰境嗉1_嘟熰境嗉2_嘟熰境嗉3_嘟熰境嗉4_嘟熰境嗉5_嘟熰境嗉6_嘟熰境嗉7_嘟熰境嗉8_嘟熰境嗉9_嘟熰境嗉10_嘟熰境嗉11_嘟熰境嗉12'.split( + '_' + ), + monthsShortRegex: /^(嘟熰境嗉媆d{1,2})/, + monthsParseExact: true, + weekdays: + '嘟傕綗嘟犩紜嘟夃讲嗉嬥綐嗉媉嘟傕綗嘟犩紜嘟熰境嗉嬥綎嗉媉嘟傕綗嘟犩紜嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟傕綗嘟犩紜嘟`痉嘟傕紜嘟斷紜_嘟傕綗嘟犩紜嘟曕酱嘟⑧紜嘟栢酱_嘟傕綗嘟犩紜嘟斷紜嘟︵絼嘟︵紜_嘟傕綗嘟犩紜嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysShort: '嘟夃讲嗉嬥綐嗉媉嘟熰境嗉嬥綎嗉媉嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟`痉嘟傕紜嘟斷紜_嘟曕酱嘟⑧紜嘟栢酱_嘟斷紜嘟︵絼嘟︵紜_嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysMin: '嘟夃讲_嘟熰境_嘟樴讲嘟俖嘟`痉嘟俖嘟曕酱嘟嘟︵絼嘟嘟︵兢嘟亨綋'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嘟戉讲嗉嬥舰嘟侧絼] LT', + nextDay: '[嘟︵絼嗉嬥綁嘟侧綋] LT', + nextWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥舰嗑椸胶嘟︵紜嘟榏, LT', + lastDay: '[嘟佮紜嘟︵絼] LT', + lastWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥綐嘟愢綘嗉嬥綐] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嘟`紜', + past: '%s 嘟︵緮嘟撪紜嘟', + s: '嘟`綐嗉嬥溅嘟', + ss: '%d 嘟︵緪嘟⑧紜嘟嗋紞', + m: '嘟︵緪嘟⑧紜嘟樴紜嘟傕絽嘟侧絺', + mm: '%d 嘟︵緪嘟⑧紜嘟', + h: '嘟嗋酱嗉嬥綒嘟监綉嗉嬥絺嘟呧讲嘟', + hh: '%d 嘟嗋酱嗉嬥綒嘟监綉', + d: '嘟夃讲嘟撪紜嘟傕絽嘟侧絺', + dd: '%d 嘟夃讲嘟撪紜', + M: '嘟熰境嗉嬥綎嗉嬥絺嘟呧讲嘟', + MM: '%d 嘟熰境嗉嬥綎', + y: '嘟`郊嗉嬥絺嘟呧讲嘟', + yy: '%d 嘟`郊', + }, + preparse: function (string) { + return string.replace(/[嗉∴饥嗉`激嗉ム鸡嗉о绩嗉┼紶]/g, function (match) { + return numberMap$4[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$5[match]; + }); + }, + meridiemParse: /嘟樴綒嘟撪紜嘟樴郊|嘟炧郊嘟傕溅嗉嬥絸嘟嘟夃讲嘟撪紜嘟傕酱嘟剕嘟戉絺嘟监絼嗉嬥綉嘟倈嘟樴綒嘟撪紜嘟樴郊/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '嘟樴綒嘟撪紜嘟樴郊' && hour >= 4) || + (meridiem === '嘟夃讲嘟撪紜嘟傕酱嘟' && hour < 5) || + meridiem === '嘟戉絺嘟监絼嗉嬥綉嘟' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嘟樴綒嘟撪紜嘟樴郊'; + } else if (hour < 10) { + return '嘟炧郊嘟傕溅嗉嬥絸嘟'; + } else if (hour < 17) { + return '嘟夃讲嘟撪紜嘟傕酱嘟'; + } else if (hour < 20) { + return '嘟戉絺嘟监絼嗉嬥綉嘟'; + } else { + return '嘟樴綒嘟撪紜嘟樴郊'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[始\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[始\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + moment.defineLocale('br', { + months: 'Genver_C始hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_C始hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Merc始her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warc始hoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Dec始h da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s 始zo', + s: 'un nebeud segondenno霉', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(a帽|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'a帽' : 'vet'; + 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. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + moment.defineLocale('bs', { + 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( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[pro拧lu] dddd [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_mar莽_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de mar莽_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[dem脿 a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + //! moment.js locale configuration + + var months$3 = { + format: 'leden_煤nor_b艡ezen_duben_kv臎ten_膷erven_膷ervenec_srpen_z谩艡铆_艡铆jen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_煤nora_b艡ezna_dubna_kv臎tna_膷ervna_膷ervence_srpna_z谩艡铆_艡铆jna_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_煤no_b艡e_dub_kv臎_膷vn_膷vc_srp_z谩艡_艡铆j_lis_pro'.split('_'), + monthsParse$1 = [ + /^led/i, + /^煤no/i, + /^b艡e/i, + /^dub/i, + /^kv臎/i, + /^(膷vn|膷erven$|膷ervna)/i, + /^(膷vc|膷ervenec|膷ervence)/i, + /^srp/i, + /^z谩艡/i, + /^艡铆j/i, + /^lis/i, + /^pro/i, + ], + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsRegex$1 = + /^(leden|煤nor|b艡ezen|duben|kv臎ten|膷ervenec|膷ervence|膷erven|膷ervna|srpen|z谩艡铆|艡铆jen|listopad|prosinec|led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i; + + function plural$1(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate$1(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sekund' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'dny' : 'dn铆'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'm臎s铆c' : 'm臎s铆cem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'm臎s铆ce' : 'm臎s铆c暖'); + } else { + return result + 'm臎s铆ci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + moment.defineLocale('cs', { + months: months$3, + monthsShort: monthsShort, + monthsRegex: monthsRegex$1, + monthsShortRegex: monthsRegex$1, + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|煤nora|煤nor|b艡ezen|b艡ezna|duben|dubna|kv臎ten|kv臎tna|膷ervenec|膷ervence|膷erven|膷ervna|srpen|srpna|z谩艡铆|艡铆jen|艡铆jna|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i, + monthsParse: monthsParse$1, + longMonthsParse: monthsParse$1, + shortMonthsParse: monthsParse$1, + weekdays: 'ned臎le_pond臎l铆_煤ter媒_st艡eda_膷tvrtek_p谩tek_sobota'.split('_'), + weekdaysShort: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + weekdaysMin: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[z铆tra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v ned臎li v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve st艡edu v] LT'; + case 4: + return '[ve 膷tvrtek v] LT'; + case 5: + return '[v p谩tek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[v膷era v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou ned臎li v] LT'; + case 1: + case 2: + return '[minul茅] dddd [v] LT'; + case 3: + return '[minulou st艡edu v] LT'; + case 4: + case 5: + return '[minul媒] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'p艡ed %s', + s: translate$1, + ss: translate$1, + m: translate$1, + mm: translate$1, + h: translate$1, + hh: translate$1, + d: translate$1, + dd: translate$1, + M: translate$1, + MM: translate$1, + y: translate$1, + yy: translate$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('cv', { + months: '泻討褉谢邪褔_薪邪褉討褋_锌褍褕_邪泻邪_屑邪泄_耀訔褉褌屑械_褍褌討_耀褍褉谢邪_邪胁討薪_褞锌邪_褔映泻_褉邪褕褌邪胁'.split( + '_' + ), + monthsShort: '泻討褉_薪邪褉_锌褍褕_邪泻邪_屑邪泄_耀訔褉_褍褌討_耀褍褉_邪胁薪_褞锌邪_褔映泻_褉邪褕'.split('_'), + weekdays: + '胁褘褉褋邪褉薪懈泻褍薪_褌褍薪褌懈泻褍薪_褘褌谢邪褉懈泻褍薪_褞薪泻褍薪_泻訔耀薪械褉薪懈泻褍薪_褝褉薪械泻褍薪_褕討屑邪褌泻褍薪'.split( + '_' + ), + weekdaysShort: '胁褘褉_褌褍薪_褘褌谢_褞薪_泻訔耀_褝褉薪_褕討屑'.split('_'), + weekdaysMin: '胁褉_褌薪_褘褌_褞薪_泻耀_褝褉_褕屑'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔]', + LLL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + LLLL: 'dddd, YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + }, + calendar: { + sameDay: '[袩邪褟薪] LT [褋械褏械褌褉械]', + nextDay: '[蝎褉邪薪] LT [褋械褏械褌褉械]', + lastDay: '[訓薪械褉] LT [褋械褏械褌褉械]', + nextWeek: '[要懈褌械褋] dddd LT [褋械褏械褌褉械]', + lastWeek: '[袠褉褌薪訔] dddd LT [褋械褏械褌褉械]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /褋械褏械褌$/i.exec(output) + ? '褉械薪' + : /耀褍谢$/i.exec(output) + ? '褌邪薪' + : '褉邪薪'; + return output + affix; + }, + past: '%s 泻邪褟谢谢邪', + s: '锌訔褉-懈泻 耀械泻泻褍薪褌', + ss: '%d 耀械泻泻褍薪褌', + m: '锌訔褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '锌訔褉 褋械褏械褌', + hh: '%d 褋械褏械褌', + d: '锌訔褉 泻褍薪', + dd: '%d 泻褍薪', + M: '锌訔褉 褍泄討褏', + MM: '%d 褍泄討褏', + y: '锌訔褉 耀褍谢', + yy: '%d 耀褍谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-屑訔褕/, + ordinal: '%d-屑訔褕', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn 么l', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\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, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶n_man_tir_ons_tor_fre_l酶r'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'p氓 dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'f氓 sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'et 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de-at', { + months: 'J盲nner_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'J盲n._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$1(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de-ch', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$1, + mm: '%d Minuten', + h: processRelativeTime$1, + hh: '%d Stunden', + d: processRelativeTime$1, + dd: processRelativeTime$1, + w: processRelativeTime$1, + ww: '%d Wochen', + M: processRelativeTime$1, + MM: processRelativeTime$1, + y: processRelativeTime$1, + yy: processRelativeTime$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$2(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + moment.defineLocale('de', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$2, + mm: '%d Minuten', + h: processRelativeTime$2, + hh: '%d Stunden', + d: processRelativeTime$2, + dd: processRelativeTime$2, + w: processRelativeTime$2, + ww: '%d Wochen', + M: processRelativeTime$2, + MM: processRelativeTime$2, + y: processRelativeTime$2, + yy: processRelativeTime$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var months$4 = [ + '迻蕃迋蕺迖蕈迌蕞', + '迠蕃迍薨迌蕺迖蕈迌蕞', + '迚蕨迌蕤迼蕺', + '迖蕲迺薨迌蕞迧蕺', + '迚蕲', + '迻瞢迋薨', + '迻蕺迧蕈迖蕤', + '迖薤迬蕈迱薨迵蕺', + '迱蕃迺薨迵蕃迚薨迍蕈迌蕺', + '迖蕻迒薨迵薤迍蕈迌蕺', + '迋蕻迗蕃迚薨迍蕈迌蕺', + '迲蕤迱蕃迚薨迍蕈迌蕺', + ], + weekdays = [ + '迖蕨迡蕤迖薨迣蕈', + '迉薤迚蕈', + '迖蕈迋薨迬蕨迌蕈', + '迍蕺迡蕈', + '迍蕺迌蕨迱薨迠蕈迣蕤', + '迉蕺迒蕺迌蕺', + '迉蕻迋蕤迉蕤迌蕺', + ]; + + moment.defineLocale('dv', { + months: months$4, + monthsShort: months$4, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: '迖蕨迡蕤_迉薤迚蕈_迖蕈迋薨_迍蕺迡蕈_迍蕺迌蕨_迉蕺迒蕺_迉蕻迋蕤'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /迚迒|迚迠/, + isPM: function (input) { + return '迚迠' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '迚迒'; + } else { + return '迚迠'; + } + }, + calendar: { + sameDay: '[迚蕤迖蕈迡蕺] LT', + nextDay: '[迚蕨迡蕈迚蕨] LT', + nextWeek: 'dddd LT', + lastDay: '[迖蕤迖薨迶蕃] LT', + lastWeek: '[迠蕨迖蕤迣蕺迗蕤] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '迣蕃迌蕲迬蕈迖蕤 %s', + past: '迒蕺迌蕤迋薨 %s', + s: '迱蕤迒蕺迋薨迣蕺迒蕻迏蕃迖薨', + ss: 'd% 迱蕤迒蕺迋薨迣蕺', + m: '迚蕤迋蕤迵蕃迖薨', + mm: '迚蕤迋蕤迵蕺 %d', + h: '迬蕈迲蕤迖蕤迌蕃迖薨', + hh: '迬蕈迲蕤迖蕤迌蕺 %d', + d: '迡蕺迗蕈迉蕃迖薨', + dd: '迡蕺迗蕈迱薨 %d', + M: '迚蕈迉蕃迖薨', + MM: '迚蕈迱薨 %d', + y: '迖蕈迉蕈迌蕃迖薨', + yy: '迖蕈迉蕈迌蕺 %d', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + moment.defineLocale('el', { + monthsNominativeEl: + '螜伪谓慰蠀维蟻喂慰蟼_桅蔚尾蟻慰蠀维蟻喂慰蟼_螠维蟻蟿喂慰蟼_螒蟺蟻委位喂慰蟼_螠维喂慰蟼_螜慰蠉谓喂慰蟼_螜慰蠉位喂慰蟼_螒蠉纬慰蠀蟽蟿慰蟼_危蔚蟺蟿苇渭尾蟻喂慰蟼_螣魏蟿蠋尾蟻喂慰蟼_螡慰苇渭尾蟻喂慰蟼_螖蔚魏苇渭尾蟻喂慰蟼'.split( + '_' + ), + monthsGenitiveEl: + '螜伪谓慰蠀伪蟻委慰蠀_桅蔚尾蟻慰蠀伪蟻委慰蠀_螠伪蟻蟿委慰蠀_螒蟺蟻喂位委慰蠀_螠伪螑慰蠀_螜慰蠀谓委慰蠀_螜慰蠀位委慰蠀_螒蠀纬慰蠉蟽蟿慰蠀_危蔚蟺蟿蔚渭尾蟻委慰蠀_螣魏蟿蠅尾蟻委慰蠀_螡慰蔚渭尾蟻委慰蠀_螖蔚魏蔚渭尾蟻委慰蠀'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: '螜伪谓_桅蔚尾_螠伪蟻_螒蟺蟻_螠伪蠆_螜慰蠀谓_螜慰蠀位_螒蠀纬_危蔚蟺_螣魏蟿_螡慰蔚_螖蔚魏'.split('_'), + weekdays: '螝蠀蟻喂伪魏萎_螖蔚蠀蟿苇蟻伪_韦蟻委蟿畏_韦蔚蟿维蟻蟿畏_螤苇渭蟺蟿畏_螤伪蟻伪蟽魏蔚蠀萎_危维尾尾伪蟿慰'.split( + '_' + ), + weekdaysShort: '螝蠀蟻_螖蔚蠀_韦蟻喂_韦蔚蟿_螤蔚渭_螤伪蟻_危伪尾'.split('_'), + weekdaysMin: '螝蠀_螖蔚_韦蟻_韦蔚_螤蔚_螤伪_危伪'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '渭渭' : '螠螠'; + } else { + return isLower ? '蟺渭' : '螤螠'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === '渭'; + }, + meridiemParse: /[螤螠]\.?螠?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[危萎渭蔚蟻伪 {}] LT', + nextDay: '[螒蠉蟻喂慰 {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[围胃蔚蟼 {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[蟿慰 蟺蟻慰畏纬慰蠉渭蔚谓慰] dddd [{}] LT'; + default: + return '[蟿畏谓 蟺蟻慰畏纬慰蠉渭蔚谓畏] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? '蟽蟿畏' : '蟽蟿喂蟼'); + }, + relativeTime: { + future: '蟽蔚 %s', + past: '%s 蟺蟻喂谓', + s: '位委纬伪 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + ss: '%d 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + m: '苇谓伪 位蔚蟺蟿蠈', + mm: '%d 位蔚蟺蟿维', + h: '渭委伪 蠋蟻伪', + hh: '%d 蠋蟻蔚蟼', + d: '渭委伪 渭苇蟻伪', + dd: '%d 渭苇蟻蔚蟼', + M: '苇谓伪蟼 渭萎谓伪蟼', + MM: '%d 渭萎谓蔚蟼', + y: '苇谓伪蟼 蠂蟻蠈谓慰蟼', + yy: '%d 蠂蟻蠈谓喂伪', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a怒gusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_a怒g_sept_okt_nov_dec'.split('_'), + weekdays: 'diman膲o_lundo_mardo_merkredo_牡a怒do_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_牡a怒_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_牡a_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodia怒 je] LT', + nextDay: '[Morga怒 je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hiera怒 je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'anta怒 %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', 膲ar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$2 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$2 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort$1[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex$2, + monthsShortRegex: monthsRegex$2, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$2, + longMonthsParse: monthsParse$2, + shortMonthsParse: monthsParse$2, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$1 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$3 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$3 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$1; + } else if (/-MMM-/.test(format)) { + return monthsShort$2[m.month()]; + } else { + return monthsShortDot$1[m.month()]; + } + }, + monthsRegex: monthsRegex$3, + monthsShortRegex: monthsRegex$3, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$3, + longMonthsParse: monthsParse$3, + shortMonthsParse: monthsParse$3, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inv谩lida', + }); + + //! moment.js locale configuration + + var monthsShortDot$2 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$4 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$4 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$2; + } else if (/-MMM-/.test(format)) { + return monthsShort$3[m.month()]; + } else { + return monthsShortDot$2[m.month()]; + } + }, + monthsRegex: monthsRegex$4, + monthsShortRegex: monthsRegex$4, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$4, + longMonthsParse: monthsParse$4, + shortMonthsParse: monthsParse$4, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$3 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$5 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$5 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$3; + } else if (/-MMM-/.test(format)) { + return monthsShort$4[m.month()]; + } else { + return monthsShortDot$3[m.month()]; + } + }, + monthsRegex: monthsRegex$5, + monthsShortRegex: monthsRegex$5, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$5, + longMonthsParse: monthsParse$5, + shortMonthsParse: monthsParse$5, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + invalidDate: 'Fecha inv谩lida', + }); + + //! moment.js locale configuration + + function processRelativeTime$3(number, withoutSuffix, key, isFuture) { + var format = { + s: ['m玫ne sekundi', 'm玫ni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['眉he minuti', '眉ks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['眉he tunni', 'tund aega', '眉ks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['眉he p盲eva', '眉ks p盲ev'], + M: ['kuu aja', 'kuu aega', '眉ks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['眉he aasta', 'aasta', '眉ks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('et', { + months: 'jaanuar_veebruar_m盲rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_m盲rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'p眉hap盲ev_esmasp盲ev_teisip盲ev_kolmap盲ev_neljap盲ev_reede_laup盲ev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[T盲na,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[J盲rgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲rast', + past: '%s tagasi', + s: processRelativeTime$3, + ss: processRelativeTime$3, + m: processRelativeTime$3, + mm: processRelativeTime$3, + h: processRelativeTime$3, + hh: processRelativeTime$3, + d: processRelativeTime$3, + dd: '%d p盲eva', + M: processRelativeTime$3, + MM: processRelativeTime$3, + y: processRelativeTime$3, + yy: processRelativeTime$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$6 = { + 1: '郾', + 2: '鄄', + 3: '鄢', + 4: '鄞', + 5: '鄣', + 6: '鄱', + 7: '鄯', + 8: '鄹', + 9: '酃', + 0: '郯', + }, + numberMap$5 = { + '郾': '1', + '鄄': '2', + '鄢': '3', + '鄞': '4', + '鄣': '5', + '鄱': '6', + '鄯': '7', + '鄹': '8', + '酃': '9', + '郯': '0', + }; + + moment.defineLocale('fa', { + months: '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + monthsShort: + '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + weekdays: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysShort: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysMin: '蹖_丿_爻_趩_倬_噩_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /賯亘賱 丕夭 馗賴乇|亘毓丿 丕夭 馗賴乇/, + isPM: function (input) { + return /亘毓丿 丕夭 馗賴乇/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '賯亘賱 丕夭 馗賴乇'; + } else { + return '亘毓丿 丕夭 馗賴乇'; + } + }, + calendar: { + sameDay: '[丕賲乇賵夭 爻丕毓鬲] LT', + nextDay: '[賮乇丿丕 爻丕毓鬲] LT', + nextWeek: 'dddd [爻丕毓鬲] LT', + lastDay: '[丿蹖乇賵夭 爻丕毓鬲] LT', + lastWeek: 'dddd [倬蹖卮] [爻丕毓鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '丿乇 %s', + past: '%s 倬蹖卮', + s: '趩賳丿 孬丕賳蹖賴', + ss: '%d 孬丕賳蹖賴', + m: '蹖讴 丿賯蹖賯賴', + mm: '%d 丿賯蹖賯賴', + h: '蹖讴 爻丕毓鬲', + hh: '%d 爻丕毓鬲', + d: '蹖讴 乇賵夭', + dd: '%d 乇賵夭', + M: '蹖讴 賲丕賴', + MM: '%d 賲丕賴', + y: '蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string + .replace(/[郯-酃]/g, function (match) { + return numberMap$5[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$6[match]; + }) + .replace(/,/g, '貙'); + }, + dayOfMonthOrdinalParse: /\d{1,2}賲/, + ordinal: '%d賲', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme nelj盲 viisi kuusi seitsem盲n kahdeksan yhdeks盲n'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'nelj盲n', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate$2(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'p盲iv盲n' : 'p盲iv盲'; + case 'dd': + result = isFuture ? 'p盲iv盲n' : 'p盲iv盲盲'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes盲kuu_hein盲kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kes盲_hein盲_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + 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] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[t盲n盲盲n] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲盲st盲', + past: '%s sitten', + s: translate$2, + ss: translate$2, + m: translate$2, + mm: translate$2, + h: translate$2, + hh: translate$2, + d: translate$2, + dd: translate$2, + M: translate$2, + MM: translate$2, + y: translate$2, + yy: translate$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fo', { + months: 'januar_februar_mars_apr铆l_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_m谩nadagur_t媒sdagur_mikudagur_h贸sdagur_fr铆ggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_t媒s_mik_h贸s_fr铆_ley'.split('_'), + weekdaysMin: 'su_m谩_t媒_mi_h贸_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[脥 dag kl.] LT', + nextDay: '[脥 morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[脥 gj谩r kl.] LT', + lastWeek: '[s铆冒stu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s s铆冒ani', + s: 'f谩 sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein t铆mi', + hh: '%d t铆mar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein m谩na冒ur', + MM: '%d m谩na冒ir', + y: 'eitt 谩r', + yy: '%d 谩r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fr-ca', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('fr-ch', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsStrictRegex$1 = + /^(janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsShortStrictRegex$1 = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?)/i, + monthsRegex$6 = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?|janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsParse$6 = [ + /^janv/i, + /^f茅vr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^ao没t/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^d茅c/i, + ]; + + moment.defineLocale('fr', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsRegex: monthsRegex$6, + monthsShortRegex: monthsRegex$6, + monthsStrictRegex: monthsStrictRegex$1, + monthsShortStrictRegex: monthsShortStrictRegex$1, + monthsParse: monthsParse$6, + longMonthsParse: monthsParse$6, + shortMonthsParse: monthsParse$6, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[么fr没ne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien min煤t', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var months$5 = [ + 'Ean谩ir', + 'Feabhra', + 'M谩rta', + 'Aibre谩n', + 'Bealtaine', + 'Meitheamh', + 'I煤il', + 'L煤nasa', + 'Me谩n F贸mhair', + 'Deireadh F贸mhair', + 'Samhain', + 'Nollaig', + ], + monthsShort$5 = [ + 'Ean', + 'Feabh', + 'M谩rt', + 'Aib', + 'Beal', + 'Meith', + 'I煤il', + 'L煤n', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays$1 = [ + 'D茅 Domhnaigh', + 'D茅 Luain', + 'D茅 M谩irt', + 'D茅 C茅adaoin', + 'D茅ardaoin', + 'D茅 hAoine', + 'D茅 Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'M谩irt', 'C茅ad', 'D茅ar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'M谩', 'C茅', 'D茅', 'A', 'Sa']; + + moment.defineLocale('ga', { + months: months$5, + monthsShort: monthsShort$5, + monthsParseExact: true, + weekdays: weekdays$1, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Am谩rach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inn茅 ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s 贸 shin', + s: 'c煤pla soicind', + ss: '%d soicind', + m: 'n贸im茅ad', + mm: '%d n贸im茅ad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'l谩', + dd: '%d l谩', + M: 'm铆', + MM: '%d m铆onna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + //! moment.js locale configuration + + var months$6 = [ + 'Am Faoilleach', + 'An Gearran', + 'Am M脿rt', + 'An Giblean', + 'An C猫itean', + 'An t-脪gmhios', + 'An t-Iuchar', + 'An L霉nastal', + 'An t-Sultain', + 'An D脿mhair', + 'An t-Samhain', + 'An D霉bhlachd', + ], + monthsShort$6 = [ + 'Faoi', + 'Gear', + 'M脿rt', + 'Gibl', + 'C猫it', + '脪gmh', + 'Iuch', + 'L霉n', + 'Sult', + 'D脿mh', + 'Samh', + 'D霉bh', + ], + weekdays$2 = [ + 'Did貌mhnaich', + 'Diluain', + 'Dim脿irt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin$1 = ['D貌', 'Lu', 'M脿', 'Ci', 'Ar', 'Ha', 'Sa']; + + moment.defineLocale('gd', { + months: months$6, + monthsShort: monthsShort$6, + monthsParseExact: true, + weekdays: weekdays$2, + weekdaysShort: weekdaysShort$1, + weekdaysMin: weekdaysMin$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-m脿ireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-d猫 aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'm矛os', + MM: '%d m矛osan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xu帽o_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xu帽._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_m茅rcores_xoves_venres_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._m茅r._xov._ven._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_m茅_xo_ve_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextDay: function () { + return '[ma帽谩 ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? '谩' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$4(number, withoutSuffix, key, isFuture) { + var format = { + s: ['啶ム啶∴く啶 啶膏啶曕啶∴ぞ啶傕え啷', '啶ム啶∴ 啶膏啶曕啶'], + ss: [number + ' 啶膏啶曕啶∴ぞ啶傕え啷', number + ' 啶膏啶曕啶'], + m: ['啶忇啶 啶た啶`啶距え', '啶忇 啶た啶ㄠ啶'], + mm: [number + ' 啶た啶`啶距啶ㄠ', number + ' 啶た啶`啶距'], + h: ['啶忇啶 啶掂ぐ啶距え', '啶忇 啶掂ぐ'], + hh: [number + ' 啶掂ぐ啶距啶ㄠ', number + ' 啶掂ぐ啶距'], + d: ['啶忇啶 啶︵た啶膏ぞ啶', '啶忇 啶︵啶'], + dd: [number + ' 啶︵た啶膏ぞ啶傕え啷', number + ' 啶︵啶'], + M: ['啶忇啶 啶啶灌く啶ㄠ啶ぞ啶', '啶忇 啶啶灌く啶ㄠ'], + MM: [number + ' 啶啶灌く啶ㄠ啶ぞ啶ㄠ', number + ' 啶啶灌く啶ㄠ'], + y: ['啶忇啶 啶掂ぐ啷嵿じ啶距え', '啶忇 啶掂ぐ啷嵿じ'], + yy: [number + ' 啶掂ぐ啷嵿じ啶距啶ㄠ', number + ' 啶掂ぐ啷嵿じ啶距'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('gom-deva', { + months: { + standalone: + '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啷啶瞋啶_啶溹啶╛啶溹啶侧く_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + format: '啶溹ぞ啶ㄠ啶掂ぞ啶班啶氞啶ぞ_啶啶啶班啶掂ぞ啶班啶氞啶ぞ_啶ぞ啶班啶氞ぞ啶氞啶ぞ_啶忇お啷嵿ぐ啷啶侧ぞ啶氞啶ぞ_啶啶ぞ啶氞啶ぞ_啶溹啶ㄠぞ啶氞啶ぞ_啶溹啶侧く啶距啷嵿く啶綺啶戉啶膏啶熰ぞ啶氞啶ぞ_啶膏お啷嵿啷囙啶ぐ啶距啷嵿く啶綺啶戉啷嵿啷嬥が啶班ぞ啶氞啶ぞ_啶ㄠ啶掂啶灌啶傕が啶班ぞ啶氞啶ぞ_啶∴た啶膏啶傕が啶班ぞ啶氞啶ぞ'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶歘啶忇お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋く啶むぞ啶癬啶膏啶ぞ啶癬啶啶椸こ啶距ぐ_啶啶оさ啶距ぐ_啶た啶班啶膏啶むぞ啶癬啶膏啶曕啶班ぞ啶癬啶多啶ㄠさ啶距ぐ'.split('_'), + weekdaysShort: '啶嗋く啶._啶膏啶._啶啶椸こ._啶啶._啶啶班啶膏啶._啶膏啶曕啶._啶多啶.'.split('_'), + weekdaysMin: '啶哶啶膏_啶_啶_啶啶班_啶膏_啶多'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [啶掂ぞ啶溹い啶距]', + LTS: 'A h:mm:ss [啶掂ぞ啶溹い啶距]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [啶掂ぞ啶溹い啶距]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + llll: 'ddd, D MMM YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + }, + calendar: { + sameDay: '[啶嗋く啶淽 LT', + nextDay: '[啶ぞ啶侧啶ぞ啶俔 LT', + nextWeek: '[啶啶∴げ啷媇 dddd[,] LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶熰げ啷媇 dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s 啶嗋う啷啶', + s: processRelativeTime$4, + ss: processRelativeTime$4, + m: processRelativeTime$4, + mm: processRelativeTime$4, + h: processRelativeTime$4, + hh: processRelativeTime$4, + d: processRelativeTime$4, + dd: processRelativeTime$4, + M: processRelativeTime$4, + MM: processRelativeTime$4, + y: processRelativeTime$4, + yy: processRelativeTime$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}(啶掂啶)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal '啶掂啶' only applies to day of the month + case 'D': + return number + '啶掂啶'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /啶班ぞ啶む|啶膏啶距こ啷啶倈啶︵え啶ぞ啶班ぞ啶倈啶膏ぞ啶傕啷/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶む') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶距こ啷啶') { + return hour; + } else if (meridiem === '啶︵え啶ぞ啶班ぞ啶') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶傕啷') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶む'; + } else if (hour < 12) { + return '啶膏啶距こ啷啶'; + } else if (hour < 16) { + return '啶︵え啶ぞ啶班ぞ啶'; + } else if (hour < 20) { + return '啶膏ぞ啶傕啷'; + } else { + return '啶班ぞ啶む'; + } + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$5(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime$5, + ss: processRelativeTime$5, + m: processRelativeTime$5, + mm: processRelativeTime$5, + h: processRelativeTime$5, + hh: processRelativeTime$5, + d: processRelativeTime$5, + dd: processRelativeTime$5, + M: processRelativeTime$5, + MM: processRelativeTime$5, + y: processRelativeTime$5, + yy: processRelativeTime$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$7 = { + 1: '喃', + 2: '喃', + 3: '喃', + 4: '喃', + 5: '喃', + 6: '喃', + 7: '喃', + 8: '喃', + 9: '喃', + 0: '喃', + }, + numberMap$6 = { + '喃': '1', + '喃': '2', + '喃': '3', + '喃': '4', + '喃': '5', + '喃': '6', + '喃': '7', + '喃': '8', + '喃': '9', + '喃': '0', + }; + + moment.defineLocale('gu', { + months: '嗒溹嗒ㄠ珝嗒珌嗒嗋喃_嗒珖嗒珝嗒班珌嗒嗋喃_嗒嗒班珝嗒歘嗒忇喃嵿嗒苦_嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧嗒坃嗒戉獥嗒膏珝嗒焈嗒膏喃嵿獰喃囙喃嵿嗒癬嗒戉獣喃嵿獰喃嵿嗒癬嗒ㄠ喃囙喃嵿嗒癬嗒∴嗒膏珖嗒珝嗒'.split( + '_' + ), + monthsShort: + '嗒溹嗒ㄠ珝嗒珌._嗒珖嗒珝嗒班珌._嗒嗒班珝嗒歘嗒忇喃嵿嗒._嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧._嗒戉獥._嗒膏喃嵿獰喃._嗒戉獣喃嵿獰喃._嗒ㄠ喃._嗒∴嗒膏珖.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗒班嗒苦嗒距_嗒膏珛嗒嗒距_嗒獋嗒椸嗒掂嗒癬嗒珌嗒о珝嗒掂嗒癬嗒椸珌嗒班珌嗒掂嗒癬嗒多珌嗒曕珝嗒班嗒距_嗒多嗒苦嗒距'.split( + '_' + ), + weekdaysShort: '嗒班嗒縚嗒膏珛嗒甠嗒獋嗒椸_嗒珌嗒о珝_嗒椸珌嗒班珌_嗒多珌嗒曕珝嗒癬嗒多嗒'.split('_'), + weekdaysMin: '嗒癬嗒膏珛_嗒獋_嗒珌_嗒椸珌_嗒多珌_嗒'.split('_'), + longDateFormat: { + LT: 'A h:mm 嗒掂嗒椸珝嗒珖', + LTS: 'A h:mm:ss 嗒掂嗒椸珝嗒珖', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + LLLL: 'dddd, D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + }, + calendar: { + sameDay: '[嗒嗋獪] LT', + nextDay: '[嗒曕嗒侧珖] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗒椸獓嗒曕嗒侧珖] LT', + lastWeek: '[嗒嗒涏嗒綸 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗒', + past: '%s 嗒喃囙嗒', + s: '嗒呧喃佮獣 嗒喃', + ss: '%d 嗒膏珖嗒曕獋嗒', + m: '嗒忇獣 嗒嗒ㄠ嗒', + mm: '%d 嗒嗒ㄠ嗒', + h: '嗒忇獣 嗒曕嗒距獣', + hh: '%d 嗒曕嗒距獣', + d: '嗒忇獣 嗒︵嗒掂', + dd: '%d 嗒︵嗒掂', + M: '嗒忇獣 嗒嗒苦喃', + MM: '%d 嗒嗒苦喃', + y: '嗒忇獣 嗒掂喃嵿', + yy: '%d 嗒掂喃嵿', + }, + preparse: function (string) { + return string.replace(/[喃о喃┼喃喃喃]/g, function (match) { + return numberMap$6[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$7[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /嗒班嗒嗒喃嬥|嗒膏嗒距|嗒膏嗒傕獪/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗒班嗒') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒距') { + return hour; + } else if (meridiem === '嗒喃嬥') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒傕獪') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗒班嗒'; + } else if (hour < 10) { + return '嗒膏嗒距'; + } else if (hour < 17) { + return '嗒喃嬥'; + } else if (hour < 20) { + return '嗒膏嗒傕獪'; + } else { + return '嗒班嗒'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('he', { + months: '讬谞讜讗专_驻讘专讜讗专_诪专抓_讗驻专讬诇_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙讜住讟_住驻讟诪讘专_讗讜拽讟讜讘专_谞讜讘诪讘专_讚爪诪讘专'.split( + '_' + ), + monthsShort: + '讬谞讜壮_驻讘专壮_诪专抓_讗驻专壮_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙壮_住驻讟壮_讗讜拽壮_谞讜讘壮_讚爪诪壮'.split('_'), + weekdays: '专讗砖讜谉_砖谞讬_砖诇讬砖讬_专讘讬注讬_讞诪讬砖讬_砖讬砖讬_砖讘转'.split('_'), + weekdaysShort: '讗壮_讘壮_讙壮_讚壮_讛壮_讜壮_砖壮'.split('_'), + weekdaysMin: '讗_讘_讙_讚_讛_讜_砖'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [讘]MMMM YYYY', + LLL: 'D [讘]MMMM YYYY HH:mm', + LLLL: 'dddd, D [讘]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[讛讬讜诐 讘志]LT', + nextDay: '[诪讞专 讘志]LT', + nextWeek: 'dddd [讘砖注讛] LT', + lastDay: '[讗转诪讜诇 讘志]LT', + lastWeek: '[讘讬讜诐] dddd [讛讗讞专讜谉 讘砖注讛] LT', + sameElse: 'L', + }, + relativeTime: { + future: '讘注讜讚 %s', + past: '诇驻谞讬 %s', + s: '诪住驻专 砖谞讬讜转', + ss: '%d 砖谞讬讜转', + m: '讚拽讛', + mm: '%d 讚拽讜转', + h: '砖注讛', + hh: function (number) { + if (number === 2) { + return '砖注转讬讬诐'; + } + return number + ' 砖注讜转'; + }, + d: '讬讜诐', + dd: function (number) { + if (number === 2) { + return '讬讜诪讬讬诐'; + } + return number + ' 讬诪讬诐'; + }, + M: '讞讜讚砖', + MM: function (number) { + if (number === 2) { + return '讞讜讚砖讬讬诐'; + } + return number + ' 讞讜讚砖讬诐'; + }, + y: '砖谞讛', + yy: function (number) { + if (number === 2) { + return '砖谞转讬讬诐'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' 砖谞讛'; + } + return number + ' 砖谞讬诐'; + }, + }, + meridiemParse: + /讗讞讛"爪|诇驻谞讛"爪|讗讞专讬 讛爪讛专讬讬诐|诇驻谞讬 讛爪讛专讬讬诐|诇驻谞讜转 讘讜拽专|讘讘讜拽专|讘注专讘/i, + isPM: function (input) { + return /^(讗讞讛"爪|讗讞专讬 讛爪讛专讬讬诐|讘注专讘)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return '诇驻谞讜转 讘讜拽专'; + } else if (hour < 10) { + return '讘讘讜拽专'; + } else if (hour < 12) { + return isLower ? '诇驻谞讛"爪' : '诇驻谞讬 讛爪讛专讬讬诐'; + } else if (hour < 18) { + return isLower ? '讗讞讛"爪' : '讗讞专讬 讛爪讛专讬讬诐'; + } else { + return '讘注专讘'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$8 = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$7 = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }, + monthsParse$7 = [ + /^啶溹え/i, + /^啶ぜ啶皘啶ぐ/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶む|啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ|啶ㄠさ啶/i, + /^啶︵た啶膏|啶︵た啶/i, + ], + shortMonthsParse = [ + /^啶溹え/i, + /^啶ぜ啶/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ/i, + /^啶︵た啶/i, + ]; + + moment.defineLocale('hi', { + months: { + format: '啶溹え啶掂ぐ啷_啶ぜ啶班さ啶班_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶むぎ啷嵿が啶癬啶呧啷嵿啷傕が啶癬啶ㄠさ啶啶ぐ_啶︵た啶膏ぎ啷嵿が啶'.split( + '_' + ), + standalone: + '啶溹え啶掂ぐ啷_啶ぐ啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶む啶ぐ_啶呧啷嵿啷傕が啶癬啶ㄠさ啶傕が啶癬啶︵た啶膏啶ぐ'.split( + '_' + ), + }, + monthsShort: + '啶溹え._啶ぜ啶._啶ぞ啶班啶歘啶呧お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶呧._啶膏た啶._啶呧啷嵿啷._啶ㄠさ._啶︵た啶.'.split('_'), + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸げ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸げ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶啷', + LTS: 'A h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶啷', + }, + + monthsParse: monthsParse$7, + longMonthsParse: monthsParse$7, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsShortRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsStrictRegex: + /^(啶溹え啶掂ぐ啷?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ?|啶?|啶溹啶?|啶溹啶侧ぞ啶?|啶呧啶膏啶?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶?\.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ?)/i, + + monthsShortStrictRegex: + /^(啶溹え\.?|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶瞈.?|啶呧\.?|啶膏た啶.?|啶呧啷嵿啷俓.?|啶ㄠさ\.?|啶︵た啶竆.?)/i, + + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶曕げ] LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕げ] LT', + lastWeek: '[啶た啶涏げ啷嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啶啶', + past: '%s 啶す啶侧', + s: '啶曕啶 啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶', + m: '啶忇 啶た啶ㄠ', + mm: '%d 啶た啶ㄠ', + h: '啶忇 啶樴啶熰ぞ', + hh: '%d 啶樴啶熰', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啷啶ㄠ', + MM: '%d 啶す啷啶ㄠ', + y: '啶忇 啶掂ぐ啷嵿し', + yy: '%d 啶掂ぐ啷嵿し', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$7[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$8[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /啶班ぞ啶啶膏啶す|啶︵啶す啶皘啶多ぞ啶/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶す') { + return hour; + } else if (meridiem === '啶︵啶す啶') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶多ぞ啶') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶'; + } else if (hour < 10) { + return '啶膏啶す'; + } else if (hour < 17) { + return '啶︵啶す啶'; + } else if (hour < 20) { + return '啶多ぞ啶'; + } else { + return '啶班ぞ啶'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function translate$3(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + moment.defineLocale('hr', { + months: { + format: 'sije膷nja_velja膷e_o啪ujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'sije膷anj_velja膷a_o啪ujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._o啪u._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[pro拧lu] [nedjelju] [u] LT'; + case 3: + return '[pro拧lu] [srijedu] [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate$3, + m: translate$3, + mm: translate$3, + h: translate$3, + hh: translate$3, + d: 'dan', + dd: translate$3, + M: 'mjesec', + MM: translate$3, + y: 'godinu', + yy: translate$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var weekEndings = + 'vas谩rnap h茅tf艖n kedden szerd谩n cs眉t枚rt枚k枚n p茅nteken szombaton'.split(' '); + function translate$4(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'n茅h谩ny m谩sodperc' + : 'n茅h谩ny m谩sodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' m谩sodperc' + : ' m谩sodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[m煤lt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + moment.defineLocale('hu', { + months: 'janu谩r_febru谩r_m谩rcius_谩prilis_m谩jus_j煤nius_j煤lius_augusztus_szeptember_okt贸ber_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._m谩rc._谩pr._m谩j._j煤n._j煤l._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vas谩rnap_h茅tf艖_kedd_szerda_cs眉t枚rt枚k_p茅ntek_szombat'.split('_'), + weekdaysShort: 'vas_h茅t_kedd_sze_cs眉t_p茅n_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s m煤lva', + past: '%s', + s: translate$4, + ss: translate$4, + m: translate$4, + mm: translate$4, + h: translate$4, + hh: translate$4, + d: translate$4, + dd: translate$4, + M: translate$4, + MM: translate$4, + y: translate$4, + yy: translate$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('hy-am', { + months: { + format: '瞻崭謧斩站铡謤斋_謨榨湛謤站铡謤斋_沾铡謤湛斋_铡蘸謤斋宅斋_沾铡盏斋战斋_瞻崭謧斩斋战斋_瞻崭謧宅斋战斋_謪眨崭战湛崭战斋_战榨蘸湛榨沾闸榨謤斋_瞻崭寨湛榨沾闸榨謤斋_斩崭盏榨沾闸榨謤斋_栅榨寨湛榨沾闸榨謤斋'.split( + '_' + ), + standalone: + '瞻崭謧斩站铡謤_謨榨湛謤站铡謤_沾铡謤湛_铡蘸謤斋宅_沾铡盏斋战_瞻崭謧斩斋战_瞻崭謧宅斋战_謪眨崭战湛崭战_战榨蘸湛榨沾闸榨謤_瞻崭寨湛榨沾闸榨謤_斩崭盏榨沾闸榨謤_栅榨寨湛榨沾闸榨謤'.split( + '_' + ), + }, + monthsShort: '瞻斩站_謨湛謤_沾謤湛_铡蘸謤_沾盏战_瞻斩战_瞻宅战_謪眨战_战蘸湛_瞻寨湛_斩沾闸_栅寨湛'.split('_'), + weekdays: + '寨斋謤铡寨斋_榨謤寨崭謧辗铡闸诈斋_榨謤榨謩辗铡闸诈斋_展崭謤榨謩辗铡闸诈斋_瞻斋斩眨辗铡闸诈斋_崭謧謤闸铡诈_辗铡闸铡诈'.split( + '_' + ), + weekdaysShort: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + weekdaysMin: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 诈.', + LLL: 'D MMMM YYYY 诈., HH:mm', + LLLL: 'dddd, D MMMM YYYY 诈., HH:mm', + }, + calendar: { + sameDay: '[铡盏战謪謤] LT', + nextDay: '[站铡詹炸] LT', + lastDay: '[榨謤榨寨] LT', + nextWeek: function () { + return 'dddd [謪謤炸 摘铡沾炸] LT'; + }, + lastWeek: function () { + return '[铡斩謥铡债] dddd [謪謤炸 摘铡沾炸] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s 瞻榨湛崭', + past: '%s 铡占铡栈', + s: '沾斋 謩铡斩斋 站铡盏謤寨盏铡斩', + ss: '%d 站铡盏謤寨盏铡斩', + m: '謤崭蘸榨', + mm: '%d 謤崭蘸榨', + h: '摘铡沾', + hh: '%d 摘铡沾', + d: '謪謤', + dd: '%d 謪謤', + M: '铡沾斋战', + MM: '%d 铡沾斋战', + y: '湛铡謤斋', + yy: '%d 湛铡謤斋', + }, + meridiemParse: /眨斋辗榨謤站铡|铡占铡站崭湛站铡|謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩/, + isPM: function (input) { + return /^(謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return '眨斋辗榨謤站铡'; + } else if (hour < 12) { + return '铡占铡站崭湛站铡'; + } else if (hour < 17) { + return '謥榨謤榨寨站铡'; + } else { + return '榨謤榨寨崭盏铡斩'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(斋斩|謤栅)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-斋斩'; + } + return number + '-謤栅'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$2(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate$5(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sek煤ndur' + : 'nokkrum sek煤ndum'; + case 'ss': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sek煤ndur' : 'sek煤ndum') + ); + } + return result + 'sek煤nda'; + case 'm': + return withoutSuffix ? 'm铆n煤ta' : 'm铆n煤tu'; + case 'mm': + if (plural$2(number)) { + return ( + result + (withoutSuffix || isFuture ? 'm铆n煤tur' : 'm铆n煤tum') + ); + } else if (withoutSuffix) { + return result + 'm铆n煤ta'; + } + return result + 'm铆n煤tu'; + case 'hh': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'd枚gum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'm谩nu冒ur'; + } + return isFuture ? 'm谩nu冒' : 'm谩nu冒i'; + case 'MM': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'm谩nu冒ir'; + } + return result + (isFuture ? 'm谩nu冒i' : 'm谩nu冒um'); + } else if (withoutSuffix) { + return result + 'm谩nu冒ur'; + } + return result + (isFuture ? 'm谩nu冒' : 'm谩nu冒i'); + case 'y': + return withoutSuffix || isFuture ? '谩r' : '谩ri'; + case 'yy': + if (plural$2(number)) { + return result + (withoutSuffix || isFuture ? '谩r' : '谩rum'); + } + return result + (withoutSuffix || isFuture ? '谩r' : '谩ri'); + } + } + + moment.defineLocale('is', { + months: 'jan煤ar_febr煤ar_mars_apr铆l_ma铆_j煤n铆_j煤l铆_谩g煤st_september_okt贸ber_n贸vember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_ma铆_j煤n_j煤l_谩g煤_sep_okt_n贸v_des'.split('_'), + weekdays: + 'sunnudagur_m谩nudagur_镁ri冒judagur_mi冒vikudagur_fimmtudagur_f枚studagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_镁ri_mi冒_fim_f枚s_lau'.split('_'), + weekdaysMin: 'Su_M谩_脼r_Mi_Fi_F枚_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[铆 dag kl.] LT', + nextDay: '[谩 morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[铆 g忙r kl.] LT', + lastWeek: '[s铆冒asta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s s铆冒an', + s: translate$5, + ss: translate$5, + m: translate$5, + mm: translate$5, + h: 'klukkustund', + hh: translate$5, + d: translate$5, + dd: translate$5, + M: translate$5, + MM: translate$5, + y: translate$5, + yy: translate$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri 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: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '浠ゅ拰', + narrow: '銒', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '骞虫垚', + narrow: '銔', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '鏄拰', + narrow: '銔', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '澶ф', + narrow: '銔', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '鏄庢不', + narrow: '銔', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '瑗挎殾', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '绱鍏冨墠', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(鍏億\d+)骞/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '鍏' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split('_'), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏃ユ洔鏃鏈堟洔鏃鐏洔鏃姘存洔鏃鏈ㄦ洔鏃閲戞洔鏃鍦熸洔鏃'.split('_'), + weekdaysShort: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + weekdaysMin: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃(ddd) HH:mm', + }, + meridiemParse: /鍗堝墠|鍗堝緦/i, + isPM: function (input) { + return input === '鍗堝緦'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '鍗堝墠'; + } else { + return '鍗堝緦'; + } + }, + calendar: { + sameDay: '[浠婃棩] LT', + nextDay: '[鏄庢棩] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[鏉ラ盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[鏄ㄦ棩] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[鍏堥盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}鏃/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '鍏冨勾' : number + '骞'; + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '鏁扮', + ss: '%d绉', + m: '1鍒', + mm: '%d鍒', + h: '1鏅傞枔', + hh: '%d鏅傞枔', + d: '1鏃', + dd: '%d鏃', + M: '1銉舵湀', + MM: '%d銉舵湀', + y: '1骞', + yy: '%d骞', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ka', { + months: '醿樶儛醿溼儠醿愥儬醿榑醿椺償醿戓償醿犪儠醿愥儦醿榑醿涐儛醿犪儮醿榑醿愥優醿犪儤醿氠儤_醿涐儛醿樶儭醿榑醿樶儠醿溼儤醿♂儤_醿樶儠醿氠儤醿♂儤_醿愥儝醿曖儤醿♂儮醿漘醿♂償醿メ儮醿斸儧醿戓償醿犪儤_醿濁儱醿⑨儩醿涐儜醿斸儬醿榑醿溼儩醿斸儧醿戓償醿犪儤_醿撫償醿欋償醿涐儜醿斸儬醿'.split( + '_' + ), + monthsShort: '醿樶儛醿淿醿椺償醿慱醿涐儛醿燺醿愥優醿燺醿涐儛醿榑醿樶儠醿淿醿樶儠醿歘醿愥儝醿昣醿♂償醿醿濁儱醿醿溼儩醿擾醿撫償醿'.split('_'), + weekdays: { + standalone: + '醿欋儠醿樶儬醿恄醿濁儬醿ㄡ儛醿戓儛醿椺儤_醿♂儛醿涐儴醿愥儜醿愥儣醿榑醿濁儣醿儴醿愥儜醿愥儣醿榑醿儯醿椺儴醿愥儜醿愥儣醿榑醿炨儛醿犪儛醿♂儥醿斸儠醿榑醿ㄡ儛醿戓儛醿椺儤'.split( + '_' + ), + format: '醿欋儠醿樶儬醿愥儭_醿濁儬醿ㄡ儛醿戓儛醿椺儭_醿♂儛醿涐儴醿愥儜醿愥儣醿醿濁儣醿儴醿愥儜醿愥儣醿醿儯醿椺儴醿愥儜醿愥儣醿醿炨儛醿犪儛醿♂儥醿斸儠醿醿ㄡ儛醿戓儛醿椺儭'.split( + '_' + ), + isFormat: /(醿儤醿溼儛|醿ㄡ償醿涐儞醿斸儝)/, + }, + weekdaysShort: '醿欋儠醿榑醿濁儬醿╛醿♂儛醿沖醿濁儣醿甠醿儯醿梍醿炨儛醿燺醿ㄡ儛醿'.split('_'), + weekdaysMin: '醿欋儠_醿濁儬_醿♂儛_醿濁儣_醿儯_醿炨儛_醿ㄡ儛'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醿撫儲醿斸儭] LT[-醿栣償]', + nextDay: '[醿儠醿愥儦] LT[-醿栣償]', + lastDay: '[醿掅儯醿ㄡ儤醿淽 LT[-醿栣償]', + nextWeek: '[醿ㄡ償醿涐儞醿斸儝] dddd LT[-醿栣償]', + lastWeek: '[醿儤醿溼儛] dddd LT-醿栣償', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(醿儛醿泑醿儯醿梶醿♂儛醿愥儣|醿償醿殀醿撫儲|醿椺儠)(醿榺醿)/, + function ($0, $1, $2) { + return $2 === '醿' ? $1 + '醿ㄡ儤' : $1 + $2 + '醿ㄡ儤'; + } + ); + }, + past: function (s) { + if (/(醿儛醿涐儤|醿儯醿椺儤|醿♂儛醿愥儣醿榺醿撫儲醿攟醿椺儠醿)/.test(s)) { + return s.replace(/(醿榺醿)$/, '醿樶儭 醿儤醿'); + } + if (/醿償醿氠儤/.test(s)) { + return s.replace(/醿償醿氠儤$/, '醿儦醿樶儭 醿儤醿'); + } + return s; + }, + s: '醿犪儛醿涐儞醿斸儨醿樶儧醿 醿儛醿涐儤', + ss: '%d 醿儛醿涐儤', + m: '醿儯醿椺儤', + mm: '%d 醿儯醿椺儤', + h: '醿♂儛醿愥儣醿', + hh: '%d 醿♂儛醿愥儣醿', + d: '醿撫儲醿', + dd: '%d 醿撫儲醿', + M: '醿椺儠醿', + MM: '%d 醿椺儠醿', + y: '醿償醿氠儤', + yy: '%d 醿償醿氠儤', + }, + dayOfMonthOrdinalParse: /0|1-醿氠儤|醿涐償-\d{1,2}|\d{1,2}-醿/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-醿氠儤'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return '醿涐償-' + number; + } + return number + '-醿'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + //! moment.js locale configuration + + var suffixes$1 = { + 0: '-褕褨', + 1: '-褕褨', + 2: '-褕褨', + 3: '-褕褨', + 4: '-褕褨', + 5: '-褕褨', + 6: '-褕褘', + 7: '-褕褨', + 8: '-褕褨', + 9: '-褕褘', + 10: '-褕褘', + 20: '-褕褘', + 30: '-褕褘', + 40: '-褕褘', + 50: '-褕褨', + 60: '-褕褘', + 70: '-褕褨', + 80: '-褕褨', + 90: '-褕褘', + 100: '-褕褨', + }; + + moment.defineLocale('kk', { + months: '覜邪遥褌邪褉_邪覜锌邪薪_薪邪褍褉褘蟹_褋訖褍褨褉_屑邪屑褘褉_屑邪褍褋褘屑_褕褨谢写械_褌邪屑褘蟹_覜褘褉泻爷泄械泻_覜邪蟹邪薪_覜邪褉邪褕邪_卸械谢褌芯覜褋邪薪'.split( + '_' + ), + monthsShort: '覜邪遥_邪覜锌_薪邪褍_褋訖褍_屑邪屑_屑邪褍_褕褨谢_褌邪屑_覜褘褉_覜邪蟹_覜邪褉_卸械谢'.split('_'), + weekdays: '卸械泻褋械薪斜褨_写爷泄褋械薪斜褨_褋械泄褋械薪斜褨_褋訖褉褋械薪斜褨_斜械泄褋械薪斜褨_卸冶屑邪_褋械薪斜褨'.split( + '_' + ), + weekdaysShort: '卸械泻_写爷泄_褋械泄_褋訖褉_斜械泄_卸冶屑_褋械薪'.split('_'), + weekdaysMin: '卸泻_写泄_褋泄_褋褉_斜泄_卸屑_褋薪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐褨薪 褋邪覔邪褌] LT', + nextDay: '[袝褉褌械遥 褋邪覔邪褌] LT', + nextWeek: 'dddd [褋邪覔邪褌] LT', + lastDay: '[袣械褕械 褋邪覔邪褌] LT', + lastWeek: '[莹褌泻械薪 邪锌褌邪薪褘遥] dddd [褋邪覔邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 褨褕褨薪写械', + past: '%s 斜冶褉褘薪', + s: '斜褨褉薪械褕械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜褨褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '斜褨褉 褋邪覔邪褌', + hh: '%d 褋邪覔邪褌', + d: '斜褨褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜褨褉 邪泄', + MM: '%d 邪泄', + y: '斜褨褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褕褨|褕褘)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$9 = { + 1: '釤', + 2: '釤', + 3: '釤', + 4: '釤', + 5: '釤', + 6: '釤', + 7: '釤', + 8: '釤', + 9: '釤', + 0: '釤', + }, + numberMap$8 = { + '釤': '1', + '釤': '2', + '釤': '3', + '釤': '4', + '釤': '5', + '釤': '6', + '釤': '7', + '釤': '8', + '釤': '9', + '釤': '0', + }; + + moment.defineLocale('km', { + months: '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + monthsShort: + '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + weekdays: '釣⑨灦釣戓灧釣忈煉釣檁釣呩煇釣撫煉釣慱釣⑨瀯釤掅瀭釣夺灇_釣栣灮釣抇釣栣煉釣氠灎釣熱煉釣斸瀼釣丰煃_釣熱灮釣釤掅灇_釣熱焻釣氠煃'.split('_'), + weekdaysShort: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysMin: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /釣栣煉釣氠灩釣|釣涐煉釣勧灦釣/, + isPM: function (input) { + return input === '釣涐煉釣勧灦釣'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '釣栣煉釣氠灩釣'; + } else { + return '釣涐煉釣勧灦釣'; + } + }, + calendar: { + sameDay: '[釣愥煉釣勧焹釣撫焷釤 釣樶焿釤勧瀯] LT', + nextDay: '[釣熱煉釣⑨焸釣 釣樶焿釤勧瀯] LT', + nextWeek: 'dddd [釣樶焿釤勧瀯] LT', + lastDay: '[釣樶煉釣熱灧釣涐灅釣丰瀴 釣樶焿釤勧瀯] LT', + lastWeek: 'dddd [釣熱灁釤掅瀼釣夺灎釤嶀灅釣会灀] [釣樶焿釤勧瀯] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s釣戓焵釣', + past: '%s釣樶灮釣', + s: '釣斸焿釣会灀釤掅灅釣夺灀釣溼灧釣撫灦釣戓灨', + ss: '%d 釣溼灧釣撫灦釣戓灨', + m: '釣樶灲釣欋灀釣夺瀾釣', + mm: '%d 釣撫灦釣戓灨', + h: '釣樶灲釣欋灅釤夅焺釣', + hh: '%d 釣樶焿釤勧瀯', + d: '釣樶灲釣欋瀽釤掅瀯釤', + dd: '%d 釣愥煉釣勧焹', + M: '釣樶灲釣欋瀬釤', + MM: '%d 釣佱焸', + y: '釣樶灲釣欋瀱釤掅灀釣夺焼', + yy: '%d 釣嗎煉釣撫灦釤', + }, + dayOfMonthOrdinalParse: /釣戓灨\d{1,2}/, + ordinal: '釣戓灨%d', + preparse: function (string) { + return string.replace(/[釤♂煝釤a煠釤メ煢釤п煥釤┽煚]/g, function (match) { + return numberMap$8[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$9[match]; + }); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$a = { + 1: '喑', + 2: '喑', + 3: '喑', + 4: '喑', + 5: '喑', + 6: '喑', + 7: '喑', + 8: '喑', + 9: '喑', + 0: '喑', + }, + numberMap$9 = { + '喑': '1', + '喑': '2', + '喑': '3', + '喑': '4', + '喑': '5', + '喑': '6', + '喑': '7', + '喑': '8', + '喑': '9', + '喑': '0', + }; + + moment.defineLocale('kn', { + months: '嗖溹波嗖掂舶嗖縚嗖硢嗖硩嗖班驳嗖班部_嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖傕铂嗖班硩_嗖呧矔喑嵿矡喑嗋硞喑曕铂嗖班硩_嗖ㄠ驳喑嗋矀嗖舶喑峗嗖∴部嗖膏硢嗖傕铂嗖班硩'.split( + '_' + ), + monthsShort: + '嗖溹波_嗖硢嗖硩嗖癬嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖俖嗖呧矔喑嵿矡喑嗋硞喑昣嗖ㄠ驳喑嗋矀_嗖∴部嗖膏硢嗖'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗖簿嗖ㄠ硜嗖掂簿嗖癬嗖膏硢喑傕硶嗖驳嗖距舶_嗖矀嗖椸渤嗖掂簿嗖癬嗖硜嗖о驳嗖距舶_嗖椸硜嗖班硜嗖掂簿嗖癬嗖多硜嗖曕硩嗖班驳嗖距舶_嗖多波嗖苦驳嗖距舶'.split( + '_' + ), + weekdaysShort: '嗖簿嗖ㄠ硜_嗖膏硢喑傕硶嗖甠嗖矀嗖椸渤_嗖硜嗖嗖椸硜嗖班硜_嗖多硜嗖曕硩嗖癬嗖多波嗖'.split('_'), + weekdaysMin: '嗖簿_嗖膏硢喑傕硶_嗖矀_嗖硜_嗖椸硜_嗖多硜_嗖'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嗖囙矀嗖︵硜] LT', + nextDay: '[嗖ㄠ簿嗖赤硢] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗖ㄠ部嗖ㄠ硩嗖ㄠ硢] LT', + lastWeek: '[嗖曕硢喑傕波喑嗋帛] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗖ㄠ矀嗖む舶', + past: '%s 嗖灌部嗖傕拨喑', + s: '嗖曕硢嗖侧驳喑 嗖曕硩嗖粪玻嗖椸渤喑', + ss: '%d 嗖膏硢嗖曕硢嗖傕病喑佮矖嗖赤硜', + m: '嗖掄矀嗖︵硜 嗖ㄠ部嗖部嗖', + mm: '%d 嗖ㄠ部嗖部嗖', + h: '嗖掄矀嗖︵硜 嗖椸矀嗖熰硢', + hh: '%d 嗖椸矀嗖熰硢', + d: '嗖掄矀嗖︵硜 嗖︵部嗖', + dd: '%d 嗖︵部嗖', + M: '嗖掄矀嗖︵硜 嗖む部嗖傕矖嗖赤硜', + MM: '%d 嗖む部嗖傕矖嗖赤硜', + y: '嗖掄矀嗖︵硜 嗖掂舶喑嵿卜', + yy: '%d 嗖掂舶喑嵿卜', + }, + preparse: function (string) { + return string.replace(/[喑о敞喑┼唱喑超喑钞喑肠]/g, function (match) { + return numberMap$9[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$a[match]; + }); + }, + meridiemParse: /嗖班簿嗖む硩嗖班部|嗖硢嗖赤部嗖椸硩嗖椸硢|嗖钵喑嵿帛嗖距补喑嵿波|嗖膏矀嗖溹硢/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗖班簿嗖む硩嗖班部') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗖硢嗖赤部嗖椸硩嗖椸硢') { + return hour; + } else if (meridiem === '嗖钵喑嵿帛嗖距补喑嵿波') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗖膏矀嗖溹硢') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗖班簿嗖む硩嗖班部'; + } else if (hour < 10) { + return '嗖硢嗖赤部嗖椸硩嗖椸硢'; + } else if (hour < 17) { + return '嗖钵喑嵿帛嗖距补喑嵿波'; + } else if (hour < 20) { + return '嗖膏矀嗖溹硢'; + } else { + return '嗖班簿嗖む硩嗖班部'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(嗖ㄠ硢喑)/, + ordinal: function (number) { + return number + '嗖ㄠ硢喑'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ko', { + months: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split('_'), + monthsShort: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split( + '_' + ), + weekdays: '鞚检殧鞚糭鞗旍殧鞚糭頇旍殧鞚糭靾橃殧鞚糭氇╈殧鞚糭旮堨殧鞚糭韱犾殧鞚'.split('_'), + weekdaysShort: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + weekdaysMin: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY雲 MMMM D鞚', + LLL: 'YYYY雲 MMMM D鞚 A h:mm', + LLLL: 'YYYY雲 MMMM D鞚 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY雲 MMMM D鞚', + lll: 'YYYY雲 MMMM D鞚 A h:mm', + llll: 'YYYY雲 MMMM D鞚 dddd A h:mm', + }, + calendar: { + sameDay: '鞓る姌 LT', + nextDay: '雮挫澕 LT', + nextWeek: 'dddd LT', + lastDay: '鞏挫牅 LT', + lastWeek: '歆雮滌< dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 頉', + past: '%s 鞝', + s: '氇 齑', + ss: '%d齑', + m: '1攵', + mm: '%d攵', + h: '頃 鞁滉皠', + hh: '%d鞁滉皠', + d: '頃橂(', + dd: '%d鞚', + M: '頃 雼', + MM: '%d雼', + y: '鞚 雲', + yy: '%d雲', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鞚紎鞗攟欤)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鞚'; + case 'M': + return number + '鞗'; + case 'w': + case 'W': + return number + '欤'; + default: + return number; + } + }, + meridiemParse: /鞓れ爠|鞓ろ泟/, + isPM: function (token) { + return token === '鞓ろ泟'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '鞓れ爠' : '鞓ろ泟'; + }, + }); + + //! moment.js locale configuration + + var symbolMap$b = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap$a = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + months$7 = [ + '讴丕賳賵賳蹖 丿賵賵蹠賲', + '卮賵亘丕鬲', + '卅丕夭丕乇', + '賳蹖爻丕賳', + '卅丕蹖丕乇', + '丨賵夭蹠蹖乇丕賳', + '鬲蹠賲賲賵夭', + '卅丕亘', + '卅蹠蹖賱賵賵賱', + '鬲卮乇蹖賳蹖 蹖蹠賰蹠賲', + '鬲卮乇蹖賳蹖 丿賵賵蹠賲', + '賰丕賳賵賳蹖 蹖蹠讴蹠賲', + ]; + + moment.defineLocale('ku', { + months: months$7, + monthsShort: months$7, + weekdays: + '蹖賴鈥屬冐促団屬呝呝団宊丿賵賵卮賴鈥屬呝呝団宊爻蹘卮賴鈥屬呝呝団宊趩賵丕乇卮賴鈥屬呝呝団宊倬蹘賳噩卮賴鈥屬呝呝団宊賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split( + '_' + ), + weekdaysShort: + '蹖賴鈥屬冐促団屬卂丿賵賵卮賴鈥屬卂爻蹘卮賴鈥屬卂趩賵丕乇卮賴鈥屬卂倬蹘賳噩卮賴鈥屬卂賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split('_'), + weekdaysMin: '蹖_丿_爻_趩_倬_賴_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /卅蹘賵丕乇賴鈥寍亘賴鈥屰屫з嗃/, + isPM: function (input) { + return /卅蹘賵丕乇賴鈥/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '亘賴鈥屰屫з嗃'; + } else { + return '卅蹘賵丕乇賴鈥'; + } + }, + calendar: { + sameDay: '[卅賴鈥屬呚臂 賰丕鬲跇賲蹘乇] LT', + nextDay: '[亘賴鈥屰屫з嗃 賰丕鬲跇賲蹘乇] LT', + nextWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + lastDay: '[丿賵蹘賳蹘 賰丕鬲跇賲蹘乇] LT', + lastWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賱賴鈥 %s', + past: '%s', + s: '趩賴鈥屬嗀 趩乇賰賴鈥屰屬団屬', + ss: '趩乇賰賴鈥 %d', + m: '蹖賴鈥屬 禺賵賱賴鈥屬', + mm: '%d 禺賵賱賴鈥屬', + h: '蹖賴鈥屬 賰丕鬲跇賲蹘乇', + hh: '%d 賰丕鬲跇賲蹘乇', + d: '蹖賴鈥屬 跁蹎跇', + dd: '%d 跁蹎跇', + M: '蹖賴鈥屬 賲丕賳诏', + MM: '%d 賲丕賳诏', + y: '蹖賴鈥屬 爻丕诘', + yy: '%d 爻丕诘', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap$a[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$b[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$2 = { + 0: '-褔爷', + 1: '-褔懈', + 2: '-褔懈', + 3: '-褔爷', + 4: '-褔爷', + 5: '-褔懈', + 6: '-褔褘', + 7: '-褔懈', + 8: '-褔懈', + 9: '-褔褍', + 10: '-褔褍', + 20: '-褔褘', + 30: '-褔褍', + 40: '-褔褘', + 50: '-褔爷', + 60: '-褔褘', + 70: '-褔懈', + 80: '-褔懈', + 90: '-褔褍', + 100: '-褔爷', + }; + + moment.defineLocale('ky', { + months: '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉褌_邪锌褉_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split( + '_' + ), + weekdays: '袞械泻褕械屑斜懈_袛爷泄褕萤屑斜爷_楔械泄褕械屑斜懈_楔邪褉褕械屑斜懈_袘械泄褕械屑斜懈_袞褍屑邪_袠褕械屑斜懈'.split( + '_' + ), + weekdaysShort: '袞械泻_袛爷泄_楔械泄_楔邪褉_袘械泄_袞褍屑_袠褕械'.split('_'), + weekdaysMin: '袞泻_袛泄_楔泄_楔褉_袘泄_袞屑_袠褕'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐爷薪 褋邪邪褌] LT', + nextDay: '[协褉褌械遥 褋邪邪褌] LT', + nextWeek: 'dddd [褋邪邪褌] LT', + lastDay: '[袣械褔褝褝 褋邪邪褌] LT', + lastWeek: '[莹褌泻萤薪 邪锌褌邪薪褘薪] dddd [泻爷薪爷] [褋邪邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 懈褔懈薪写械', + past: '%s 屑褍褉褍薪', + s: '斜懈褉薪械褔械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜懈褉 屑爷薪萤褌', + mm: '%d 屑爷薪萤褌', + h: '斜懈褉 褋邪邪褌', + hh: '%d 褋邪邪褌', + d: '斜懈褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜懈褉 邪泄', + MM: '%d 邪泄', + y: '斜懈褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褔懈|褔褘|褔爷|褔褍)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$6(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + moment.defineLocale('lb', { + months: 'Januar_Februar_M盲erz_Abr毛ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_M茅indeg_D毛nschdeg_M毛ttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._M茅._D毛._M毛._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_M茅_D毛_M毛_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[G毛schter um] LT', + lastWeek: function () { + // Different date string for 'D毛nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime$6, + mm: '%d Minutten', + h: processRelativeTime$6, + hh: '%d Stonnen', + d: processRelativeTime$6, + dd: '%d Deeg', + M: processRelativeTime$6, + MM: '%d M茅int', + y: processRelativeTime$6, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('lo', { + months: '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + monthsShort: + '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + weekdays: '嗪翰嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysShort: '嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysMin: '嗪梍嗪坃嗪簞_嗪瀇嗪炧韩_嗪簛_嗪'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: '嗪о罕嗪檇ddd D MMMM YYYY HH:mm', + }, + meridiemParse: /嗪曕涵嗪權粈嗪娻夯嗷夃翰|嗪曕涵嗪權粊嗪ム簢/, + isPM: function (input) { + return input === '嗪曕涵嗪權粊嗪ム簢'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '嗪曕涵嗪權粈嗪娻夯嗷夃翰'; + } else { + return '嗪曕涵嗪權粊嗪ム簢'; + } + }, + calendar: { + sameDay: '[嗪∴悍嗷夃簷嗪掂粔嗷嗪о亥嗪瞉 LT', + nextDay: '[嗪∴悍嗷夃涵嗪粪粓嗪權粈嗪о亥嗪瞉 LT', + nextWeek: '[嗪о罕嗪橾dddd[嗷溹粔嗪侧粈嗪о亥嗪瞉 LT', + lastDay: '[嗪∴悍嗷夃骇嗪侧簷嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + lastWeek: '[嗪о罕嗪橾dddd[嗷佮亥嗷夃骇嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '嗪旱嗪 %s', + past: '%s嗪溹粓嗪侧簷嗪∴翰', + s: '嗪氞粛嗷堗粈嗪椸夯嗷堗翰嗷冟簲嗪о捍嗪權翰嗪椸旱', + ss: '%d 嗪о捍嗪權翰嗪椸旱', + m: '1 嗪權翰嗪椸旱', + mm: '%d 嗪權翰嗪椸旱', + h: '1 嗪娻夯嗷堗骇嗷傕骸嗪', + hh: '%d 嗪娻夯嗷堗骇嗷傕骸嗪', + d: '1 嗪∴悍嗷', + dd: '%d 嗪∴悍嗷', + M: '1 嗷嗪斷悍嗪簷', + MM: '%d 嗷嗪斷悍嗪簷', + y: '1 嗪涏旱', + yy: '%d 嗪涏旱', + }, + dayOfMonthOrdinalParse: /(嗪椸旱嗷)\d{1,2}/, + ordinal: function (number) { + return '嗪椸旱嗷' + number; + }, + }); + + //! moment.js locale configuration + + var units = { + ss: 'sekund臈_sekund啪i懦_sekundes', + m: 'minut臈_minut臈s_minut臋', + mm: 'minut臈s_minu膷i懦_minutes', + h: 'valanda_valandos_valand膮', + hh: 'valandos_valand懦_valandas', + d: 'diena_dienos_dien膮', + dd: 'dienos_dien懦_dienas', + M: 'm臈nuo_m臈nesio_m臈nes寞', + MM: 'm臈nesiai_m臈nesi懦_m臈nesius', + y: 'metai_met懦_metus', + yy: 'metai_met懦_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekund臈s'; + } else { + return isFuture ? 'keli懦 sekund啪i懦' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate$6(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_baland啪io_gegu啪臈s_bir啪elio_liepos_rugpj奴膷io_rugs臈jo_spalio_lapkri膷io_gruod啪io'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegu啪臈_bir啪elis_liepa_rugpj奴tis_rugs臈jis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadien寞_pirmadien寞_antradien寞_tre膷iadien寞_ketvirtadien寞_penktadien寞_拧e拧tadien寞'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_tre膷iadienis_ketvirtadienis_penktadienis_拧e拧tadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_艩e拧'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_艩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[艩iandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Pra臈jus寞] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prie拧 %s', + s: translateSeconds, + ss: translate$6, + m: translateSingular, + mm: translate$6, + h: translateSingular, + hh: translate$6, + d: translateSingular, + dd: translate$6, + M: translateSingular, + MM: translate$6, + y: translateSingular, + yy: translate$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + 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. + }, + }); + + //! moment.js locale configuration + + var units$1 = { + ss: 'sekundes_sekund膿m_sekunde_sekundes'.split('_'), + m: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + mm: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + h: 'stundas_stund膩m_stunda_stundas'.split('_'), + hh: 'stundas_stund膩m_stunda_stundas'.split('_'), + d: 'dienas_dien膩m_diena_dienas'.split('_'), + dd: 'dienas_dien膩m_diena_dienas'.split('_'), + M: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + MM: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 min奴te", "3 min奴tes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 min奴tes" as in "p膿c 21 min奴tes". + // E.g. "3 min奴t膿m" as in "p膿c 3 min奴t膿m". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural$1(number, withoutSuffix, key) { + return number + ' ' + format(units$1[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units$1[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'da啪as sekundes' : 'da啪膩m sekund膿m'; + } + + moment.defineLocale('lv', { + months: 'janv膩ris_febru膩ris_marts_apr墨lis_maijs_j奴nijs_j奴lijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_j奴n_j奴l_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'sv膿tdiena_pirmdiena_otrdiena_tre拧diena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[艩odien pulksten] LT', + nextDay: '[R墨t pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pag膩ju拧膩] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'p膿c %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural$1, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural$1, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural$1, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural$1, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural$1, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedjelje] [u] LT', + '[pro拧log] [ponedjeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srijede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mi', { + months: 'Kohi-t膩te_Hui-tanguru_Pout奴-te-rangi_Paenga-wh膩wh膩_Haratua_Pipiri_H艒ngoingoi_Here-turi-k艒k膩_Mahuru_Whiringa-膩-nuku_Whiringa-膩-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_H艒ngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'R膩tapu_Mane_T奴rei_Wenerei_T膩ite_Paraire_H膩tarei'.split('_'), + weekdaysShort: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + weekdaysMin: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te h膿kona ruarua', + ss: '%d h膿kona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mk', { + months: '褬邪薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪懈_褬褍谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褬邪薪_褎械胁_屑邪褉_邪锌褉_屑邪褬_褬褍薪_褬褍谢_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢邪_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁褉褌芯泻_锌械褌芯泻_褋邪斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉械_褔械褌_锌械褌_褋邪斜'.split('_'), + weekdaysMin: '薪e_锌o_胁褌_褋褉_褔械_锌械_褋a'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛械薪械褋 胁芯] LT', + nextDay: '[校褌褉械 胁芯] LT', + nextWeek: '[袙芯] dddd [胁芯] LT', + lastDay: '[袙褔械褉邪 胁芯] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袠蟹屑懈薪邪褌邪褌邪] dddd [胁芯] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袠蟹屑懈薪邪褌懈芯褌] dddd [胁芯] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械写 %s', + s: '薪械泻芯谢泻褍 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '械写薪邪 屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '械写械薪 褔邪褋', + hh: '%d 褔邪褋邪', + d: '械写械薪 写械薪', + dd: '%d 写械薪邪', + M: '械写械薪 屑械褋械褑', + MM: '%d 屑械褋械褑懈', + y: '械写薪邪 谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ml', { + months: '啻溹川嗟佮吹啻班纯_啻祮啻祶啻班祦啻掂窗啻縚啻淳嗟监礆嗟嵿礆嗟峗啻忇椽嗟嵿窗啻苦到_啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱_啻撪礂啻膏祶啻编祶啻编祶_啻膏祮啻祶啻编祶啻编磦啻导_啻掄磿嗟嵿礋嗟嬥船嗟糭啻ㄠ吹啻傕船嗟糭啻∴纯啻膏磦啻导'.split( + '_' + ), + monthsShort: + '啻溹川嗟._啻祮啻祶啻班祦._啻淳嗟._啻忇椽嗟嵿窗啻._啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱._啻撪礂._啻膏祮啻祶啻编祶啻._啻掄磿嗟嵿礋嗟._啻ㄠ吹啻._啻∴纯啻膏磦.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '啻炧淳啻幢啻距创嗟嵿礆_啻む纯啻權祶啻曕闯啻距创嗟嵿礆_啻氞祳啻掂祶啻掂淳啻脆祶啻歘啻祦啻о川啻距创嗟嵿礆_啻掂祶啻淳啻脆淳啻脆祶啻歘啻掂祮啻赤祶啻赤纯啻淳啻脆祶啻歘啻多川啻苦疮啻距创嗟嵿礆'.split( + '_' + ), + weekdaysShort: '啻炧淳啻导_啻む纯啻權祶啻曕稻_啻氞祳啻掂祶啻礯啻祦啻о祷_啻掂祶啻淳啻脆磦_啻掂祮啻赤祶啻赤纯_啻多川啻'.split('_'), + weekdaysMin: '啻炧淳_啻む纯_啻氞祳_啻祦_啻掂祶啻淳_啻掂祮_啻'.split('_'), + longDateFormat: { + LT: 'A h:mm -啻ㄠ祦', + LTS: 'A h:mm:ss -啻ㄠ祦', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -啻ㄠ祦', + LLLL: 'dddd, D MMMM YYYY, A h:mm -啻ㄠ祦', + }, + calendar: { + sameDay: '[啻囙川嗟嵿川嗟峕 LT', + nextDay: '[啻ㄠ淳啻赤祮] LT', + nextWeek: 'dddd, LT', + lastDay: '[啻囙川嗟嵿川啻侧祮] LT', + lastWeek: '[啻曕创啻苦礊嗟嵿礊] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啻曕创啻苦礊嗟嵿礊嗟', + past: '%s 啻祦嗟秽椽嗟', + s: '啻呧到啻 啻ㄠ纯啻纯啻粪礄嗟嵿礄嗟', + ss: '%d 啻膏祮啻曕祶啻曕祷啻∴祶', + m: '啻掄窗嗟 啻纯啻ㄠ纯啻编祶啻编祶', + mm: '%d 啻纯啻ㄠ纯啻编祶啻编祶', + h: '啻掄窗嗟 啻矗啻苦磿嗟嵿磿嗟傕导', + hh: '%d 啻矗啻苦磿嗟嵿磿嗟傕导', + d: '啻掄窗嗟 啻︵纯啻掂锤啻', + dd: '%d 啻︵纯啻掂锤啻', + M: '啻掄窗嗟 啻淳啻膏磦', + MM: '%d 啻淳啻膏磦', + y: '啻掄窗嗟 啻掂导啻粪磦', + yy: '%d 啻掂导啻粪磦', + }, + meridiemParse: /啻班淳啻む祶啻班纯|啻班淳啻掂纯啻侧祮|啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟峾啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦|啻班淳啻む祶啻班纯/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '啻班淳啻む祶啻班纯' && hour >= 4) || + meridiem === '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟' || + meridiem === '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啻班淳啻む祶啻班纯'; + } else if (hour < 12) { + return '啻班淳啻掂纯啻侧祮'; + } else if (hour < 17) { + return '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟'; + } else if (hour < 20) { + return '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦'; + } else { + return '啻班淳啻む祶啻班纯'; + } + }, + }); + + //! moment.js locale configuration + + function translate$7(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? '褏褝写褏褝薪 褋械泻褍薪写' : '褏褝写褏褝薪 褋械泻褍薪写褘薪'; + case 'ss': + return number + (withoutSuffix ? ' 褋械泻褍薪写' : ' 褋械泻褍薪写褘薪'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' 屑懈薪褍褌' : ' 屑懈薪褍褌褘薪'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' 褑邪谐' : ' 褑邪谐懈泄薪'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' 萤写萤褉' : ' 萤写褉懈泄薪'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' 褋邪褉' : ' 褋邪褉褘薪'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' 卸懈谢' : ' 卸懈谢懈泄薪'); + default: + return number; + } + } + + moment.defineLocale('mn', { + months: '袧褝谐写爷谐褝褝褉 褋邪褉_啸芯褢褉写褍谐邪邪褉 褋邪褉_袚褍褉邪胁写褍谐邪邪褉 褋邪褉_袛萤褉萤胁写爷谐褝褝褉 褋邪褉_孝邪胁写褍谐邪邪褉 褋邪褉_袟褍褉谐邪写褍谐邪邪褉 褋邪褉_袛芯谢写褍谐邪邪褉 褋邪褉_袧邪泄屑写褍谐邪邪褉 褋邪褉_袝褋写爷谐褝褝褉 褋邪褉_袗褉邪胁写褍谐邪邪褉 褋邪褉_袗褉胁邪薪 薪褝谐写爷谐褝褝褉 褋邪褉_袗褉胁邪薪 褏芯褢褉写褍谐邪邪褉 褋邪褉'.split( + '_' + ), + monthsShort: + '1 褋邪褉_2 褋邪褉_3 褋邪褉_4 褋邪褉_5 褋邪褉_6 褋邪褉_7 褋邪褉_8 褋邪褉_9 褋邪褉_10 褋邪褉_11 褋邪褉_12 褋邪褉'.split( + '_' + ), + monthsParseExact: true, + weekdays: '袧褟屑_袛邪胁邪邪_袦褟谐屑邪褉_袥褏邪谐胁邪_袩爷褉褝胁_袘邪邪褋邪薪_袘褟屑斜邪'.split('_'), + weekdaysShort: '袧褟屑_袛邪胁_袦褟谐_袥褏邪_袩爷褉_袘邪邪_袘褟屑'.split('_'), + weekdaysMin: '袧褟_袛邪_袦褟_袥褏_袩爷_袘邪_袘褟'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY 芯薪褘 MMMM褘薪 D', + LLL: 'YYYY 芯薪褘 MMMM褘薪 D HH:mm', + LLLL: 'dddd, YYYY 芯薪褘 MMMM褘薪 D HH:mm', + }, + meridiemParse: /耶莹|耶啸/i, + isPM: function (input) { + return input === '耶啸'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '耶莹'; + } else { + return '耶啸'; + } + }, + calendar: { + sameDay: '[莹薪萤萤写萤褉] LT', + nextDay: '[袦邪褉谐邪邪褕] LT', + nextWeek: '[袠褉褝褏] dddd LT', + lastDay: '[莹褔懈谐写萤褉] LT', + lastWeek: '[莹薪谐萤褉褋萤薪] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 写邪褉邪邪', + past: '%s 萤屑薪萤', + s: translate$7, + ss: translate$7, + m: translate$7, + mm: translate$7, + h: translate$7, + hh: translate$7, + d: translate$7, + dd: translate$7, + M: translate$7, + MM: translate$7, + y: translate$7, + yy: translate$7, + }, + dayOfMonthOrdinalParse: /\d{1,2} 萤写萤褉/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' 萤写萤褉'; + default: + return number; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$c = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$b = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶'; + break; + case 'm': + output = '啶忇 啶た啶ㄠた啶'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰'; + break; + case 'h': + output = '啶忇 啶むぞ啶'; + break; + case 'hh': + output = '%d 啶むぞ啶'; + break; + case 'd': + output = '啶忇 啶︵た啶掂じ'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ'; + break; + case 'M': + output = '啶忇 啶す啶苦え啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷'; + break; + case 'y': + output = '啶忇 啶掂ぐ啷嵿し'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啷'; + break; + } + } else { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶︵ぞ啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶︵ぞ啶'; + break; + case 'm': + output = '啶忇啶 啶た啶ㄠた啶熰ぞ'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰ぞ啶'; + break; + case 'h': + output = '啶忇啶 啶むぞ啶膏ぞ'; + break; + case 'hh': + output = '%d 啶むぞ啶膏ぞ啶'; + break; + case 'd': + output = '啶忇啶 啶︵た啶掂じ啶'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ啶距'; + break; + case 'M': + output = '啶忇啶 啶す啶苦え啷嵿く啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷嵿く啶距'; + break; + case 'y': + output = '啶忇啶 啶掂ぐ啷嵿し啶'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啶距'; + break; + } + } + return output.replace(/%d/i, number); + } + + moment.defineLocale('mr', { + months: '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶._啶忇お啷嵿ぐ啶._啶._啶溹啶._啶溹啶侧._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸こ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸こ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶掂ぞ啶溹い啶', + LTS: 'A h:mm:ss 啶掂ぞ啶溹い啶', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶夃う啷嵿く啶綸 LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶椸啶瞉 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぇ啷嵿く啷', + past: '%s啶啶班啶掂', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$b[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$c[match]; + }); + }, + meridiemParse: /啶す啶距啷噟啶膏啶距こ啷|啶︵啶ぞ啶班|啶膏ぞ啶啶曕ぞ啶赤|啶班ぞ啶む啶班/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶す啶距啷' || meridiem === '啶膏啶距こ啷') { + return hour; + } else if ( + meridiem === '啶︵啶ぞ啶班' || + meridiem === '啶膏ぞ啶啶曕ぞ啶赤' || + meridiem === '啶班ぞ啶む啶班' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return '啶す啶距啷'; + } else if (hour < 12) { + return '啶膏啶距こ啷'; + } else if (hour < 17) { + return '啶︵啶ぞ啶班'; + } else if (hour < 20) { + return '啶膏ぞ啶啶曕ぞ啶赤'; + } else { + return '啶班ぞ啶む啶班'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_臓unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di膵embru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_臓un_Lul_Aww_Set_Ott_Nov_Di膵'.split('_'), + weekdays: + 'Il-摩add_It-Tnejn_It-Tlieta_L-Erbg魔a_Il-摩amis_Il-臓img魔a_Is-Sibt'.split( + '_' + ), + weekdaysShort: '摩ad_Tne_Tli_Erb_摩am_臓im_Sib'.split('_'), + weekdaysMin: '摩a_Tn_Tl_Er_摩a_臓i_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[G魔ada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-biera魔 fil-]LT', + lastWeek: 'dddd [li g魔adda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f鈥 %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'sieg魔a', + hh: '%d sieg魔at', + d: '摹urnata', + dd: '%d 摹ranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$d = { + 1: '醽', + 2: '醽', + 3: '醽', + 4: '醽', + 5: '醽', + 6: '醽', + 7: '醽', + 8: '醽', + 9: '醽', + 0: '醽', + }, + numberMap$c = { + '醽': '1', + '醽': '2', + '醽': '3', + '醽': '4', + '醽': '5', + '醽': '6', + '醽': '7', + '醽': '8', + '醽': '9', + '醽': '0', + }; + + moment.defineLocale('my', { + months: '醼囜斸横斸濁涐甠醼栣贬栣贬横濁涐甠醼欋愥篲醼п曖坚甠醼欋盻醼囜结斸篲醼囜搬溼勧篲醼炨坚傖愥篲醼呩醼横愥勧横樶琠醼♂贬醼横愥樶琠醼斸濁勧横樶琠醼掅囜勧横樶'.split( + '_' + ), + monthsShort: '醼囜斸篲醼栣盻醼欋愥篲醼曖坚甠醼欋盻醼囜结斸篲醼溼勧篲醼炨糭醼呩醼篲醼♂贬醼篲醼斸痏醼掅'.split('_'), + weekdays: '醼愥斸勧横贯傖斸结盻醼愥斸勧横贯溼琠醼♂勧横贯傖玙醼椺掅贯撫熱搬竉醼醼坚炨曖愥贬竉醼炨贬醼坚琠醼呩斸'.split( + '_' + ), + weekdaysShort: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + weekdaysMin: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醼氠斸.] LT [醼欋踞琞', + nextDay: '[醼欋斸醼横栣坚斸篯 LT [醼欋踞琞', + nextWeek: 'dddd LT [醼欋踞琞', + lastDay: '[醼欋斸.醼] LT [醼欋踞琞', + lastWeek: '[醼曖坚羔佱册丰炨贬琞 dddd LT [醼欋踞琞', + sameElse: 'L', + }, + relativeTime: { + future: '醼溼欋娽横 %s 醼欋踞', + past: '醼溼结斸横佱册丰炨贬 %s 醼', + s: '醼呩醼贯醼斸.醼♂斸娽横羔勧氠', + ss: '%d 醼呩醼贯醼斸丰', + m: '醼愥呩横欋斸呩', + mm: '%d 醼欋斸呩', + h: '醼愥呩横斸涐', + hh: '%d 醼斸涐', + d: '醼愥呩横涐醼', + dd: '%d 醼涐醼', + M: '醼愥呩横', + MM: '%d 醼', + y: '醼愥呩横斸踞呩', + yy: '%d 醼斸踞呩', + }, + preparse: function (string) { + return string.replace(/[醽佱亗醽冡亜醽呩亞醽囜亪醽夅亐]/g, function (match) { + return numberMap$c[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$d[match]; + }); + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶._ma._ti._on._to._fr._l酶.'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$e = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$d = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + moment.defineLocale('ne', { + months: '啶溹え啶掂ぐ啷_啶啶啶班啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶粪啶焈啶膏啶啶熰啶啶ぐ_啶呧啷嵿啷嬥が啶癬啶ㄠ啶啶啶ぐ_啶∴た啶膏啶啶ぐ'.split( + '_' + ), + monthsShort: + '啶溹え._啶啶啶班._啶ぞ啶班啶歘啶呧お啷嵿ぐ啶._啶_啶溹啶╛啶溹啶侧ぞ啶._啶呧._啶膏啶啶._啶呧啷嵿啷._啶ㄠ啶._啶∴た啶膏.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋啶むが啶距ぐ_啶膏啶が啶距ぐ_啶啷嵿啶侧が啶距ぐ_啶啶оが啶距ぐ_啶た啶灌た啶ぞ啶癬啶多啶曕啶班が啶距ぐ_啶多え啶苦が啶距ぐ'.split( + '_' + ), + weekdaysShort: '啶嗋啶._啶膏啶._啶啷嵿啶._啶啶._啶た啶灌た._啶多啶曕啶._啶多え啶.'.split('_'), + weekdaysMin: '啶._啶膏._啶._啶._啶た._啶多._啶.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A啶曕 h:mm 啶啷', + LTS: 'A啶曕 h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A啶曕 h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A啶曕 h:mm 啶啷', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$d[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$e[match]; + }); + }, + meridiemParse: /啶班ぞ啶むた|啶た啶灌ぞ啶▅啶︵た啶夃啶膏|啶膏ぞ啶佮/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶むた') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶た啶灌ぞ啶') { + return hour; + } else if (meridiem === '啶︵た啶夃啶膏') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶佮') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return '啶班ぞ啶むた'; + } else if (hour < 12) { + return '啶た啶灌ぞ啶'; + } else if (hour < 16) { + return '啶︵た啶夃啶膏'; + } else if (hour < 20) { + return '啶膏ぞ啶佮'; + } else { + return '啶班ぞ啶むた'; + } + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶啶侧た] LT', + nextWeek: '[啶嗋啶佮う啷媇 dddd[,] LT', + lastDay: '[啶灌た啶溹] LT', + lastWeek: '[啶椸啶曕] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぞ', + past: '%s 啶呧啶距ぁ啶', + s: '啶曕啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶`啶', + m: '啶忇 啶た啶ㄠ啶', + mm: '%d 啶た啶ㄠ啶', + h: '啶忇 啶樴ぃ啷嵿啶', + hh: '%d 啶樴ぃ啷嵿啶', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啶苦え啶', + MM: '%d 啶す啶苦え啶', + y: '啶忇 啶ぐ啷嵿し', + yy: '%d 啶ぐ啷嵿し', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$1 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$1 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$8 = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$7 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$1; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$1[m.month()]; + } else { + return monthsShortWithDots$1[m.month()]; + } + }, + + monthsRegex: monthsRegex$7, + monthsShortRegex: monthsRegex$7, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$8, + longMonthsParse: monthsParse$8, + shortMonthsParse: monthsParse$8, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$2 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$2 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$9 = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$8 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$2; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$2[m.month()]; + } else { + return monthsShortWithDots$2[m.month()]; + } + }, + + monthsRegex: monthsRegex$8, + monthsShortRegex: monthsRegex$8, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$9, + longMonthsParse: monthsParse$9, + shortMonthsParse: monthsParse$9, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + w: '茅茅n week', + ww: '%d weken', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_m氓ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._m氓._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_m氓_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I g氓r klokka] LT', + lastWeek: '[F酶reg氓ande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein m氓nad', + MM: '%d m氓nader', + y: 'eit 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('oc-lnc', { + months: { + standalone: + 'geni猫r_febri猫r_mar莽_abril_mai_junh_julhet_agost_setembre_oct貌bre_novembre_decembre'.split( + '_' + ), + format: "de geni猫r_de febri猫r_de mar莽_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct貌bre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dim猫cres_dij貌us_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[u猫i a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[i猫r a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\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, + }, + }); + + //! moment.js locale configuration + + var symbolMap$f = { + 1: '喋', + 2: '喋', + 3: '喋', + 4: '喋', + 5: '喋', + 6: '喋', + 7: '喋', + 8: '喋', + 9: '喋', + 0: '喋', + }, + numberMap$e = { + '喋': '1', + '喋': '2', + '喋': '3', + '喋': '4', + '喋': '5', + '喋': '6', + '喋': '7', + '喋': '8', + '喋': '9', + '喋': '0', + }; + + moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + monthsShort: + '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + weekdays: '啜愢à啜掂ň啜癬啜膏⿱啜ǖ啜距ò_啜┌啜椸ú啜掂ň啜癬啜﹣啜оǖ啜距ò_啜掂﹢啜班ǖ啜距ò_啜膏喋佮┍啜曕ò啜掂ň啜癬啜膏啜ㄠ﹢啜氞ò啜掂ň啜'.split( + '_' + ), + weekdaysShort: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + weekdaysMin: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + longDateFormat: { + LT: 'A h:mm 啜掂喋', + LTS: 'A h:mm:ss 啜掂喋', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啜掂喋', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啜掂喋', + }, + calendar: { + sameDay: '[啜呧] LT', + nextDay: '[啜曕ú] LT', + nextWeek: '[啜呧啜侧ň] dddd, LT', + lastDay: '[啜曕ú] LT', + lastWeek: '[啜ǹ啜涏ú喋嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啜掂ǹ喋编', + past: '%s 啜ǹ啜涏ú喋', + s: '啜曕﹣啜 啜膏〞啜苦┌啜', + ss: '%d 啜膏〞啜苦┌啜', + m: '啜囙〞 啜ǹ喋班', + mm: '%d 啜ǹ喋班', + h: '啜囙┍啜 啜樴┌啜熰ň', + hh: '%d 啜樴┌啜熰﹪', + d: '啜囙┍啜 啜︵ǹ啜', + dd: '%d 啜︵ǹ啜', + M: '啜囙┍啜 啜ü喋啜ㄠň', + MM: '%d 啜ü喋啜ㄠ﹪', + y: '啜囙┍啜 啜膏ň啜', + yy: '%d 啜膏ň啜', + }, + preparse: function (string) { + return string.replace(/[喋о┄喋┼┆喋┈喋┊喋│]/g, function (match) { + return numberMap$e[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$f[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /啜班ň啜啜膏ǖ喋囙ò|啜︵﹣啜ü啜苦ò|啜膏啜距ó/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啜班ň啜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啜膏ǖ喋囙ò') { + return hour; + } else if (meridiem === '啜︵﹣啜ü啜苦ò') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啜膏啜距ó') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啜班ň啜'; + } else if (hour < 10) { + return '啜膏ǖ喋囙ò'; + } else if (hour < 17) { + return '啜︵﹣啜ü啜苦ò'; + } else if (hour < 20) { + return '啜膏啜距ó'; + } else { + return '啜班ň啜'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsNominative = + 'stycze艅_luty_marzec_kwiecie艅_maj_czerwiec_lipiec_sierpie艅_wrzesie艅_pa藕dziernik_listopad_grudzie艅'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze艣nia_pa藕dziernika_listopada_grudnia'.split( + '_' + ), + monthsParse$a = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^pa藕/i, + /^lis/i, + /^gru/i, + ]; + function plural$3(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate$8(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural$3(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minut臋'; + case 'mm': + return result + (plural$3(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzin臋'; + case 'hh': + return result + (plural$3(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural$3(number) ? 'miesi膮ce' : 'miesi臋cy'); + case 'yy': + return result + (plural$3(number) ? 'lata' : 'lat'); + } + } + + moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa藕_lis_gru'.split('_'), + monthsParse: monthsParse$a, + longMonthsParse: monthsParse$a, + shortMonthsParse: monthsParse$a, + weekdays: + 'niedziela_poniedzia艂ek_wtorek_艣roda_czwartek_pi膮tek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_艣r_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_艢r_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dzi艣 o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedziel臋 o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W 艣rod臋 o] LT'; + + case 6: + return '[W sobot臋 o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zesz艂膮 niedziel臋 o] LT'; + case 3: + return '[W zesz艂膮 艣rod臋 o] LT'; + case 6: + return '[W zesz艂膮 sobot臋 o] LT'; + default: + return '[W zesz艂y] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate$8, + m: translate$8, + mm: translate$8, + h: translate$8, + hh: translate$8, + d: '1 dzie艅', + dd: '%d dni', + w: 'tydzie艅', + ww: translate$8, + M: 'miesi膮c', + MM: translate$8, + y: 'rok', + yy: translate$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_ter莽a-feira_quarta-feira_quinta-feira_sexta-feira_s谩bado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_s谩b'.split('_'), + weekdaysMin: 'do_2陋_3陋_4陋_5陋_6陋_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [脿s] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [脿s] HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + invalidDate: 'Data inv谩lida', + }); + + //! moment.js locale configuration + + moment.defineLocale('pt', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Ter莽a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S谩bado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S谩b'.split('_'), + weekdaysMin: 'Do_2陋_3陋_4陋_5陋_6陋_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithPlural$2(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 's膬pt膬m芒ni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminic膬_luni_mar葲i_miercuri_joi_vineri_s芒mb膬t膬'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S芒m'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S芒'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[m芒ine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s 卯n urm膬', + s: 'c芒teva secunde', + ss: relativeTimeWithPlural$2, + m: 'un minut', + mm: relativeTimeWithPlural$2, + h: 'o or膬', + hh: relativeTimeWithPlural$2, + d: 'o zi', + dd: relativeTimeWithPlural$2, + w: 'o s膬pt膬m芒n膬', + ww: relativeTimeWithPlural$2, + M: 'o lun膬', + MM: relativeTimeWithPlural$2, + y: 'un an', + yy: relativeTimeWithPlural$2, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$4(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$3(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '屑懈薪褍褌邪_屑懈薪褍褌褘_屑懈薪褍褌' : '屑懈薪褍褌褍_屑懈薪褍褌褘_屑懈薪褍褌', + hh: '褔邪褋_褔邪褋邪_褔邪褋芯胁', + dd: '写械薪褜_写薪褟_写薪械泄', + ww: '薪械写械谢褟_薪械写械谢懈_薪械写械谢褜', + MM: '屑械褋褟褑_屑械褋褟褑邪_屑械褋褟褑械胁', + yy: '谐芯写_谐芯写邪_谢械褌', + }; + if (key === 'm') { + return withoutSuffix ? '屑懈薪褍褌邪' : '屑懈薪褍褌褍'; + } else { + return number + ' ' + plural$4(format[key], +number); + } + } + var monthsParse$b = [ + /^褟薪胁/i, + /^褎械胁/i, + /^屑邪褉/i, + /^邪锌褉/i, + /^屑邪[泄褟]/i, + /^懈褞薪/i, + /^懈褞谢/i, + /^邪胁谐/i, + /^褋械薪/i, + /^芯泻褌/i, + /^薪芯褟/i, + /^写械泻/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : 搂 103 + // 小芯泻褉邪褖械薪懈褟 屑械褋褟褑械胁: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + moment.defineLocale('ru', { + months: { + format: '褟薪胁邪褉褟_褎械胁褉邪谢褟_屑邪褉褌邪_邪锌褉械谢褟_屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐褍褋褌邪_褋械薪褌褟斜褉褟_芯泻褌褟斜褉褟_薪芯褟斜褉褟_写械泻邪斜褉褟'.split( + '_' + ), + standalone: + '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + }, + monthsShort: { + // 锌芯 CLDR 懈屑械薪薪芯 "懈褞谢." 懈 "懈褞薪.", 薪芯 泻邪泻芯泄 褋屑褘褋谢 屑械薪褟褌褜 斜褍泻胁褍 薪邪 褌芯褔泻褍? + format: '褟薪胁._褎械胁褉._屑邪褉._邪锌褉._屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + standalone: + '褟薪胁._褎械胁褉._屑邪褉褌_邪锌褉._屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + }, + weekdays: { + standalone: + '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁械褉谐_锌褟褌薪懈褑邪_褋褍斜斜芯褌邪'.split( + '_' + ), + format: '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写褍_褔械褌胁械褉谐_锌褟褌薪懈褑褍_褋褍斜斜芯褌褍'.split( + '_' + ), + isFormat: /\[ ?[袙胁] ?(?:锌褉芯褕谢褍褞|褋谢械写褍褞褖褍褞|褝褌褍)? ?] ?dddd/, + }, + weekdaysShort: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + monthsParse: monthsParse$b, + longMonthsParse: monthsParse$b, + shortMonthsParse: monthsParse$b, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈, 锌芯 褌褉懈 斜褍泻胁褘, 写谢褟 薪械泻芯褌芯褉褘褏, 锌芯 4 斜褍泻胁褘, 褋芯泻褉邪褖械薪懈褟 褋 褌芯褔泻芯泄 懈 斜械蟹 褌芯褔泻懈 + monthsRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 泻芯锌懈褟 锌褉械写褘写褍褖械谐芯 + monthsShortRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈 + monthsStrictRegex: + /^(褟薪胁邪褉[褟褜]|褎械胁褉邪谢[褟褜]|屑邪褉褌邪?|邪锌褉械谢[褟褜]|屑邪[褟泄]|懈褞薪[褟褜]|懈褞谢[褟褜]|邪胁谐褍褋褌邪?|褋械薪褌褟斜褉[褟褜]|芯泻褌褟斜褉[褟褜]|薪芯褟斜褉[褟褜]|写械泻邪斜褉[褟褜])/i, + + // 袙褘褉邪卸械薪懈械, 泻芯褌芯褉芯械 褋芯芯褌胁械褌褋褌胁褍械褌 褌芯谢褜泻芯 褋芯泻褉邪褖褢薪薪褘屑 褎芯褉屑邪屑 + monthsShortStrictRegex: + /^(褟薪胁\.|褎械胁褉?\.|屑邪褉[褌.]|邪锌褉\.|屑邪[褟泄]|懈褞薪[褜褟.]|懈褞谢[褜褟.]|邪胁谐\.|褋械薪褌?\.|芯泻褌\.|薪芯褟斜?\.|写械泻\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., H:mm', + LLLL: 'dddd, D MMMM YYYY 谐., H:mm', + }, + calendar: { + sameDay: '[小械谐芯写薪褟, 胁] LT', + nextDay: '[袟邪胁褌褉邪, 胁] LT', + lastDay: '[袙褔械褉邪, 胁] LT', + nextWeek: 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'; + } + } + }, + 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', + }, + relativeTime: { + future: '褔械褉械蟹 %s', + past: '%s 薪邪蟹邪写', + s: '薪械褋泻芯谢褜泻芯 褋械泻褍薪写', + ss: relativeTimeWithPlural$3, + m: relativeTimeWithPlural$3, + mm: relativeTimeWithPlural$3, + h: '褔邪褋', + hh: relativeTimeWithPlural$3, + d: '写械薪褜', + dd: relativeTimeWithPlural$3, + w: '薪械写械谢褟', + ww: relativeTimeWithPlural$3, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural$3, + y: '谐芯写', + yy: relativeTimeWithPlural$3, + }, + meridiemParse: /薪芯褔懈|褍褌褉邪|写薪褟|胁械褔械褉邪/i, + isPM: function (input) { + return /^(写薪褟|胁械褔械褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔懈'; + } else if (hour < 12) { + return '褍褌褉邪'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔械褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯|褟)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + case 'w': + case 'W': + return number + '-褟'; + default: + return number; + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var months$8 = [ + '噩賳賵乇賷', + '賮賷亘乇賵乇賷', + '賲丕乇趩', + '丕倬乇賷賱', + '賲卅賷', + '噩賵賳', + '噩賵賱丕亍賽', + '丌诏爻俳', + '爻賷倬俳賲亘乇', + '丌讵俳賵亘乇', + '賳賵賲亘乇', + '趭爻賲亘乇', + ], + days = ['丌趩乇', '爻賵賲乇', '丕诒丕乇賵', '丕乇亘毓', '禺賲賷爻', '噩賲毓', '趪賳趪乇']; + + moment.defineLocale('sd', { + months: months$8, + monthsShort: months$8, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丕趧] LT', + nextDay: '[爻趢丕诨賷] LT', + nextWeek: 'dddd [丕诔賷賳 賴賮鬲賷 鬲賷] LT', + lastDay: '[讵丕賱賴賴] LT', + lastWeek: '[诏夭乇賷賱 賴賮鬲賷] dddd [鬲賷] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 倬賵亍', + past: '%s 丕诔', + s: '趩賳丿 爻賷讵賳趭', + ss: '%d 爻賷讵賳趭', + m: '賴讵 賲賳俳', + mm: '%d 賲賳俳', + h: '賴讵 讵賱丕讵', + hh: '%d 讵賱丕讵', + d: '賴讵 趶賷賳賴賳', + dd: '%d 趶賷賳賴賳', + M: '賴讵 賲賴賷賳賵', + MM: '%d 賲賴賷賳丕', + y: '賴讵 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('se', { + months: 'o膽膽ajagem谩nnu_guovvam谩nnu_njuk膷am谩nnu_cuo艐om谩nnu_miessem谩nnu_geassem谩nnu_suoidnem谩nnu_borgem谩nnu_膷ak膷am谩nnu_golggotm谩nnu_sk谩bmam谩nnu_juovlam谩nnu'.split( + '_' + ), + monthsShort: + 'o膽膽j_guov_njuk_cuo_mies_geas_suoi_borg_膷ak膷_golg_sk谩b_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuoss谩rga_ma艐艐eb谩rga_gaskavahkku_duorastat_bearjadat_l谩vvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_ma艐_gask_duor_bear_l谩v'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s gea啪es', + past: 'ma艐it %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta m谩nnu', + MM: '%d m谩nut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + /*jshint -W100*/ + moment.defineLocale('si', { + months: '喽⑧侗喾喾忇痘喾抇喽脆窓喽多痘喾喾忇痘喾抇喽膏窂喽秽穵喽窋_喽呧洞喾娾嵿痘喾氞督喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾澿穬喾娻董喾擾喾冟窅喽脆穵喽窅喽膏穵喽多痘喾奯喽斷稓喾娻董喾澿抖喽秽穵_喽编窚喾喾愢陡喾娻抖喽秽穵_喽窓喾冟窅喽膏穵喽多痘喾'.split( + '_' + ), + monthsShort: '喽⑧侗_喽脆窓喽禵喽膏窂喽秽穵_喽呧洞喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾漘喾冟窅喽脆穵_喽斷稓喾奯喽编窚喾喾恄喽窓喾冟窅'.split( + '_' + ), + weekdays: + '喽夃痘喾掄动喾廮喾冟冻喾斷动喾廮喽呧稛喾勦痘喾斷穩喾忇动喾廮喽多动喾忇动喾廮喽多穵鈥嵿痘喾勦穬喾娻洞喽窉喽编穵喽窂_喾冟窉喽氞窋喽秽窂喽窂_喾冟窓喽编穬喾斷痘喾忇动喾'.split( + '_' + ), + weekdaysShort: '喽夃痘喾抇喾冟冻喾擾喽呧稛_喽多动喾廮喽多穵鈥嵿痘喾刜喾冟窉喽氞窋_喾冟窓喽'.split('_'), + weekdaysMin: '喽塤喾僟喽卂喽禵喽多穵鈥嵿痘_喾冟窉_喾冟窓'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [喾喾愢侗喾抅 dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[喽呧动] LT[喽', + nextDay: '[喾勦窓喽 LT[喽', + nextWeek: 'dddd LT[喽', + lastDay: '[喽娻逗喾歖 LT[喽', + lastWeek: '[喽脆穬喾斷稖喾掄逗] dddd LT[喽', + sameElse: 'L', + }, + relativeTime: { + future: '%s喽氞窉喽编穵', + past: '%s喽氞锭 喽脆窓喽', + s: '喽董喾娻洞喽 喽氞窉喾勦窉喽脆逗', + ss: '喽董喾娻洞喽 %d', + m: '喽膏窉喽编窉喽穵喽窋喾', + mm: '喽膏窉喽编窉喽穵喽窋 %d', + h: '喽脆窅喽', + hh: '喽脆窅喽 %d', + d: '喽窉喽编逗', + dd: '喽窉喽 %d', + M: '喽膏窂喾冟逗', + MM: '喽膏窂喾 %d', + y: '喾喾冟痘', + yy: '喾喾冟痘 %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} 喾喾愢侗喾/, + ordinal: function (number) { + return number + ' 喾喾愢侗喾'; + }, + meridiemParse: /喽脆窓喽 喾喽秽窋|喽脆穬喾 喾喽秽窋|喽脆窓.喾|喽.喾./, + isPM: function (input) { + return input === '喽.喾.' || input === '喽脆穬喾 喾喽秽窋'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '喽.喾.' : '喽脆穬喾 喾喽秽窋'; + } else { + return isLower ? '喽脆窓.喾.' : '喽脆窓喽 喾喽秽窋'; + } + }, + }); + + //! moment.js locale configuration + + var months$9 = + 'janu谩r_febru谩r_marec_apr铆l_m谩j_j煤n_j煤l_august_september_okt贸ber_november_december'.split( + '_' + ), + monthsShort$7 = 'jan_feb_mar_apr_m谩j_j煤n_j煤l_aug_sep_okt_nov_dec'.split('_'); + function plural$5(n) { + return n > 1 && n < 5; + } + function translate$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sek煤nd' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'sekundy' : 'sek煤nd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'min煤ta' : isFuture ? 'min煤tu' : 'min煤tou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'min煤ty' : 'min煤t'); + } else { + return result + 'min煤tami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'hodiny' : 'hod铆n'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'de艌' : 'd艌om'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'dni' : 'dn铆'); + } else { + return result + 'd艌ami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + moment.defineLocale('sk', { + months: months$9, + monthsShort: monthsShort$7, + weekdays: 'nede木a_pondelok_utorok_streda_拧tvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_拧t_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_拧t_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nede木u o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo 拧tvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[v膷era o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minul煤 nede木u o] LT'; + case 1: + case 2: + return '[minul媒] dddd [o] LT'; + case 3: + return '[minul煤 stredu o] LT'; + case 4: + case 5: + return '[minul媒] dddd [o] LT'; + case 6: + return '[minul煤 sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate$9, + ss: translate$9, + m: translate$9, + mm: translate$9, + h: translate$9, + hh: translate$9, + d: translate$9, + dd: translate$9, + M: translate$9, + MM: translate$9, + y: translate$9, + yy: translate$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$7(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_膷etrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._膷et._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_膷e_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[v膷eraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prej拧njo] [nedeljo] [ob] LT'; + case 3: + return '[prej拧njo] [sredo] [ob] LT'; + case 6: + return '[prej拧njo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prej拧nji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '膷ez %s', + past: 'pred %s', + s: processRelativeTime$7, + ss: processRelativeTime$7, + m: processRelativeTime$7, + mm: processRelativeTime$7, + h: processRelativeTime$7, + hh: processRelativeTime$7, + d: processRelativeTime$7, + dd: processRelativeTime$7, + M: processRelativeTime$7, + MM: processRelativeTime$7, + y: processRelativeTime$7, + yy: processRelativeTime$7, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N毛ntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N毛n_Dhj'.split('_'), + weekdays: 'E Diel_E H毛n毛_E Mart毛_E M毛rkur毛_E Enjte_E Premte_E Shtun毛'.split( + '_' + ), + weekdaysShort: 'Die_H毛n_Mar_M毛r_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_M毛_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot n毛] LT', + nextDay: '[Nes毛r n毛] LT', + nextWeek: 'dddd [n毛] LT', + lastDay: '[Dje n毛] LT', + lastWeek: 'dddd [e kaluar n毛] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'n毛 %s', + past: '%s m毛 par毛', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'nj毛 minut毛', + mm: '%d minuta', + h: 'nj毛 or毛', + hh: '%d or毛', + d: 'nj毛 dit毛', + dd: '%d dit毛', + M: 'nj毛 muaj', + MM: '%d muaj', + y: 'nj毛 vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var translator$1 = { + words: { + //Different grammatical cases + ss: ['褋械泻褍薪写邪', '褋械泻褍薪写械', '褋械泻褍薪写懈'], + m: ['褬械写邪薪 屑懈薪褍褌', '褬械写薪芯谐 屑懈薪褍褌邪'], + mm: ['屑懈薪褍褌', '屑懈薪褍褌邪', '屑懈薪褍褌邪'], + h: ['褬械写邪薪 褋邪褌', '褬械写薪芯谐 褋邪褌邪'], + hh: ['褋邪褌', '褋邪褌邪', '褋邪褌懈'], + d: ['褬械写邪薪 写邪薪', '褬械写薪芯谐 写邪薪邪'], + dd: ['写邪薪', '写邪薪邪', '写邪薪邪'], + M: ['褬械写邪薪 屑械褋械褑', '褬械写薪芯谐 屑械褋械褑邪'], + MM: ['屑械褋械褑', '屑械褋械褑邪', '屑械褋械褑懈'], + y: ['褬械写薪褍 谐芯写懈薪褍', '褬械写薪械 谐芯写懈薪械'], + yy: ['谐芯写懈薪褍', '谐芯写懈薪械', '谐芯写懈薪邪'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$1.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return '褬械写薪邪 谐芯写懈薪邪'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$1.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === '谐芯写懈薪褍') { + return number + ' 谐芯写懈薪邪'; + } + + return number + ' ' + word; + }, + }; + + moment.defineLocale('sr-cyrl', { + months: '褬邪薪褍邪褉_褎械斜褉褍邪褉_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪_褬褍谢_邪胁谐褍褋褌_褋械锌褌械屑斜邪褉_芯泻褌芯斜邪褉_薪芯胁械屑斜邪褉_写械褑械屑斜邪褉'.split( + '_' + ), + monthsShort: + '褬邪薪._褎械斜._屑邪褉._邪锌褉._屑邪褬_褬褍薪_褬褍谢_邪胁谐._褋械锌._芯泻褌._薪芯胁._写械褑.'.split('_'), + monthsParseExact: true, + weekdays: '薪械写械褭邪_锌芯薪械写械褭邪泻_褍褌芯褉邪泻_褋褉械写邪_褔械褌胁褉褌邪泻_锌械褌邪泻_褋褍斜芯褌邪'.split('_'), + weekdaysShort: '薪械写._锌芯薪._褍褌芯._褋褉械._褔械褌._锌械褌._褋褍斜.'.split('_'), + weekdaysMin: '薪械_锌芯_褍褌_褋褉_褔械_锌械_褋褍'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[写邪薪邪褋 褍] LT', + nextDay: '[褋褍褌褉邪 褍] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[褍] [薪械写械褭褍] [褍] LT'; + case 3: + return '[褍] [褋褉械写褍] [褍] LT'; + case 6: + return '[褍] [褋褍斜芯褌褍] [褍] LT'; + case 1: + case 2: + case 4: + case 5: + return '[褍] dddd [褍] LT'; + } + }, + lastDay: '[褬褍褔械 褍] LT', + lastWeek: function () { + var lastWeekDays = [ + '[锌褉芯褕谢械] [薪械写械褭械] [褍] LT', + '[锌褉芯褕谢芯谐] [锌芯薪械写械褭泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [褍褌芯褉泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褉械写械] [褍] LT', + '[锌褉芯褕谢芯谐] [褔械褌胁褉褌泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [锌械褌泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褍斜芯褌械] [褍] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械 %s', + s: '薪械泻芯谢懈泻芯 褋械泻褍薪写懈', + ss: translator$1.translate, + m: translator$1.translate, + mm: translator$1.translate, + h: translator$1.translate, + hh: translator$1.translate, + d: translator$1.translate, + dd: translator$1.translate, + M: translator$1.translate, + MM: translator$1.translate, + y: translator$1.translate, + yy: translator$1.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$2 = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$2.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$2.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_膷etvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._膷et._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_膷e_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedelje] [u] LT', + '[pro拧log] [ponedeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator$2.translate, + m: translator$2.translate, + mm: translator$2.translate, + h: translator$2.translate, + hh: translator$2.translate, + d: translator$2.translate, + dd: translator$2.translate, + M: translator$2.translate, + MM: translator$2.translate, + y: translator$2.translate, + yy: translator$2.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's枚ndag_m氓ndag_tisdag_onsdag_torsdag_fredag_l枚rdag'.split('_'), + weekdaysShort: 's枚n_m氓n_tis_ons_tor_fre_l枚r'.split('_'), + weekdaysMin: 's枚_m氓_ti_on_to_fr_l枚'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Ig氓r] LT', + nextWeek: '[P氓] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'f枚r %s sedan', + s: 'n氓gra sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en m氓nad', + MM: '%d m氓nader', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$g = { + 1: '喁', + 2: '喁', + 3: '喁', + 4: '喁', + 5: '喁', + 6: '喁', + 7: '喁', + 8: '喁', + 9: '喁', + 0: '喁', + }, + numberMap$f = { + '喁': '1', + '喁': '2', + '喁': '3', + '喁': '4', + '喁': '5', + '喁': '6', + '喁': '7', + '喁': '8', + '喁': '9', + '喁': '0', + }; + + moment.defineLocale('ta', { + months: '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + monthsShort: + '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + weekdays: + '喈炧喈喈编瘝喈编瘉喈曕瘝喈曕喈脆喁坃喈む喈權瘝喈曕疅喁嵿畷喈苦喈瘓_喈氞瘑喈掂瘝喈掂喈瘝喈曕喈脆喁坃喈瘉喈む喁嵿畷喈苦喈瘓_喈掂喈喈脆畷喁嵿畷喈苦喈瘓_喈掂瘑喈赤瘝喈赤喈曕瘝喈曕喈脆喁坃喈氞喈苦畷喁嵿畷喈苦喈瘓'.split( + '_' + ), + weekdaysShort: '喈炧喈喈编瘉_喈む喈權瘝喈曕喁峗喈氞瘑喈掂瘝喈掂喈瘝_喈瘉喈む喁峗喈掂喈喈脆喁峗喈掂瘑喈赤瘝喈赤_喈氞喈'.split( + '_' + ), + weekdaysMin: '喈炧_喈む_喈氞瘑_喈瘉_喈掂_喈掂瘑_喈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[喈囙喁嵿喁乚 LT', + nextDay: '[喈ㄠ喈赤瘓] LT', + nextWeek: 'dddd, LT', + lastDay: '[喈ㄠ瘒喈编瘝喈编瘉] LT', + lastWeek: '[喈曕疅喈ㄠ瘝喈 喈掂喈班喁峕 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喈囙喁', + past: '%s 喈瘉喈┼瘝', + s: '喈掄喁 喈氞喈 喈掂喈ㄠ喈熰喈曕喁', + ss: '%d 喈掂喈ㄠ喈熰喈曕喁', + m: '喈掄喁 喈ㄠ喈喈熰喁', + mm: '%d 喈ㄠ喈喈熰畽喁嵿畷喈赤瘝', + h: '喈掄喁 喈喈 喈ㄠ瘒喈班喁', + hh: '%d 喈喈 喈ㄠ瘒喈班喁', + d: '喈掄喁 喈ㄠ喈赤瘝', + dd: '%d 喈ㄠ喈熰瘝喈曕喁', + M: '喈掄喁 喈喈む喁', + MM: '%d 喈喈む畽喁嵿畷喈赤瘝', + y: '喈掄喁 喈掂喁佮疅喈瘝', + yy: '%d 喈嗋喁嵿疅喁佮畷喈赤瘝', + }, + dayOfMonthOrdinalParse: /\d{1,2}喈掂喁/, + ordinal: function (number) { + return number + '喈掂喁'; + }, + preparse: function (string) { + return string.replace(/[喁о喁┼喁喁喁]/g, function (match) { + return numberMap$f[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$g[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /喈喈喁峾喈掂瘓喈曕喁坾喈曕喈侧瘓|喈ㄠ喁嵿喈曕喁峾喈庎喁嵿喈距疅喁亅喈喈侧瘓/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' 喈喈喁'; + } else if (hour < 6) { + return ' 喈掂瘓喈曕喁'; // 喈掂瘓喈曕喁 + } else if (hour < 10) { + return ' 喈曕喈侧瘓'; // 喈曕喈侧瘓 + } else if (hour < 14) { + return ' 喈ㄠ喁嵿喈曕喁'; // 喈ㄠ喁嵿喈曕喁 + } else if (hour < 18) { + return ' 喈庎喁嵿喈距疅喁'; // 喈庎喁嵿喈距疅喁 + } else if (hour < 22) { + return ' 喈喈侧瘓'; // 喈喈侧瘓 + } else { + return ' 喈喈喁'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喈喈喁') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === '喈掂瘓喈曕喁' || meridiem === '喈曕喈侧瘓') { + return hour; + } else if (meridiem === '喈ㄠ喁嵿喈曕喁') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('te', { + months: '喟溹皑喟掂鞍喟縚喟翱喟睄喟班暗喟班翱_喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟苦安啾峗喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸喟膏睄喟熰眮_喟膏眴喟睄喟熰眴喟傕艾喟班睄_喟呧皶啾嵿盁啾嬥艾喟班睄_喟ㄠ暗喟傕艾喟班睄_喟∴翱喟膏眴喟傕艾喟班睄'.split( + '_' + ), + monthsShort: + '喟溹皑._喟翱喟睄喟._喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟._喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸._喟膏眴喟睄._喟呧皶啾嵿盁啾._喟ㄠ暗._喟∴翱喟膏眴.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '喟嗋唉喟苦暗喟距鞍喟俖喟膏眿喟暗喟距鞍喟俖喟皞喟椸俺喟掂熬喟班皞_喟眮喟о暗喟距鞍喟俖喟椸眮喟班眮喟掂熬喟班皞_喟多眮喟曕睄喟班暗喟距鞍喟俖喟多皑喟苦暗喟距鞍喟'.split( + '_' + ), + weekdaysShort: '喟嗋唉喟縚喟膏眿喟甠喟皞喟椸俺_喟眮喟喟椸眮喟班眮_喟多眮喟曕睄喟癬喟多皑喟'.split('_'), + weekdaysMin: '喟哶喟膏眿_喟皞_喟眮_喟椸眮_喟多眮_喟'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[喟ㄠ眹喟∴眮] LT', + nextDay: '[喟班眹喟眮] LT', + nextWeek: 'dddd, LT', + lastDay: '[喟ㄠ翱喟ㄠ睄喟╙ LT', + lastWeek: '[喟椸挨] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喟侧眿', + past: '%s 喟曕睄喟班翱喟む皞', + s: '喟曕眾喟ㄠ睄喟ㄠ翱 喟曕睄喟粪埃喟距安啾', + ss: '%d 喟膏眴喟曕皑啾嵿安啾', + m: '喟掄皶 喟ㄠ翱喟翱喟粪皞', + mm: '%d 喟ㄠ翱喟翱喟粪熬喟侧眮', + h: '喟掄皶 喟椸皞喟', + hh: '%d 喟椸皞喟熰安啾', + d: '喟掄皶 喟班眿喟溹眮', + dd: '%d 喟班眿喟溹眮喟侧眮', + M: '喟掄皶 喟ㄠ眴喟', + MM: '%d 喟ㄠ眴喟侧安啾', + y: '喟掄皶 喟膏皞喟掂挨啾嵿案喟班皞', + yy: '%d 喟膏皞喟掂挨啾嵿案喟班熬喟侧眮', + }, + dayOfMonthOrdinalParse: /\d{1,2}喟/, + ordinal: '%d喟', + meridiemParse: /喟班熬喟む睄喟班翱|喟夃唉喟皞|喟哀啾嵿隘喟距肮啾嵿皑喟倈喟膏熬喟皞喟む睄喟班皞/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喟班熬喟む睄喟班翱') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '喟夃唉喟皞') { + return hour; + } else if (meridiem === '喟哀啾嵿隘喟距肮啾嵿皑喟') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '喟膏熬喟皞喟む睄喟班皞') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '喟班熬喟む睄喟班翱'; + } else if (hour < 10) { + return '喟夃唉喟皞'; + } else if (hour < 17) { + return '喟哀啾嵿隘喟距肮啾嵿皑喟'; + } else if (hour < 20) { + return '喟膏熬喟皞喟む睄喟班皞'; + } else { + return '喟班熬喟む睄喟班翱'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju帽u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + var suffixes$3 = { + 0: '-褍屑', + 1: '-褍屑', + 2: '-褞屑', + 3: '-褞屑', + 4: '-褍屑', + 5: '-褍屑', + 6: '-褍屑', + 7: '-褍屑', + 8: '-褍屑', + 9: '-褍屑', + 10: '-褍屑', + 12: '-褍屑', + 13: '-褍屑', + 20: '-褍屑', + 30: '-褞屑', + 40: '-褍屑', + 50: '-褍屑', + 60: '-褍屑', + 70: '-褍屑', + 80: '-褍屑', + 90: '-褍屑', + 100: '-褍屑', + }; + + moment.defineLocale('tg', { + months: { + format: '褟薪胁邪褉懈_褎械胁褉邪谢懈_屑邪褉褌懈_邪锌褉械谢懈_屑邪泄懈_懈褞薪懈_懈褞谢懈_邪胁谐褍褋褌懈_褋械薪褌褟斜褉懈_芯泻褌褟斜褉懈_薪芯褟斜褉懈_写械泻邪斜褉懈'.split( + '_' + ), + standalone: + '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + }, + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '褟泻褕邪薪斜械_写褍褕邪薪斜械_褋械褕邪薪斜械_褔芯褉褕邪薪斜械_锌邪薪曳褕邪薪斜械_曳褍屑褗邪_褕邪薪斜械'.split( + '_' + ), + weekdaysShort: '褟褕斜_写褕斜_褋褕斜_褔褕斜_锌褕斜_曳褍屑_褕薪斜'.split('_'), + weekdaysMin: '褟褕_写褕_褋褕_褔褕_锌褕_曳屑_褕斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袠屑褉盈蟹 褋芯邪褌懈] LT', + nextDay: '[肖邪褉写芯 褋芯邪褌懈] LT', + lastDay: '[袛懈褉盈蟹 褋芯邪褌懈] LT', + nextWeek: 'dddd[懈] [页邪褎褌邪懈 芯褟薪写邪 褋芯邪褌懈] LT', + lastWeek: 'dddd[懈] [页邪褎褌邪懈 谐褍蟹邪褕褌邪 褋芯邪褌懈] LT', + sameElse: 'L', + }, + relativeTime: { + future: '斜邪褗写懈 %s', + past: '%s 锌械褕', + s: '褟泻褔邪薪写 褋芯薪懈褟', + m: '褟泻 写邪覜懈覜邪', + mm: '%d 写邪覜懈覜邪', + h: '褟泻 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '褟泻 褉盈蟹', + dd: '%d 褉盈蟹', + M: '褟泻 屑芯页', + MM: '%d 屑芯页', + y: '褟泻 褋芯谢', + yy: '%d 褋芯谢', + }, + meridiemParse: /褕邪斜|褋褍斜页|褉盈蟹|斜械谐芯页/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '褕邪斜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '褋褍斜页') { + return hour; + } else if (meridiem === '褉盈蟹') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '斜械谐芯页') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '褕邪斜'; + } else if (hour < 11) { + return '褋褍斜页'; + } else if (hour < 16) { + return '褉盈蟹'; + } else if (hour < 19) { + return '斜械谐芯页'; + } else { + return '褕邪斜'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褍屑|褞屑)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('th', { + months: '喔∴竵喔`覆喔勦浮_喔佮父喔∴笭喔侧笧喔编笝喔樴箤_喔∴傅喔權覆喔勦浮_喙喔∴俯喔侧涪喔檁喔炧袱喔┼笭喔侧竸喔喔∴复喔栢父喔權覆喔⑧笝_喔佮福喔佮笌喔侧竸喔喔复喔囙斧喔侧竸喔喔佮副喔權涪喔侧涪喔檁喔曕父喔ム覆喔勦浮_喔炧袱喔ㄠ笀喔脆竵喔侧涪喔檁喔樴副喔權抚喔侧竸喔'.split( + '_' + ), + monthsShort: + '喔.喔._喔.喔._喔∴傅.喔._喙喔.喔._喔.喔._喔∴复.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔笟喔斷傅_喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), + weekdaysShort: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔猒喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), // yes, three characters difference + weekdaysMin: '喔覆._喔._喔._喔._喔炧袱._喔._喔.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY 喙喔о弗喔 H:mm', + LLLL: '喔о副喔檇ddd喔椸傅喙 D MMMM YYYY 喙喔о弗喔 H:mm', + }, + meridiemParse: /喔佮箞喔笝喙喔椸傅喙堗涪喔噟喔弗喔编竾喙喔椸傅喙堗涪喔/, + isPM: function (input) { + return input === '喔弗喔编竾喙喔椸傅喙堗涪喔'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '喔佮箞喔笝喙喔椸傅喙堗涪喔'; + } else { + return '喔弗喔编竾喙喔椸傅喙堗涪喔'; + } + }, + calendar: { + sameDay: '[喔о副喔權笝喔掂箟 喙喔о弗喔瞉 LT', + nextDay: '[喔炧福喔膏箞喔囙笝喔掂箟 喙喔о弗喔瞉 LT', + nextWeek: 'dddd[喔笝喙夃覆 喙喔о弗喔瞉 LT', + lastDay: '[喙喔∴阜喙堗腑喔о覆喔權笝喔掂箟 喙喔о弗喔瞉 LT', + lastWeek: '[喔о副喔橾dddd[喔椸傅喙堗箒喔ム箟喔 喙喔о弗喔瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '喔傅喔 %s', + past: '%s喔椸傅喙堗箒喔ム箟喔', + s: '喙勦浮喙堗竵喔掂箞喔о复喔權覆喔椸傅', + ss: '%d 喔о复喔權覆喔椸傅', + m: '1 喔權覆喔椸傅', + mm: '%d 喔權覆喔椸傅', + h: '1 喔娻副喙堗抚喙傕浮喔', + hh: '%d 喔娻副喙堗抚喙傕浮喔', + d: '1 喔о副喔', + dd: '%d 喔о副喔', + w: '1 喔副喔涏笖喔侧斧喙', + ww: '%d 喔副喔涏笖喔侧斧喙', + M: '1 喙喔斷阜喔笝', + MM: '%d 喙喔斷阜喔笝', + y: '1 喔涏傅', + yy: '%d 喔涏傅', + }, + }); + + //! moment.js locale configuration + + var suffixes$4 = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'眉nji", + 4: "'眉nji", + 100: "'眉nji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + moment.defineLocale('tk', { + months: '脻anwar_Fewral_Mart_Aprel_Ma媒_I媒un_I媒ul_Awgust_Sent媒abr_Okt媒abr_No媒abr_Dekabr'.split( + '_' + ), + monthsShort: '脻an_Few_Mar_Apr_Ma媒_I媒n_I媒l_Awg_Sen_Okt_No媒_Dek'.split('_'), + weekdays: '脻ek艧enbe_Du艧enbe_Si艧enbe_脟ar艧enbe_Pen艧enbe_Anna_艦enbe'.split( + '_' + ), + weekdaysShort: '脻ek_Du艧_Si艧_脟ar_Pen_Ann_艦en'.split('_'), + weekdaysMin: '脻k_D艧_S艧_脟r_Pn_An_艦n'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[d眉媒n] LT', + lastWeek: '[ge莽en] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s so艌', + past: '%s 枚艌', + s: 'birn盲莽e sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir a媒', + MM: '%d a媒', + y: 'bir 媒yl', + yy: '%d 媒yl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa鈥檁cha鈥檁wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu鈥' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate$a(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + moment.defineLocale('tlh', { + months: 'tera鈥 jar wa鈥檁tera鈥 jar cha鈥檁tera鈥 jar wej_tera鈥 jar loS_tera鈥 jar vagh_tera鈥 jar jav_tera鈥 jar Soch_tera鈥 jar chorgh_tera鈥 jar Hut_tera鈥 jar wa鈥檓aH_tera鈥 jar wa鈥檓aH wa鈥檁tera鈥 jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsShort: + 'jar wa鈥檁jar cha鈥檁jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa鈥檓aH_jar wa鈥檓aH wa鈥檁jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa鈥檒eS] LT', + nextWeek: 'LLL', + lastDay: '[wa鈥橦u鈥橾 LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate$a, + m: 'wa鈥 tup', + mm: translate$a, + h: 'wa鈥 rep', + hh: translate$a, + d: 'wa鈥 jaj', + dd: translate$a, + M: 'wa鈥 jar', + MM: translate$a, + y: 'wa鈥 DIS', + yy: translate$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var suffixes$5 = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'眉nc眉", + 4: "'眉nc眉", + 100: "'眉nc眉", + 6: "'nc谋", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'谋nc谋", + 90: "'谋nc谋", + }; + + moment.defineLocale('tr', { + months: 'Ocak_艦ubat_Mart_Nisan_May谋s_Haziran_Temmuz_A臒ustos_Eyl眉l_Ekim_Kas谋m_Aral谋k'.split( + '_' + ), + monthsShort: 'Oca_艦ub_Mar_Nis_May_Haz_Tem_A臒u_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Sal谋_脟ar艧amba_Per艧embe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_脟ar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_脟a_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? '枚枚' : '脰脰'; + } else { + return isLower ? '枚s' : '脰S'; + } + }, + meridiemParse: /枚枚|脰脰|枚s|脰S/, + isPM: function (input) { + return input === '枚s' || input === '脰S'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[yar谋n saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[d眉n] LT', + lastWeek: '[ge莽en] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 枚nce', + s: 'birka莽 saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir y谋l', + yy: '%d y谋l', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'谋nc谋"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Mar莽_Avr茂u_Mai_G眉n_Julia_Guscht_Setemvar_Listop盲ts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_G眉n_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'S煤ladi_L煤ne莽i_Maitzi_M谩rcuri_Xh煤adi_Vi茅ner莽i_S谩turi'.split('_'), + weekdaysShort: 'S煤l_L煤n_Mai_M谩r_Xh煤_Vi茅_S谩t'.split('_'), + weekdaysMin: 'S煤_L煤_Ma_M谩_Xh_Vi_S谩'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi 脿] LT', + nextDay: '[dem脿 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[ieiri 脿] LT', + lastWeek: '[s眉r el] dddd [lasteu 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime$8, + ss: processRelativeTime$8, + m: processRelativeTime$8, + mm: processRelativeTime$8, + h: processRelativeTime$8, + hh: processRelativeTime$8, + d: processRelativeTime$8, + dd: processRelativeTime$8, + M: processRelativeTime$8, + MM: processRelativeTime$8, + y: processRelativeTime$8, + yy: processRelativeTime$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + function processRelativeTime$8(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n m铆ut", "'iens m铆ut"], + mm: [number + ' m铆uts', '' + number + ' m铆uts'], + h: ["'n 镁ora", "'iensa 镁ora"], + hh: [number + ' 镁oras', '' + number + ' 镁oras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + //! moment.js locale configuration + + moment.defineLocale('tzm-latn', { + months: 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minu岣', + mm: '%d minu岣', + h: 'sa蓻a', + hh: '%d tassa蓻in', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('tzm', { + months: '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + monthsShort: + '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + weekdays: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysShort: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysMin: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[獯扳禉獯封祬 獯碷 LT', + nextDay: '[獯扳禉獯解窗 獯碷 LT', + nextWeek: 'dddd [獯碷 LT', + lastDay: '[獯扳禋獯扳祻獾 獯碷 LT', + lastWeek: 'dddd [獯碷 LT', + sameElse: 'L', + }, + relativeTime: { + future: '獯封窗獯封祬 獾 獾⑩窗獾 %s', + past: '獾⑩窗獾 %s', + s: '獾夆祹獾夆唇', + ss: '%d 獾夆祹獾夆唇', + m: '獾庘祲獾忊祿獯', + mm: '%d 獾庘祲獾忊祿獯', + h: '獾欌窗獾勨窗', + hh: '%d 獾溾窗獾欌禉獯扳祫獾夆祻', + d: '獯扳禉獾', + dd: '%d o獾欌禉獯扳祻', + M: '獯扳耽o獾撯禂', + MM: '%d 獾夆耽獾⑩祲獾斺祻', + y: '獯扳禉獯斥窗獾', + yy: '%d 獾夆禉獯斥窗獾欌祻', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('ug-cn', { + months: '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + monthsShort: + '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + weekdays: '賷蹠賰卮蹠賳亘蹠_丿蹐卮蹠賳亘蹠_爻蹠賷卮蹠賳亘蹠_趩丕乇卮蹠賳亘蹠_倬蹠賷卮蹠賳亘蹠_噩蹐賲蹠_卮蹠賳亘蹠'.split( + '_' + ), + weekdaysShort: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + weekdaysMin: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶', + LLL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + LLLL: 'dddd貙 YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + }, + meridiemParse: /賷蹛乇賶賲 賰蹛趩蹠|爻蹠诰蹠乇|趩蹐卮鬲賶賳 亘蹏乇蹏賳|趩蹐卮|趩蹐卮鬲賶賳 賰蹛賷賶賳|賰蹠趩/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === '賷蹛乇賶賲 賰蹛趩蹠' || + meridiem === '爻蹠诰蹠乇' || + meridiem === '趩蹐卮鬲賶賳 亘蹏乇蹏賳' + ) { + return hour; + } else if (meridiem === '趩蹐卮鬲賶賳 賰蹛賷賶賳' || meridiem === '賰蹠趩') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '賷蹛乇賶賲 賰蹛趩蹠'; + } else if (hm < 900) { + return '爻蹠诰蹠乇'; + } else if (hm < 1130) { + return '趩蹐卮鬲賶賳 亘蹏乇蹏賳'; + } else if (hm < 1230) { + return '趩蹐卮'; + } else if (hm < 1800) { + return '趩蹐卮鬲賶賳 賰蹛賷賶賳'; + } else { + return '賰蹠趩'; + } + }, + calendar: { + sameDay: '[亘蹐诏蹐賳 爻丕卅蹠鬲] LT', + nextDay: '[卅蹠鬲蹠 爻丕卅蹠鬲] LT', + nextWeek: '[賰蹛賱蹠乇賰賶] dddd [爻丕卅蹠鬲] LT', + lastDay: '[鬲蹎賳蹐诏蹐賳] LT', + lastWeek: '[卅丕賱丿賶賳賯賶] dddd [爻丕卅蹠鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 賰蹛賷賶賳', + past: '%s 亘蹏乇蹏賳', + s: '賳蹠趩趩蹠 爻蹛賰賵賳鬲', + ss: '%d 爻蹛賰賵賳鬲', + m: '亘賶乇 賲賶賳蹏鬲', + mm: '%d 賲賶賳蹏鬲', + h: '亘賶乇 爻丕卅蹠鬲', + hh: '%d 爻丕卅蹠鬲', + d: '亘賶乇 賰蹐賳', + dd: '%d 賰蹐賳', + M: '亘賶乇 卅丕賷', + MM: '%d 卅丕賷', + y: '亘賶乇 賷賶賱', + yy: '%d 賷賶賱', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-賰蹐賳賶|-卅丕賷|-诰蹠倬鬲蹠)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-賰蹐賳賶'; + case 'w': + case 'W': + return number + '-诰蹠倬鬲蹠'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$6(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$4(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写懈_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写懈_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁懈谢懈薪邪_褏胁懈谢懈薪懈_褏胁懈谢懈薪' : '褏胁懈谢懈薪褍_褏胁懈谢懈薪懈_褏胁懈谢懈薪', + hh: withoutSuffix ? '谐芯写懈薪邪_谐芯写懈薪懈_谐芯写懈薪' : '谐芯写懈薪褍_谐芯写懈薪懈_谐芯写懈薪', + dd: '写械薪褜_写薪褨_写薪褨胁', + MM: '屑褨褋褟褑褜_屑褨褋褟褑褨_屑褨褋褟褑褨胁', + yy: '褉褨泻_褉芯泻懈_褉芯泻褨胁', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁懈谢懈薪邪' : '褏胁懈谢懈薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐芯写懈薪邪' : '谐芯写懈薪褍'; + } else { + return number + ' ' + plural$6(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + '薪械写褨谢褟_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写邪_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲廮褋褍斜芯褌邪'.split( + '_' + ), + accusative: + '薪械写褨谢褞_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写褍_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲巁褋褍斜芯褌褍'.split( + '_' + ), + genitive: + '薪械写褨谢褨_锌芯薪械写褨谢泻邪_胁褨胁褌芯褉泻邪_褋械褉械写懈_褔械褌胁械褉谐邪_锌鈥櫻徰傂叫秆喲朹褋褍斜芯褌懈'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[袙胁校褍]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:屑懈薪褍谢芯褩|薪邪褋褌褍锌薪芯褩)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + '芯' + (this.hours() === 11 ? '斜' : '') + '] LT'; + }; + } + + moment.defineLocale('uk', { + months: { + format: '褋褨褔薪褟_谢褞褌芯谐芯_斜械褉械蟹薪褟_泻胁褨褌薪褟_褌褉邪胁薪褟_褔械褉胁薪褟_谢懈锌薪褟_褋械褉锌薪褟_胁械褉械褋薪褟_卸芯胁褌薪褟_谢懈褋褌芯锌邪写邪_谐褉褍写薪褟'.split( + '_' + ), + standalone: + '褋褨褔械薪褜_谢褞褌懈泄_斜械褉械蟹械薪褜_泻胁褨褌械薪褜_褌褉邪胁械薪褜_褔械褉胁械薪褜_谢懈锌械薪褜_褋械褉锌械薪褜_胁械褉械褋械薪褜_卸芯胁褌械薪褜_谢懈褋褌芯锌邪写_谐褉褍写械薪褜'.split( + '_' + ), + }, + monthsShort: '褋褨褔_谢褞褌_斜械褉_泻胁褨褌_褌褉邪胁_褔械褉胁_谢懈锌_褋械褉锌_胁械褉_卸芯胁褌_谢懈褋褌_谐褉褍写'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 褉.', + LLL: 'D MMMM YYYY 褉., HH:mm', + LLLL: 'dddd, D MMMM YYYY 褉., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[小褜芯谐芯写薪褨 '), + nextDay: processHoursFunction('[袟邪胁褌褉邪 '), + lastDay: processHoursFunction('[袙褔芯褉邪 '), + nextWeek: processHoursFunction('[校] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[袦懈薪褍谢芯褩] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[袦懈薪褍谢芯谐芯] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '%s 褌芯屑褍', + s: '写械泻褨谢褜泻邪 褋械泻褍薪写', + ss: relativeTimeWithPlural$4, + m: relativeTimeWithPlural$4, + mm: relativeTimeWithPlural$4, + h: '谐芯写懈薪褍', + hh: relativeTimeWithPlural$4, + d: '写械薪褜', + dd: relativeTimeWithPlural$4, + M: '屑褨褋褟褑褜', + MM: relativeTimeWithPlural$4, + y: '褉褨泻', + yy: relativeTimeWithPlural$4, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /薪芯褔褨|褉邪薪泻褍|写薪褟|胁械褔芯褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔芯褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褨'; + } else if (hour < 12) { + return '褉邪薪泻褍'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔芯褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$a = [ + '噩賳賵乇蹖', + '賮乇賵乇蹖', + '賲丕乇趩', + '丕倬乇蹖賱', + '賲卅蹖', + '噩賵賳', + '噩賵賱丕卅蹖', + '丕诏爻鬲', + '爻鬲賲亘乇', + '丕讴鬲賵亘乇', + '賳賵賲亘乇', + '丿爻賲亘乇', + ], + days$1 = ['丕鬲賵丕乇', '倬蹖乇', '賲賳诏賱', '亘丿诰', '噩賲毓乇丕鬲', '噩賲毓蹃', '蹃賮鬲蹃']; + + moment.defineLocale('ur', { + months: months$a, + monthsShort: months$a, + weekdays: days$1, + weekdaysShort: days$1, + weekdaysMin: days$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丌噩 亘賵賯鬲] LT', + nextDay: '[讴賱 亘賵賯鬲] LT', + nextWeek: 'dddd [亘賵賯鬲] LT', + lastDay: '[诏匕卮鬲蹃 乇賵夭 亘賵賯鬲] LT', + lastWeek: '[诏匕卮鬲蹃] dddd [亘賵賯鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 亘毓丿', + past: '%s 賯亘賱', + s: '趩賳丿 爻蹖讴賳趫', + ss: '%d 爻蹖讴賳趫', + m: '丕蹖讴 賲賳俟', + mm: '%d 賲賳俟', + h: '丕蹖讴 诏诰賳俟蹃', + hh: '%d 诏诰賳俟蹝', + d: '丕蹖讴 丿賳', + dd: '%d 丿賳', + M: '丕蹖讴 賲丕蹃', + MM: '%d 賲丕蹃', + y: '丕蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('uz', { + months: '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '携泻褕邪薪斜邪_袛褍褕邪薪斜邪_小械褕邪薪斜邪_效芯褉褕邪薪斜邪_袩邪泄褕邪薪斜邪_袞褍屑邪_楔邪薪斜邪'.split('_'), + weekdaysShort: '携泻褕_袛褍褕_小械褕_效芯褉_袩邪泄_袞褍屑_楔邪薪'.split('_'), + weekdaysMin: '携泻_袛褍_小械_效芯_袩邪_袞褍_楔邪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[袘褍谐褍薪 褋芯邪褌] LT [写邪]', + nextDay: '[协褉褌邪谐邪] LT [写邪]', + nextWeek: 'dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + lastDay: '[袣械褔邪 褋芯邪褌] LT [写邪]', + lastWeek: '[校褌谐邪薪] dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + sameElse: 'L', + }, + relativeTime: { + future: '携泻懈薪 %s 懈褔懈写邪', + past: '袘懈褉 薪械褔邪 %s 芯谢写懈薪', + s: '褎褍褉褋邪褌', + ss: '%d 褎褍褉褋邪褌', + m: '斜懈褉 写邪泻懈泻邪', + mm: '%d 写邪泻懈泻邪', + h: '斜懈褉 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '斜懈褉 泻褍薪', + dd: '%d 泻褍薪', + M: '斜懈褉 芯泄', + MM: '%d 芯泄', + y: '斜懈褉 泄懈谢', + yy: '%d 泄懈谢', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('vi', { + months: 'th谩ng 1_th谩ng 2_th谩ng 3_th谩ng 4_th谩ng 5_th谩ng 6_th谩ng 7_th谩ng 8_th谩ng 9_th谩ng 10_th谩ng 11_th谩ng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ch峄 nh岷璽_th峄 hai_th峄 ba_th峄 t瓢_th峄 n膬m_th峄 s谩u_th峄 b岷'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [n膬m] YYYY', + LLL: 'D MMMM [n膬m] YYYY HH:mm', + LLLL: 'dddd, D MMMM [n膬m] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[H么m nay l煤c] LT', + nextDay: '[Ng脿y mai l煤c] LT', + nextWeek: 'dddd [tu岷 t峄沬 l煤c] LT', + lastDay: '[H么m qua l煤c] LT', + lastWeek: 'dddd [tu岷 tr瓢峄沜 l煤c] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s t峄沬', + past: '%s tr瓢峄沜', + s: 'v脿i gi芒y', + ss: '%d gi芒y', + m: 'm峄檛 ph煤t', + mm: '%d ph煤t', + h: 'm峄檛 gi峄', + hh: '%d gi峄', + d: 'm峄檛 ng脿y', + dd: '%d ng脿y', + w: 'm峄檛 tu岷', + ww: '%d tu岷', + M: 'm峄檛 th谩ng', + MM: '%d th谩ng', + y: 'm峄檛 n膬m', + yy: '%d n膬m', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('x-pseudo', { + months: 'J~谩帽煤谩~r媒_F~茅br煤~谩r媒_~M谩rc~h_脕p~r铆l_~M谩媒_~J煤帽茅~_J煤l~媒_脕煤~g煤st~_S茅p~t茅mb~茅r_脫~ct贸b~茅r_脩~贸v茅m~b茅r_~D茅c茅~mb茅r'.split( + '_' + ), + monthsShort: + 'J~谩帽_~F茅b_~M谩r_~脕pr_~M谩媒_~J煤帽_~J煤l_~脕煤g_~S茅p_~脫ct_~脩贸v_~D茅c'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~煤帽d谩~媒_M贸~帽d谩媒~_T煤茅~sd谩媒~_W茅d~帽茅sd~谩媒_T~h煤rs~d谩媒_~Fr铆d~谩媒_S~谩t煤r~d谩媒'.split( + '_' + ), + weekdaysShort: 'S~煤帽_~M贸帽_~T煤茅_~W茅d_~Th煤_~Fr铆_~S谩t'.split('_'), + weekdaysMin: 'S~煤_M贸~_T煤_~W茅_T~h_Fr~_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~贸d谩~媒 谩t] LT', + nextDay: '[T~贸m贸~rr贸~w 谩t] LT', + nextWeek: 'dddd [谩t] LT', + lastDay: '[脻~茅st~茅rd谩~媒 谩t] LT', + lastWeek: '[L~谩st] dddd [谩t] LT', + sameElse: 'L', + }, + relativeTime: { + future: '铆~帽 %s', + past: '%s 谩~g贸', + s: '谩 ~f茅w ~s茅c贸~帽ds', + ss: '%d s~茅c贸帽~ds', + m: '谩 ~m铆帽~煤t茅', + mm: '%d m~铆帽煤~t茅s', + h: '谩~帽 h贸~煤r', + hh: '%d h~贸煤rs', + d: '谩 ~d谩媒', + dd: '%d d~谩媒s', + M: '谩 ~m贸帽~th', + MM: '%d m~贸帽t~hs', + y: '谩 ~媒茅谩r', + yy: '%d 媒~茅谩rs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('yo', { + months: 'S岷固乺岷固乢E虁re虁le虁_岷竢岷固na虁_I虁gbe虂_E虁bibi_O虁ku虁du_Ag岷筸o_O虁gu虂n_Owewe_峄屘wa虁ra虁_Be虂lu虂_峄屘p岷固虁'.split( + '_' + ), + monthsShort: 'S岷固乺_E虁rl_岷竢n_I虁gb_E虁bi_O虁ku虁_Ag岷筥O虁gu虂_Owe_峄屘wa虁_Be虂l_峄屘p岷固虁'.split('_'), + weekdays: 'A虁i虁ku虂_Aje虂_I虁s岷固乬un_峄宩峄嵦乺u虂_峄宩峄嵦乥峄峗岷竧i虁_A虁ba虂m岷固乼a'.split('_'), + weekdaysShort: 'A虁i虁k_Aje虂_I虁s岷固乢峄宩r_峄宩b_岷竧i虁_A虁ba虂'.split('_'), + weekdaysMin: 'A虁i虁_Aj_I虁s_峄宺_峄宐_岷竧_A虁b'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[O虁ni虁 ni] LT', + nextDay: '[峄屘la ni] LT', + nextWeek: "dddd [峄宻岷固 to虂n'b峄峕 [ni] LT", + lastDay: '[A虁na ni] LT', + lastWeek: 'dddd [峄宻岷固 to虂l峄嵦乚 [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ni虂 %s', + past: '%s k峄峧a虂', + s: 'i虁s岷筳u虂 aaya虂 die', + ss: 'aaya虂 %d', + m: 'i虁s岷筳u虂 kan', + mm: 'i虁s岷筳u虂 %d', + h: 'wa虂kati kan', + hh: 'wa虂kati %d', + d: '峄峧峄嵦 kan', + dd: '峄峧峄嵦 %d', + M: 'osu虁 kan', + MM: 'osu虁 %d', + y: '峄峝u虂n kan', + yy: '峄峝u虂n %d', + }, + dayOfMonthOrdinalParse: /峄峧峄嵦乗s\d{1,2}/, + ordinal: '峄峧峄嵦 %d', + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-cn', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '鍛ㄦ棩_鍛ㄤ竴_鍛ㄤ簩_鍛ㄤ笁_鍛ㄥ洓_鍛ㄤ簲_鍛ㄥ叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃h鐐筸m鍒', + LLLL: 'YYYY骞碝鏈圖鏃dddAh鐐筸m鍒', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } else { + // '涓崍' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[涓媇dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + lastDay: '[鏄ㄥぉ]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[涓奭dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾鍛)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '鍛'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍚', + past: '%s鍓', + s: '鍑犵', + ss: '%d 绉', + m: '1 鍒嗛挓', + mm: '%d 鍒嗛挓', + h: '1 灏忔椂', + hh: '%d 灏忔椂', + d: '1 澶', + dd: '%d 澶', + w: '1 鍛', + ww: '%d 鍛', + M: '1 涓湀', + MM: '%d 涓湀', + y: '1 骞', + yy: '%d 骞', + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + 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. + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-hk', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1200) { + return '涓婂崍'; + } else if (hm === 1200) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: '[涓媇ddddLT', + lastDay: '[鏄ㄥぉ]LT', + lastWeek: '[涓奭ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-mo', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍏', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + //! moment.js locale configuration + + moment.defineLocale('zh-tw', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + moment.locale('en'); + + return moment; + +}))); diff --git a/node_modules/moment/min/locales.min.js b/node_modules/moment/min/locales.min.js new file mode 100644 index 0000000..b77ab6b --- /dev/null +++ b/node_modules/moment/min/locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module&&"function"==typeof require?a(require("../moment")):"function"==typeof define&&define.amd?define(["../moment"],a):a(e.moment)}(this,function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,a,_){return e<12?_?"vm":"VM":_?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||20<=e?"ste":"de")},week:{dow:1,doy:4}});function E(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function a(n){return function(e,a,_,s){var d=E(e),t=J[n][E(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}function F(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function _(n){return function(e,a,_,s){var d=F(e),t=N[n][F(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}function z(e){return 0===e?0:1===e?1:2===e?2:3<=e%100&&e%100<=10?3:11<=e%100?4:5}function s(n){return function(e,a,_,s){var d=z(e),t=B[n][z(e)];return(t=2===d?t[a?0:1]:t).replace(/%d/i,e)}}var J={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u062c\u0627\u0646\u0641\u064a","\u0641\u064a\u0641\u0631\u064a","\u0645\u0627\u0631\u0633","\u0623\u0641\u0631\u064a\u0644","\u0645\u0627\u064a","\u062c\u0648\u0627\u0646","\u062c\u0648\u064a\u0644\u064a\u0629","\u0623\u0648\u062a","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],I=(e.defineLocale("ar-dz",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},postformat:function(e){return e.replace(/,/g,"\u060c")},week:{dow:0,doy:4}}),e.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}}),{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"}),N={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],R=(e.defineLocale("ar-ly",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:_("s"),ss:_("s"),m:_("m"),mm:_("m"),h:_("h"),hh:_("h"),d:_("d"),dd:_("d"),M:_("M"),MM:_("M"),y:_("y"),yy:_("y")},preparse:function(e){return e.replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return I[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),e.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}}),{1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"}),C={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},K=(e.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return C[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return R[e]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}}),e.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}}),{1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"}),G={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},B={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},d=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"],q=(e.defineLocale("ar",{months:d,monthsShort:d,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(e){return"\u0645"===e},meridiem:function(e,a,_){return e<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(e){return e.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(e){return G[e]}).replace(/\u060c/g,",")},postformat:function(e){return e.replace(/\d/g,function(e){return K[e]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"});function t(e,a,_){return"m"===_?a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===_?a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":e+" "+(e=+e,a=(a={ss:a?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:a?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:a?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[_]).split("_"),e%10==1&&e%100!=11?a[0]:2<=e%10&&e%10<=4&&(e%100<10||20<=e%100)?a[1]:a[2])}e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"bir ne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(e){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(e)},meridiem:function(e,a,_){return e<4?"gec\u0259":e<12?"s\u0259h\u0259r":e<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(e){if(0===e)return e+"-\u0131nc\u0131";var a=e%10;return e+(q[a]||q[e%100-a]||q[100<=e?100:null])},week:{dow:1,doy:7}}),e.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:t,mm:t,h:t,hh:t,d:"\u0434\u0437\u0435\u043d\u044c",dd:t,M:"\u043c\u0435\u0441\u044f\u0446",MM:t,y:"\u0433\u043e\u0434",yy:t},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(e){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(e)},meridiem:function(e,a,_){return e<4?"\u043d\u043e\u0447\u044b":e<12?"\u0440\u0430\u043d\u0456\u0446\u044b":e<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(e,a){switch(a){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-\u044b":e+"-\u0456";case"D":return e+"-\u0433\u0430";default:return e}},week:{dow:1,doy:7}}),e.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0443_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u041c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u041c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",w:"\u0441\u0435\u0434\u043c\u0438\u0446\u0430",ww:"%d \u0441\u0435\u0434\u043c\u0438\u0446\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(e){var a=e%10,_=e%100;return 0===e?e+"-\u0435\u0432":0==_?e+"-\u0435\u043d":10<_&&_<20?e+"-\u0442\u0438":1==a?e+"-\u0432\u0438":2==a?e+"-\u0440\u0438":7==a||8==a?e+"-\u043c\u0438":e+"-\u0442\u0438"},week:{dow:1,doy:7}}),e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}});var U={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},$={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},Q=(e.defineLocale("bn-bd",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return $[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return U[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09ad\u09cb\u09b0|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a?e<4?e:e+12:"\u09ad\u09cb\u09b0"===a||"\u09b8\u0995\u09be\u09b2"===a?e:"\u09a6\u09c1\u09aa\u09c1\u09b0"===a?3<=e?e:e+12:"\u09ac\u09bf\u0995\u09be\u09b2"===a||"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be"===a?e+12:void 0},meridiem:function(e,a,_){return e<4?"\u09b0\u09be\u09a4":e<6?"\u09ad\u09cb\u09b0":e<12?"\u09b8\u0995\u09be\u09b2":e<15?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<18?"\u09ac\u09bf\u0995\u09be\u09b2":e<20?"\u09b8\u09a8\u09cd\u09a7\u09cd\u09af\u09be":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}}),{1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"}),V={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"},Z=(e.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09bf_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(e){return e.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(e){return V[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Q[e]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u09b0\u09be\u09a4"===a&&4<=e||"\u09a6\u09c1\u09aa\u09c1\u09b0"===a&&e<5||"\u09ac\u09bf\u0995\u09be\u09b2"===a?e+12:e},meridiem:function(e,a,_){return e<4?"\u09b0\u09be\u09a4":e<10?"\u09b8\u0995\u09be\u09b2":e<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":e<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}}),{1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"}),X={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};function ee(e,a,_){return e+" "+(_={mm:"munutenn",MM:"miz",dd:"devezh"}[_],2!==(e=e)?_:void 0!==(e={m:"v",b:"v",d:"z"})[(_=_).charAt(0)]?e[_.charAt(0)]+_.substring(1):_)}e.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b1_\u0f5f\u0fb3\u0f0b2_\u0f5f\u0fb3\u0f0b3_\u0f5f\u0fb3\u0f0b4_\u0f5f\u0fb3\u0f0b5_\u0f5f\u0fb3\u0f0b6_\u0f5f\u0fb3\u0f0b7_\u0f5f\u0fb3\u0f0b8_\u0f5f\u0fb3\u0f0b9_\u0f5f\u0fb3\u0f0b10_\u0f5f\u0fb3\u0f0b11_\u0f5f\u0fb3\u0f0b12".split("_"),monthsShortRegex:/^(\u0f5f\u0fb3\u0f0b\d{1,2})/,monthsParseExact:!0,weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72_\u0f5f\u0fb3_\u0f58\u0f72\u0f42_\u0f63\u0fb7\u0f42_\u0f55\u0f74\u0f62_\u0f66\u0f44\u0f66_\u0f66\u0fa4\u0f7a\u0f53".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(e){return e.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(e){return X[e]})},postformat:function(e){return e.replace(/\d/g,function(e){return Z[e]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(e,a){return 12===e&&(e=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===a&&4<=e||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===a&&e<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===a?e+12:e},meridiem:function(e,a,_){return e<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":e<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":e<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":e<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}});var d=[/^gen/i,/^c[\u02bc\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],n=/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,r=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];function i(e,a,_){var s=e+" ";switch(_){case"ss":return s+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return a?"jedna minuta":"jedne minute";case"mm":return s+=1!==e&&(2===e||3===e||4===e)?"minute":"minuta";case"h":return a?"jedan sat":"jednog sata";case"hh":return s+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return s+=1===e?"dan":"dana";case"MM":return s+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return s+=1!==e&&(2===e||3===e||4===e)?"godine":"godina"}}e.defineLocale("br",{months:"Genver_C\u02bchwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C\u02bchwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc\u02bcher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:r,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[\u02bc\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:r,monthsRegex:n,monthsShortRegex:n,monthsStrictRegex:/^(genver|c[\u02bc\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[\u02bc\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:d,longMonthsParse:d,shortMonthsParse:d,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc\u02bchoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec\u02bch da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s \u02bczo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:ee,h:"un eur",hh:"%d eur",d:"un devezh",dd:ee,M:"ur miz",MM:ee,y:"ur bloaz",yy:function(e){switch(function e(a){if(9>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([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 ( + 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; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + 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 ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + '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(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.29.4'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + //! moment.js locale configuration + + hooks.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[M么re om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\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 + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, + }); + + //! moment.js locale configuration + + var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$1 = [ + '噩丕賳賮賷', + '賮賷賮乇賷', + '賲丕乇爻', + '兀賮乇賷賱', + '賲丕賷', + '噩賵丕賳', + '噩賵賷賱賷丞', + '兀賵鬲', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + hooks.defineLocale('ar-dz', { + months: months$1, + monthsShort: months$1, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-kw', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿鬲賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕鬲賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm$1 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$1 = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize$1 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$1(number), + str = plurals$1[u][pluralForm$1(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$2 = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + hooks.defineLocale('ar-ly', { + months: months$2, + monthsShort: months$2, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize$1('s'), + ss: pluralize$1('s'), + m: pluralize$1('m'), + mm: pluralize$1('m'), + h: pluralize$1('h'), + hh: pluralize$1('h'), + d: pluralize$1('d'), + dd: pluralize$1('d'), + M: pluralize$1('M'), + MM: pluralize$1('M'), + y: pluralize$1('y'), + yy: pluralize$1('y'), + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-ma', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕孬賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$1 = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }; + + hooks.defineLocale('ar-sa', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$1[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ar-tn', { + months: '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$2 = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap$1 = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + pluralForm$2 = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals$2 = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize$2 = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm$2(number), + str = plurals$2[u][pluralForm$2(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months$3 = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + + hooks.defineLocale('ar', { + months: months$3, + monthsShort: months$3, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize$2('s'), + ss: pluralize$2('s'), + m: pluralize$2('m'), + mm: pluralize$2('m'), + h: pluralize$2('h'), + hh: pluralize$2('h'), + d: pluralize$2('d'), + dd: pluralize$2('d'), + M: pluralize$2('M'), + MM: pluralize$2('M'), + y: pluralize$2('y'), + yy: pluralize$2('y'), + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap$1[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$2[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-眉nc眉', + 4: '-眉nc眉', + 100: '-眉nc眉', + 6: '-nc谋', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-谋nc谋', + 90: '-谋nc谋', + }; + + hooks.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ert蓹si_脟蓹r艧蓹nb蓹 ax艧am谋_脟蓹r艧蓹nb蓹_C眉m蓹 ax艧am谋_C眉m蓹_艦蓹nb蓹'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_脟Ax_脟蓹r_CAx_C眉m_艦蓹n'.split('_'), + weekdaysMin: 'Bz_BE_脟A_脟蓹_CA_C眉_艦蓹'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[g蓹l蓹n h蓹ft蓹] dddd [saat] LT', + lastDay: '[d眉n蓹n] LT', + lastWeek: '[ke莽蓹n h蓹ft蓹] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 蓹vv蓹l', + s: 'bir ne莽蓹 saniy蓹', + ss: '%d saniy蓹', + m: 'bir d蓹qiq蓹', + mm: '%d d蓹qiq蓹', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gec蓹|s蓹h蓹r|g眉nd眉z|ax艧am/, + isPM: function (input) { + return /^(g眉nd眉z|ax艧am)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gec蓹'; + } else if (hour < 12) { + return 's蓹h蓹r'; + } else if (hour < 17) { + return 'g眉nd眉z'; + } else { + return 'ax艧am'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(谋nc谋|inci|nci|眉nc眉|nc谋|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-谋nc谋'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁褨谢褨薪邪_褏胁褨谢褨薪褘_褏胁褨谢褨薪' : '褏胁褨谢褨薪褍_褏胁褨谢褨薪褘_褏胁褨谢褨薪', + hh: withoutSuffix ? '谐邪写蟹褨薪邪_谐邪写蟹褨薪褘_谐邪写蟹褨薪' : '谐邪写蟹褨薪褍_谐邪写蟹褨薪褘_谐邪写蟹褨薪', + dd: '写蟹械薪褜_写薪褨_写蟹褢薪', + MM: '屑械褋褟褑_屑械褋褟褑褘_屑械褋褟褑邪褳', + yy: '谐芯写_谐邪写褘_谐邪写芯褳', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁褨谢褨薪邪' : '褏胁褨谢褨薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐邪写蟹褨薪邪' : '谐邪写蟹褨薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } + } + + hooks.defineLocale('be', { + months: { + format: '褋褌褍写蟹械薪褟_谢褞褌邪谐邪_褋邪泻邪胁褨泻邪_泻褉邪褋邪胁褨泻邪_褌褉邪褳薪褟_褔褝褉胁械薪褟_谢褨锌械薪褟_卸薪褨褳薪褟_胁械褉邪褋薪褟_泻邪褋褌褉褘褔薪褨泻邪_谢褨褋褌邪锌邪写邪_褋薪械卸薪褟'.split( + '_' + ), + standalone: + '褋褌褍写蟹械薪褜_谢褞褌褘_褋邪泻邪胁褨泻_泻褉邪褋邪胁褨泻_褌褉邪胁械薪褜_褔褝褉胁械薪褜_谢褨锌械薪褜_卸薪褨胁械薪褜_胁械褉邪褋械薪褜_泻邪褋褌褉褘褔薪褨泻_谢褨褋褌邪锌邪写_褋薪械卸邪薪褜'.split( + '_' + ), + }, + monthsShort: + '褋褌褍写_谢褞褌_褋邪泻_泻褉邪褋_褌褉邪胁_褔褝褉胁_谢褨锌_卸薪褨胁_胁械褉_泻邪褋褌_谢褨褋褌_褋薪械卸'.split('_'), + weekdays: { + format: '薪褟写蟹械谢褞_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写褍_褔邪褑胁械褉_锌褟褌薪褨褑褍_褋褍斜芯褌褍'.split( + '_' + ), + standalone: + '薪褟写蟹械谢褟_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写邪_褔邪褑胁械褉_锌褟褌薪褨褑邪_褋褍斜芯褌邪'.split( + '_' + ), + isFormat: /\[ ?[校褍褳] ?(?:屑褨薪褍谢褍褞|薪邪褋褌褍锌薪褍褞)? ?\] ?dddd/, + }, + weekdaysShort: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., HH:mm', + LLLL: 'dddd, D MMMM YYYY 谐., HH:mm', + }, + calendar: { + sameDay: '[小褢薪薪褟 褳] LT', + nextDay: '[袟邪褳褌褉邪 褳] LT', + lastDay: '[校褔芯褉邪 褳] LT', + nextWeek: function () { + return '[校] dddd [褳] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[校 屑褨薪褍谢褍褞] dddd [褳] LT'; + case 1: + case 2: + case 4: + return '[校 屑褨薪褍谢褘] dddd [褳] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '锌褉邪蟹 %s', + past: '%s 褌邪屑褍', + s: '薪械泻邪谢褜泻褨 褋械泻褍薪写', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: '写蟹械薪褜', + dd: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔褘|褉邪薪褨褑褘|写薪褟|胁械褔邪褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔邪褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褘'; + } else if (hour < 12) { + return '褉邪薪褨褑褘'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔邪褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褨|褘|谐邪)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-褨' + : number + '-褘'; + case 'D': + return number + '-谐邪'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('bg', { + months: '褟薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪泄_褞薪懈_褞谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褟薪褍_褎械胁_屑邪褉_邪锌褉_屑邪泄_褞薪懈_褞谢懈_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢褟_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉褟写邪_褔械褌胁褗褉褌褗泻_锌械褌褗泻_褋褗斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉褟_褔械褌_锌械褌_褋褗斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛薪械褋 胁] LT', + nextDay: '[校褌褉械 胁] LT', + nextWeek: 'dddd [胁] LT', + lastDay: '[袙褔械褉邪 胁] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袦懈薪邪谢邪褌邪] dddd [胁] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袦懈薪邪谢懈褟] dddd [胁] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '褋谢械写 %s', + past: '锌褉械写懈 %s', + s: '薪褟泻芯谢泻芯 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '褔邪褋', + hh: '%d 褔邪褋邪', + d: '写械薪', + dd: '%d 写械薪邪', + w: '褋械写屑懈褑邪', + ww: '%d 褋械写屑懈褑懈', + M: '屑械褋械褑', + MM: '%d 屑械褋械褑邪', + y: '谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M蓻kalo_Zuw蓻nkalo_Zuluyekalo_Utikalo_S蓻tanburukalo_蓴kut蓴burukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_M蓻_Zuw_Zul_Uti_S蓻t_蓴ku_Now_Des'.split('_'), + weekdays: 'Kari_Nt蓻n蓻n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Nt蓻_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + }, + calendar: { + sameDay: '[Bi l蓻r蓻] LT', + nextDay: '[Sini l蓻r蓻] LT', + nextWeek: 'dddd [don l蓻r蓻] LT', + lastDay: '[Kunu l蓻r蓻] LT', + lastWeek: 'dddd [t蓻m蓻nen l蓻r蓻] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s k蓴n蓴', + past: 'a b蓻 %s b蓴', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'l蓻r蓻 kelen', + hh: 'l蓻r蓻 %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$3 = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap$2 = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + hooks.defineLocale('bn-bd', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap$2[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$3[match]; + }); + }, + + meridiemParse: /唳班唳唳唳皘唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳膏Θ唰嵿Η唰嵿Ο唳緗唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '唳班唳') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '唳唳') { + return hour; + } else if (meridiem === '唳膏唳距Σ') { + return hour; + } else if (meridiem === '唳︵唳唳') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === '唳唳曕唳') { + return hour + 12; + } else if (meridiem === '唳膏Θ唰嵿Η唰嵿Ο唳') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 6) { + return '唳唳'; + } else if (hour < 12) { + return '唳膏唳距Σ'; + } else if (hour < 15) { + return '唳︵唳唳'; + } else if (hour < 18) { + return '唳唳曕唳'; + } else if (hour < 20) { + return '唳膏Θ唰嵿Η唰嵿Ο唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$4 = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap$3 = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + + hooks.defineLocale('bn', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap$3[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$4[match]; + }); + }, + meridiemParse: /唳班唳唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '唳班唳' && hour >= 4) || + (meridiem === '唳︵唳唳' && hour < 5) || + meridiem === '唳唳曕唳' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 10) { + return '唳膏唳距Σ'; + } else if (hour < 17) { + return '唳︵唳唳'; + } else if (hour < 20) { + return '唳唳曕唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$5 = { + 1: '嗉', + 2: '嗉', + 3: '嗉', + 4: '嗉', + 5: '嗉', + 6: '嗉', + 7: '嗉', + 8: '嗉', + 9: '嗉', + 0: '嗉', + }, + numberMap$4 = { + '嗉': '1', + '嗉': '2', + '嗉': '3', + '嗉': '4', + '嗉': '5', + '嗉': '6', + '嗉': '7', + '嗉': '8', + '嗉': '9', + '嗉': '0', + }; + + hooks.defineLocale('bo', { + months: '嘟熰境嗉嬥綎嗉嬥綉嘟勦紜嘟斷郊_嘟熰境嗉嬥綎嗉嬥絺嘟夃讲嘟︵紜嘟擾嘟熰境嗉嬥綎嗉嬥絺嘟︵酱嘟樴紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟炧讲嗉嬥綌_嘟熰境嗉嬥綎嗉嬥剑嗑斷紜嘟擾嘟熰境嗉嬥綎嗉嬥綉嗑侧酱嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟戉酱嘟撪紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟⑧緬嗑编綉嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綉嘟傕酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟呧讲嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟夃讲嘟︵紜嘟'.split( + '_' + ), + monthsShort: + '嘟熰境嗉1_嘟熰境嗉2_嘟熰境嗉3_嘟熰境嗉4_嘟熰境嗉5_嘟熰境嗉6_嘟熰境嗉7_嘟熰境嗉8_嘟熰境嗉9_嘟熰境嗉10_嘟熰境嗉11_嘟熰境嗉12'.split( + '_' + ), + monthsShortRegex: /^(嘟熰境嗉媆d{1,2})/, + monthsParseExact: true, + weekdays: + '嘟傕綗嘟犩紜嘟夃讲嗉嬥綐嗉媉嘟傕綗嘟犩紜嘟熰境嗉嬥綎嗉媉嘟傕綗嘟犩紜嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟傕綗嘟犩紜嘟`痉嘟傕紜嘟斷紜_嘟傕綗嘟犩紜嘟曕酱嘟⑧紜嘟栢酱_嘟傕綗嘟犩紜嘟斷紜嘟︵絼嘟︵紜_嘟傕綗嘟犩紜嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysShort: '嘟夃讲嗉嬥綐嗉媉嘟熰境嗉嬥綎嗉媉嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟`痉嘟傕紜嘟斷紜_嘟曕酱嘟⑧紜嘟栢酱_嘟斷紜嘟︵絼嘟︵紜_嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysMin: '嘟夃讲_嘟熰境_嘟樴讲嘟俖嘟`痉嘟俖嘟曕酱嘟嘟︵絼嘟嘟︵兢嘟亨綋'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嘟戉讲嗉嬥舰嘟侧絼] LT', + nextDay: '[嘟︵絼嗉嬥綁嘟侧綋] LT', + nextWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥舰嗑椸胶嘟︵紜嘟榏, LT', + lastDay: '[嘟佮紜嘟︵絼] LT', + lastWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥綐嘟愢綘嗉嬥綐] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嘟`紜', + past: '%s 嘟︵緮嘟撪紜嘟', + s: '嘟`綐嗉嬥溅嘟', + ss: '%d 嘟︵緪嘟⑧紜嘟嗋紞', + m: '嘟︵緪嘟⑧紜嘟樴紜嘟傕絽嘟侧絺', + mm: '%d 嘟︵緪嘟⑧紜嘟', + h: '嘟嗋酱嗉嬥綒嘟监綉嗉嬥絺嘟呧讲嘟', + hh: '%d 嘟嗋酱嗉嬥綒嘟监綉', + d: '嘟夃讲嘟撪紜嘟傕絽嘟侧絺', + dd: '%d 嘟夃讲嘟撪紜', + M: '嘟熰境嗉嬥綎嗉嬥絺嘟呧讲嘟', + MM: '%d 嘟熰境嗉嬥綎', + y: '嘟`郊嗉嬥絺嘟呧讲嘟', + yy: '%d 嘟`郊', + }, + preparse: function (string) { + return string.replace(/[嗉∴饥嗉`激嗉ム鸡嗉о绩嗉┼紶]/g, function (match) { + return numberMap$4[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$5[match]; + }); + }, + meridiemParse: /嘟樴綒嘟撪紜嘟樴郊|嘟炧郊嘟傕溅嗉嬥絸嘟嘟夃讲嘟撪紜嘟傕酱嘟剕嘟戉絺嘟监絼嗉嬥綉嘟倈嘟樴綒嘟撪紜嘟樴郊/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '嘟樴綒嘟撪紜嘟樴郊' && hour >= 4) || + (meridiem === '嘟夃讲嘟撪紜嘟傕酱嘟' && hour < 5) || + meridiem === '嘟戉絺嘟监絼嗉嬥綉嘟' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嘟樴綒嘟撪紜嘟樴郊'; + } else if (hour < 10) { + return '嘟炧郊嘟傕溅嗉嬥絸嘟'; + } else if (hour < 17) { + return '嘟夃讲嘟撪紜嘟傕酱嘟'; + } else if (hour < 20) { + return '嘟戉絺嘟监絼嗉嬥綉嘟'; + } else { + return '嘟樴綒嘟撪紜嘟樴郊'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var monthsParse = [ + /^gen/i, + /^c[始\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex$1 = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[始\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + + hooks.defineLocale('br', { + months: 'Genver_C始hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_C始hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Merc始her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex$1, + monthsShortRegex: monthsRegex$1, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warc始hoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Dec始h da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s 始zo', + s: 'un nebeud segondenno霉', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(a帽|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'a帽' : 'vet'; + 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. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, + }); + + //! moment.js locale configuration + + function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + hooks.defineLocale('bs', { + 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( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[pro拧lu] dddd [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_mar莽_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de mar莽_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[dem脿 a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + //! moment.js locale configuration + + var months$4 = { + format: 'leden_煤nor_b艡ezen_duben_kv臎ten_膷erven_膷ervenec_srpen_z谩艡铆_艡铆jen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_煤nora_b艡ezna_dubna_kv臎tna_膷ervna_膷ervence_srpna_z谩艡铆_艡铆jna_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_煤no_b艡e_dub_kv臎_膷vn_膷vc_srp_z谩艡_艡铆j_lis_pro'.split('_'), + monthsParse$1 = [ + /^led/i, + /^煤no/i, + /^b艡e/i, + /^dub/i, + /^kv臎/i, + /^(膷vn|膷erven$|膷ervna)/i, + /^(膷vc|膷ervenec|膷ervence)/i, + /^srp/i, + /^z谩艡/i, + /^艡铆j/i, + /^lis/i, + /^pro/i, + ], + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsRegex$2 = + /^(leden|煤nor|b艡ezen|duben|kv臎ten|膷ervenec|膷ervence|膷erven|膷ervna|srpen|z谩艡铆|艡铆jen|listopad|prosinec|led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i; + + function plural$1(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; + } + function translate$1(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sekund' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'dny' : 'dn铆'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'm臎s铆c' : 'm臎s铆cem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'm臎s铆ce' : 'm臎s铆c暖'); + } else { + return result + 'm臎s铆ci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$1(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } + } + + hooks.defineLocale('cs', { + months: months$4, + monthsShort: monthsShort, + monthsRegex: monthsRegex$2, + monthsShortRegex: monthsRegex$2, + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|煤nora|煤nor|b艡ezen|b艡ezna|duben|dubna|kv臎ten|kv臎tna|膷ervenec|膷ervence|膷erven|膷ervna|srpen|srpna|z谩艡铆|艡铆jen|艡铆jna|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i, + monthsParse: monthsParse$1, + longMonthsParse: monthsParse$1, + shortMonthsParse: monthsParse$1, + weekdays: 'ned臎le_pond臎l铆_煤ter媒_st艡eda_膷tvrtek_p谩tek_sobota'.split('_'), + weekdaysShort: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + weekdaysMin: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[z铆tra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v ned臎li v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve st艡edu v] LT'; + case 4: + return '[ve 膷tvrtek v] LT'; + case 5: + return '[v p谩tek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[v膷era v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou ned臎li v] LT'; + case 1: + case 2: + return '[minul茅] dddd [v] LT'; + case 3: + return '[minulou st艡edu v] LT'; + case 4: + case 5: + return '[minul媒] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'p艡ed %s', + s: translate$1, + ss: translate$1, + m: translate$1, + mm: translate$1, + h: translate$1, + hh: translate$1, + d: translate$1, + dd: translate$1, + M: translate$1, + MM: translate$1, + y: translate$1, + yy: translate$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('cv', { + months: '泻討褉谢邪褔_薪邪褉討褋_锌褍褕_邪泻邪_屑邪泄_耀訔褉褌屑械_褍褌討_耀褍褉谢邪_邪胁討薪_褞锌邪_褔映泻_褉邪褕褌邪胁'.split( + '_' + ), + monthsShort: '泻討褉_薪邪褉_锌褍褕_邪泻邪_屑邪泄_耀訔褉_褍褌討_耀褍褉_邪胁薪_褞锌邪_褔映泻_褉邪褕'.split('_'), + weekdays: + '胁褘褉褋邪褉薪懈泻褍薪_褌褍薪褌懈泻褍薪_褘褌谢邪褉懈泻褍薪_褞薪泻褍薪_泻訔耀薪械褉薪懈泻褍薪_褝褉薪械泻褍薪_褕討屑邪褌泻褍薪'.split( + '_' + ), + weekdaysShort: '胁褘褉_褌褍薪_褘褌谢_褞薪_泻訔耀_褝褉薪_褕討屑'.split('_'), + weekdaysMin: '胁褉_褌薪_褘褌_褞薪_泻耀_褝褉_褕屑'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔]', + LLL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + LLLL: 'dddd, YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + }, + calendar: { + sameDay: '[袩邪褟薪] LT [褋械褏械褌褉械]', + nextDay: '[蝎褉邪薪] LT [褋械褏械褌褉械]', + lastDay: '[訓薪械褉] LT [褋械褏械褌褉械]', + nextWeek: '[要懈褌械褋] dddd LT [褋械褏械褌褉械]', + lastWeek: '[袠褉褌薪訔] dddd LT [褋械褏械褌褉械]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /褋械褏械褌$/i.exec(output) + ? '褉械薪' + : /耀褍谢$/i.exec(output) + ? '褌邪薪' + : '褉邪薪'; + return output + affix; + }, + past: '%s 泻邪褟谢谢邪', + s: '锌訔褉-懈泻 耀械泻泻褍薪褌', + ss: '%d 耀械泻泻褍薪褌', + m: '锌訔褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '锌訔褉 褋械褏械褌', + hh: '%d 褋械褏械褌', + d: '锌訔褉 泻褍薪', + dd: '%d 泻褍薪', + M: '锌訔褉 褍泄討褏', + MM: '%d 褍泄討褏', + y: '锌訔褉 耀褍谢', + yy: '%d 耀褍谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-屑訔褕/, + ordinal: '%d-屑訔褕', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn 么l', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\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, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶n_man_tir_ons_tor_fre_l酶r'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'p氓 dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'f氓 sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'et 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de-at', { + months: 'J盲nner_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'J盲n._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$1(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de-ch', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$1, + mm: '%d Minuten', + h: processRelativeTime$1, + hh: '%d Stunden', + d: processRelativeTime$1, + dd: processRelativeTime$1, + w: processRelativeTime$1, + ww: '%d Wochen', + M: processRelativeTime$1, + MM: processRelativeTime$1, + y: processRelativeTime$1, + yy: processRelativeTime$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$2(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('de', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime$2, + mm: '%d Minuten', + h: processRelativeTime$2, + hh: '%d Stunden', + d: processRelativeTime$2, + dd: processRelativeTime$2, + w: processRelativeTime$2, + ww: '%d Wochen', + M: processRelativeTime$2, + MM: processRelativeTime$2, + y: processRelativeTime$2, + yy: processRelativeTime$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var months$5 = [ + '迻蕃迋蕺迖蕈迌蕞', + '迠蕃迍薨迌蕺迖蕈迌蕞', + '迚蕨迌蕤迼蕺', + '迖蕲迺薨迌蕞迧蕺', + '迚蕲', + '迻瞢迋薨', + '迻蕺迧蕈迖蕤', + '迖薤迬蕈迱薨迵蕺', + '迱蕃迺薨迵蕃迚薨迍蕈迌蕺', + '迖蕻迒薨迵薤迍蕈迌蕺', + '迋蕻迗蕃迚薨迍蕈迌蕺', + '迲蕤迱蕃迚薨迍蕈迌蕺', + ], + weekdays = [ + '迖蕨迡蕤迖薨迣蕈', + '迉薤迚蕈', + '迖蕈迋薨迬蕨迌蕈', + '迍蕺迡蕈', + '迍蕺迌蕨迱薨迠蕈迣蕤', + '迉蕺迒蕺迌蕺', + '迉蕻迋蕤迉蕤迌蕺', + ]; + + hooks.defineLocale('dv', { + months: months$5, + monthsShort: months$5, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: '迖蕨迡蕤_迉薤迚蕈_迖蕈迋薨_迍蕺迡蕈_迍蕺迌蕨_迉蕺迒蕺_迉蕻迋蕤'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /迚迒|迚迠/, + isPM: function (input) { + return '迚迠' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '迚迒'; + } else { + return '迚迠'; + } + }, + calendar: { + sameDay: '[迚蕤迖蕈迡蕺] LT', + nextDay: '[迚蕨迡蕈迚蕨] LT', + nextWeek: 'dddd LT', + lastDay: '[迖蕤迖薨迶蕃] LT', + lastWeek: '[迠蕨迖蕤迣蕺迗蕤] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '迣蕃迌蕲迬蕈迖蕤 %s', + past: '迒蕺迌蕤迋薨 %s', + s: '迱蕤迒蕺迋薨迣蕺迒蕻迏蕃迖薨', + ss: 'd% 迱蕤迒蕺迋薨迣蕺', + m: '迚蕤迋蕤迵蕃迖薨', + mm: '迚蕤迋蕤迵蕺 %d', + h: '迬蕈迲蕤迖蕤迌蕃迖薨', + hh: '迬蕈迲蕤迖蕤迌蕺 %d', + d: '迡蕺迗蕈迉蕃迖薨', + dd: '迡蕺迗蕈迱薨 %d', + M: '迚蕈迉蕃迖薨', + MM: '迚蕈迱薨 %d', + y: '迖蕈迉蕈迌蕃迖薨', + yy: '迖蕈迉蕈迌蕺 %d', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function isFunction$1(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + hooks.defineLocale('el', { + monthsNominativeEl: + '螜伪谓慰蠀维蟻喂慰蟼_桅蔚尾蟻慰蠀维蟻喂慰蟼_螠维蟻蟿喂慰蟼_螒蟺蟻委位喂慰蟼_螠维喂慰蟼_螜慰蠉谓喂慰蟼_螜慰蠉位喂慰蟼_螒蠉纬慰蠀蟽蟿慰蟼_危蔚蟺蟿苇渭尾蟻喂慰蟼_螣魏蟿蠋尾蟻喂慰蟼_螡慰苇渭尾蟻喂慰蟼_螖蔚魏苇渭尾蟻喂慰蟼'.split( + '_' + ), + monthsGenitiveEl: + '螜伪谓慰蠀伪蟻委慰蠀_桅蔚尾蟻慰蠀伪蟻委慰蠀_螠伪蟻蟿委慰蠀_螒蟺蟻喂位委慰蠀_螠伪螑慰蠀_螜慰蠀谓委慰蠀_螜慰蠀位委慰蠀_螒蠀纬慰蠉蟽蟿慰蠀_危蔚蟺蟿蔚渭尾蟻委慰蠀_螣魏蟿蠅尾蟻委慰蠀_螡慰蔚渭尾蟻委慰蠀_螖蔚魏蔚渭尾蟻委慰蠀'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: '螜伪谓_桅蔚尾_螠伪蟻_螒蟺蟻_螠伪蠆_螜慰蠀谓_螜慰蠀位_螒蠀纬_危蔚蟺_螣魏蟿_螡慰蔚_螖蔚魏'.split('_'), + weekdays: '螝蠀蟻喂伪魏萎_螖蔚蠀蟿苇蟻伪_韦蟻委蟿畏_韦蔚蟿维蟻蟿畏_螤苇渭蟺蟿畏_螤伪蟻伪蟽魏蔚蠀萎_危维尾尾伪蟿慰'.split( + '_' + ), + weekdaysShort: '螝蠀蟻_螖蔚蠀_韦蟻喂_韦蔚蟿_螤蔚渭_螤伪蟻_危伪尾'.split('_'), + weekdaysMin: '螝蠀_螖蔚_韦蟻_韦蔚_螤蔚_螤伪_危伪'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '渭渭' : '螠螠'; + } else { + return isLower ? '蟺渭' : '螤螠'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === '渭'; + }, + meridiemParse: /[螤螠]\.?螠?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[危萎渭蔚蟻伪 {}] LT', + nextDay: '[螒蠉蟻喂慰 {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[围胃蔚蟼 {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[蟿慰 蟺蟻慰畏纬慰蠉渭蔚谓慰] dddd [{}] LT'; + default: + return '[蟿畏谓 蟺蟻慰畏纬慰蠉渭蔚谓畏] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction$1(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? '蟽蟿畏' : '蟽蟿喂蟼'); + }, + relativeTime: { + future: '蟽蔚 %s', + past: '%s 蟺蟻喂谓', + s: '位委纬伪 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + ss: '%d 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + m: '苇谓伪 位蔚蟺蟿蠈', + mm: '%d 位蔚蟺蟿维', + h: '渭委伪 蠋蟻伪', + hh: '%d 蠋蟻蔚蟼', + d: '渭委伪 渭苇蟻伪', + dd: '%d 渭苇蟻蔚蟼', + M: '苇谓伪蟼 渭萎谓伪蟼', + MM: '%d 渭萎谓蔚蟼', + y: '苇谓伪蟼 蠂蟻蠈谓慰蟼', + yy: '%d 蠂蟻蠈谓喂伪', + }, + dayOfMonthOrdinalParse: /\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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a怒gusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_a怒g_sept_okt_nov_dec'.split('_'), + weekdays: 'diman膲o_lundo_mardo_merkredo_牡a怒do_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_牡a怒_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_牡a_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodia怒 je] LT', + nextDay: '[Morga怒 je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hiera怒 je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'anta怒 %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', 膲ar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$2 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$3 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort$1[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex$3, + monthsShortRegex: monthsRegex$3, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$2, + longMonthsParse: monthsParse$2, + shortMonthsParse: monthsParse$2, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$1 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$3 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$4 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$1; + } else if (/-MMM-/.test(format)) { + return monthsShort$2[m.month()]; + } else { + return monthsShortDot$1[m.month()]; + } + }, + monthsRegex: monthsRegex$4, + monthsShortRegex: monthsRegex$4, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$3, + longMonthsParse: monthsParse$3, + shortMonthsParse: monthsParse$3, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inv谩lida', + }); + + //! moment.js locale configuration + + var monthsShortDot$2 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$4 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$5 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$2; + } else if (/-MMM-/.test(format)) { + return monthsShort$3[m.month()]; + } else { + return monthsShortDot$2[m.month()]; + } + }, + monthsRegex: monthsRegex$5, + monthsShortRegex: monthsRegex$5, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$4, + longMonthsParse: monthsParse$4, + shortMonthsParse: monthsParse$4, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortDot$3 = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse$5 = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex$6 = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + + hooks.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot$3; + } else if (/-MMM-/.test(format)) { + return monthsShort$4[m.month()]; + } else { + return monthsShortDot$3[m.month()]; + } + }, + monthsRegex: monthsRegex$6, + monthsShortRegex: monthsRegex$6, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse$5, + longMonthsParse: monthsParse$5, + shortMonthsParse: monthsParse$5, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + invalidDate: 'Fecha inv谩lida', + }); + + //! moment.js locale configuration + + function processRelativeTime$3(number, withoutSuffix, key, isFuture) { + var format = { + s: ['m玫ne sekundi', 'm玫ni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['眉he minuti', '眉ks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['眉he tunni', 'tund aega', '眉ks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['眉he p盲eva', '眉ks p盲ev'], + M: ['kuu aja', 'kuu aega', '眉ks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['眉he aasta', 'aasta', '眉ks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('et', { + months: 'jaanuar_veebruar_m盲rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_m盲rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'p眉hap盲ev_esmasp盲ev_teisip盲ev_kolmap盲ev_neljap盲ev_reede_laup盲ev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[T盲na,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[J盲rgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲rast', + past: '%s tagasi', + s: processRelativeTime$3, + ss: processRelativeTime$3, + m: processRelativeTime$3, + mm: processRelativeTime$3, + h: processRelativeTime$3, + hh: processRelativeTime$3, + d: processRelativeTime$3, + dd: '%d p盲eva', + M: processRelativeTime$3, + MM: processRelativeTime$3, + y: processRelativeTime$3, + yy: processRelativeTime$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$6 = { + 1: '郾', + 2: '鄄', + 3: '鄢', + 4: '鄞', + 5: '鄣', + 6: '鄱', + 7: '鄯', + 8: '鄹', + 9: '酃', + 0: '郯', + }, + numberMap$5 = { + '郾': '1', + '鄄': '2', + '鄢': '3', + '鄞': '4', + '鄣': '5', + '鄱': '6', + '鄯': '7', + '鄹': '8', + '酃': '9', + '郯': '0', + }; + + hooks.defineLocale('fa', { + months: '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + monthsShort: + '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + weekdays: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysShort: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysMin: '蹖_丿_爻_趩_倬_噩_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /賯亘賱 丕夭 馗賴乇|亘毓丿 丕夭 馗賴乇/, + isPM: function (input) { + return /亘毓丿 丕夭 馗賴乇/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '賯亘賱 丕夭 馗賴乇'; + } else { + return '亘毓丿 丕夭 馗賴乇'; + } + }, + calendar: { + sameDay: '[丕賲乇賵夭 爻丕毓鬲] LT', + nextDay: '[賮乇丿丕 爻丕毓鬲] LT', + nextWeek: 'dddd [爻丕毓鬲] LT', + lastDay: '[丿蹖乇賵夭 爻丕毓鬲] LT', + lastWeek: 'dddd [倬蹖卮] [爻丕毓鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '丿乇 %s', + past: '%s 倬蹖卮', + s: '趩賳丿 孬丕賳蹖賴', + ss: '%d 孬丕賳蹖賴', + m: '蹖讴 丿賯蹖賯賴', + mm: '%d 丿賯蹖賯賴', + h: '蹖讴 爻丕毓鬲', + hh: '%d 爻丕毓鬲', + d: '蹖讴 乇賵夭', + dd: '%d 乇賵夭', + M: '蹖讴 賲丕賴', + MM: '%d 賲丕賴', + y: '蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string + .replace(/[郯-酃]/g, function (match) { + return numberMap$5[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$6[match]; + }) + .replace(/,/g, '貙'); + }, + dayOfMonthOrdinalParse: /\d{1,2}賲/, + ordinal: '%d賲', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var numbersPast = + 'nolla yksi kaksi kolme nelj盲 viisi kuusi seitsem盲n kahdeksan yhdeks盲n'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'nelj盲n', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; + function translate$2(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'p盲iv盲n' : 'p盲iv盲'; + case 'dd': + result = isFuture ? 'p盲iv盲n' : 'p盲iv盲盲'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; + } + + hooks.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes盲kuu_hein盲kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kes盲_hein盲_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + 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] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[t盲n盲盲n] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲盲st盲', + past: '%s sitten', + s: translate$2, + ss: translate$2, + m: translate$2, + mm: translate$2, + h: translate$2, + hh: translate$2, + d: translate$2, + dd: translate$2, + M: translate$2, + MM: translate$2, + y: translate$2, + yy: translate$2, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fo', { + months: 'januar_februar_mars_apr铆l_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_m谩nadagur_t媒sdagur_mikudagur_h贸sdagur_fr铆ggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_t媒s_mik_h贸s_fr铆_ley'.split('_'), + weekdaysMin: 'su_m谩_t媒_mi_h贸_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[脥 dag kl.] LT', + nextDay: '[脥 morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[脥 gj谩r kl.] LT', + lastWeek: '[s铆冒stu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s s铆冒ani', + s: 'f谩 sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein t铆mi', + hh: '%d t铆mar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein m谩na冒ur', + MM: '%d m谩na冒ir', + y: 'eitt 谩r', + yy: '%d 谩r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fr-ca', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('fr-ch', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsStrictRegex$1 = + /^(janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsShortStrictRegex$1 = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?)/i, + monthsRegex$7 = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?|janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsParse$6 = [ + /^janv/i, + /^f茅vr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^ao没t/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^d茅c/i, + ]; + + hooks.defineLocale('fr', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsRegex: monthsRegex$7, + monthsShortRegex: monthsRegex$7, + monthsStrictRegex: monthsStrictRegex$1, + monthsShortStrictRegex: monthsShortStrictRegex$1, + monthsParse: monthsParse$6, + longMonthsParse: monthsParse$6, + shortMonthsParse: monthsParse$6, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + hooks.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[么fr没ne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien min煤t', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var months$6 = [ + 'Ean谩ir', + 'Feabhra', + 'M谩rta', + 'Aibre谩n', + 'Bealtaine', + 'Meitheamh', + 'I煤il', + 'L煤nasa', + 'Me谩n F贸mhair', + 'Deireadh F贸mhair', + 'Samhain', + 'Nollaig', + ], + monthsShort$5 = [ + 'Ean', + 'Feabh', + 'M谩rt', + 'Aib', + 'Beal', + 'Meith', + 'I煤il', + 'L煤n', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays$1 = [ + 'D茅 Domhnaigh', + 'D茅 Luain', + 'D茅 M谩irt', + 'D茅 C茅adaoin', + 'D茅ardaoin', + 'D茅 hAoine', + 'D茅 Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'M谩irt', 'C茅ad', 'D茅ar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'M谩', 'C茅', 'D茅', 'A', 'Sa']; + + hooks.defineLocale('ga', { + months: months$6, + monthsShort: monthsShort$5, + monthsParseExact: true, + weekdays: weekdays$1, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Am谩rach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inn茅 ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s 贸 shin', + s: 'c煤pla soicind', + ss: '%d soicind', + m: 'n贸im茅ad', + mm: '%d n贸im茅ad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'l谩', + dd: '%d l谩', + M: 'm铆', + MM: '%d m铆onna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + //! moment.js locale configuration + + var months$7 = [ + 'Am Faoilleach', + 'An Gearran', + 'Am M脿rt', + 'An Giblean', + 'An C猫itean', + 'An t-脪gmhios', + 'An t-Iuchar', + 'An L霉nastal', + 'An t-Sultain', + 'An D脿mhair', + 'An t-Samhain', + 'An D霉bhlachd', + ], + monthsShort$6 = [ + 'Faoi', + 'Gear', + 'M脿rt', + 'Gibl', + 'C猫it', + '脪gmh', + 'Iuch', + 'L霉n', + 'Sult', + 'D脿mh', + 'Samh', + 'D霉bh', + ], + weekdays$2 = [ + 'Did貌mhnaich', + 'Diluain', + 'Dim脿irt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin$1 = ['D貌', 'Lu', 'M脿', 'Ci', 'Ar', 'Ha', 'Sa']; + + hooks.defineLocale('gd', { + months: months$7, + monthsShort: monthsShort$6, + monthsParseExact: true, + weekdays: weekdays$2, + weekdaysShort: weekdaysShort$1, + weekdaysMin: weekdaysMin$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-m脿ireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-d猫 aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'm矛os', + MM: '%d m矛osan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xu帽o_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xu帽._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_m茅rcores_xoves_venres_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._m茅r._xov._ven._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_m茅_xo_ve_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextDay: function () { + return '[ma帽谩 ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? '谩' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$4(number, withoutSuffix, key, isFuture) { + var format = { + s: ['啶ム啶∴く啶 啶膏啶曕啶∴ぞ啶傕え啷', '啶ム啶∴ 啶膏啶曕啶'], + ss: [number + ' 啶膏啶曕啶∴ぞ啶傕え啷', number + ' 啶膏啶曕啶'], + m: ['啶忇啶 啶た啶`啶距え', '啶忇 啶た啶ㄠ啶'], + mm: [number + ' 啶た啶`啶距啶ㄠ', number + ' 啶た啶`啶距'], + h: ['啶忇啶 啶掂ぐ啶距え', '啶忇 啶掂ぐ'], + hh: [number + ' 啶掂ぐ啶距啶ㄠ', number + ' 啶掂ぐ啶距'], + d: ['啶忇啶 啶︵た啶膏ぞ啶', '啶忇 啶︵啶'], + dd: [number + ' 啶︵た啶膏ぞ啶傕え啷', number + ' 啶︵啶'], + M: ['啶忇啶 啶啶灌く啶ㄠ啶ぞ啶', '啶忇 啶啶灌く啶ㄠ'], + MM: [number + ' 啶啶灌く啶ㄠ啶ぞ啶ㄠ', number + ' 啶啶灌く啶ㄠ'], + y: ['啶忇啶 啶掂ぐ啷嵿じ啶距え', '啶忇 啶掂ぐ啷嵿じ'], + yy: [number + ' 啶掂ぐ啷嵿じ啶距啶ㄠ', number + ' 啶掂ぐ啷嵿じ啶距'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('gom-deva', { + months: { + standalone: + '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啷啶瞋啶_啶溹啶╛啶溹啶侧く_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + format: '啶溹ぞ啶ㄠ啶掂ぞ啶班啶氞啶ぞ_啶啶啶班啶掂ぞ啶班啶氞啶ぞ_啶ぞ啶班啶氞ぞ啶氞啶ぞ_啶忇お啷嵿ぐ啷啶侧ぞ啶氞啶ぞ_啶啶ぞ啶氞啶ぞ_啶溹啶ㄠぞ啶氞啶ぞ_啶溹啶侧く啶距啷嵿く啶綺啶戉啶膏啶熰ぞ啶氞啶ぞ_啶膏お啷嵿啷囙啶ぐ啶距啷嵿く啶綺啶戉啷嵿啷嬥が啶班ぞ啶氞啶ぞ_啶ㄠ啶掂啶灌啶傕が啶班ぞ啶氞啶ぞ_啶∴た啶膏啶傕が啶班ぞ啶氞啶ぞ'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶歘啶忇お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋く啶むぞ啶癬啶膏啶ぞ啶癬啶啶椸こ啶距ぐ_啶啶оさ啶距ぐ_啶た啶班啶膏啶むぞ啶癬啶膏啶曕啶班ぞ啶癬啶多啶ㄠさ啶距ぐ'.split('_'), + weekdaysShort: '啶嗋く啶._啶膏啶._啶啶椸こ._啶啶._啶啶班啶膏啶._啶膏啶曕啶._啶多啶.'.split('_'), + weekdaysMin: '啶哶啶膏_啶_啶_啶啶班_啶膏_啶多'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [啶掂ぞ啶溹い啶距]', + LTS: 'A h:mm:ss [啶掂ぞ啶溹い啶距]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [啶掂ぞ啶溹い啶距]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + llll: 'ddd, D MMM YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + }, + calendar: { + sameDay: '[啶嗋く啶淽 LT', + nextDay: '[啶ぞ啶侧啶ぞ啶俔 LT', + nextWeek: '[啶啶∴げ啷媇 dddd[,] LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶熰げ啷媇 dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s 啶嗋う啷啶', + s: processRelativeTime$4, + ss: processRelativeTime$4, + m: processRelativeTime$4, + mm: processRelativeTime$4, + h: processRelativeTime$4, + hh: processRelativeTime$4, + d: processRelativeTime$4, + dd: processRelativeTime$4, + M: processRelativeTime$4, + MM: processRelativeTime$4, + y: processRelativeTime$4, + yy: processRelativeTime$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}(啶掂啶)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal '啶掂啶' only applies to day of the month + case 'D': + return number + '啶掂啶'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /啶班ぞ啶む|啶膏啶距こ啷啶倈啶︵え啶ぞ啶班ぞ啶倈啶膏ぞ啶傕啷/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶む') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶距こ啷啶') { + return hour; + } else if (meridiem === '啶︵え啶ぞ啶班ぞ啶') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶傕啷') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶む'; + } else if (hour < 12) { + return '啶膏啶距こ啷啶'; + } else if (hour < 16) { + return '啶︵え啶ぞ啶班ぞ啶'; + } else if (hour < 20) { + return '啶膏ぞ啶傕啷'; + } else { + return '啶班ぞ啶む'; + } + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$5(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; + } + + hooks.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime$5, + ss: processRelativeTime$5, + m: processRelativeTime$5, + mm: processRelativeTime$5, + h: processRelativeTime$5, + hh: processRelativeTime$5, + d: processRelativeTime$5, + dd: processRelativeTime$5, + M: processRelativeTime$5, + MM: processRelativeTime$5, + y: processRelativeTime$5, + yy: processRelativeTime$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$7 = { + 1: '喃', + 2: '喃', + 3: '喃', + 4: '喃', + 5: '喃', + 6: '喃', + 7: '喃', + 8: '喃', + 9: '喃', + 0: '喃', + }, + numberMap$6 = { + '喃': '1', + '喃': '2', + '喃': '3', + '喃': '4', + '喃': '5', + '喃': '6', + '喃': '7', + '喃': '8', + '喃': '9', + '喃': '0', + }; + + hooks.defineLocale('gu', { + months: '嗒溹嗒ㄠ珝嗒珌嗒嗋喃_嗒珖嗒珝嗒班珌嗒嗋喃_嗒嗒班珝嗒歘嗒忇喃嵿嗒苦_嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧嗒坃嗒戉獥嗒膏珝嗒焈嗒膏喃嵿獰喃囙喃嵿嗒癬嗒戉獣喃嵿獰喃嵿嗒癬嗒ㄠ喃囙喃嵿嗒癬嗒∴嗒膏珖嗒珝嗒'.split( + '_' + ), + monthsShort: + '嗒溹嗒ㄠ珝嗒珌._嗒珖嗒珝嗒班珌._嗒嗒班珝嗒歘嗒忇喃嵿嗒._嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧._嗒戉獥._嗒膏喃嵿獰喃._嗒戉獣喃嵿獰喃._嗒ㄠ喃._嗒∴嗒膏珖.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗒班嗒苦嗒距_嗒膏珛嗒嗒距_嗒獋嗒椸嗒掂嗒癬嗒珌嗒о珝嗒掂嗒癬嗒椸珌嗒班珌嗒掂嗒癬嗒多珌嗒曕珝嗒班嗒距_嗒多嗒苦嗒距'.split( + '_' + ), + weekdaysShort: '嗒班嗒縚嗒膏珛嗒甠嗒獋嗒椸_嗒珌嗒о珝_嗒椸珌嗒班珌_嗒多珌嗒曕珝嗒癬嗒多嗒'.split('_'), + weekdaysMin: '嗒癬嗒膏珛_嗒獋_嗒珌_嗒椸珌_嗒多珌_嗒'.split('_'), + longDateFormat: { + LT: 'A h:mm 嗒掂嗒椸珝嗒珖', + LTS: 'A h:mm:ss 嗒掂嗒椸珝嗒珖', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + LLLL: 'dddd, D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + }, + calendar: { + sameDay: '[嗒嗋獪] LT', + nextDay: '[嗒曕嗒侧珖] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗒椸獓嗒曕嗒侧珖] LT', + lastWeek: '[嗒嗒涏嗒綸 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗒', + past: '%s 嗒喃囙嗒', + s: '嗒呧喃佮獣 嗒喃', + ss: '%d 嗒膏珖嗒曕獋嗒', + m: '嗒忇獣 嗒嗒ㄠ嗒', + mm: '%d 嗒嗒ㄠ嗒', + h: '嗒忇獣 嗒曕嗒距獣', + hh: '%d 嗒曕嗒距獣', + d: '嗒忇獣 嗒︵嗒掂', + dd: '%d 嗒︵嗒掂', + M: '嗒忇獣 嗒嗒苦喃', + MM: '%d 嗒嗒苦喃', + y: '嗒忇獣 嗒掂喃嵿', + yy: '%d 嗒掂喃嵿', + }, + preparse: function (string) { + return string.replace(/[喃о喃┼喃喃喃]/g, function (match) { + return numberMap$6[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$7[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /嗒班嗒嗒喃嬥|嗒膏嗒距|嗒膏嗒傕獪/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗒班嗒') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒距') { + return hour; + } else if (meridiem === '嗒喃嬥') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒傕獪') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗒班嗒'; + } else if (hour < 10) { + return '嗒膏嗒距'; + } else if (hour < 17) { + return '嗒喃嬥'; + } else if (hour < 20) { + return '嗒膏嗒傕獪'; + } else { + return '嗒班嗒'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('he', { + months: '讬谞讜讗专_驻讘专讜讗专_诪专抓_讗驻专讬诇_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙讜住讟_住驻讟诪讘专_讗讜拽讟讜讘专_谞讜讘诪讘专_讚爪诪讘专'.split( + '_' + ), + monthsShort: + '讬谞讜壮_驻讘专壮_诪专抓_讗驻专壮_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙壮_住驻讟壮_讗讜拽壮_谞讜讘壮_讚爪诪壮'.split('_'), + weekdays: '专讗砖讜谉_砖谞讬_砖诇讬砖讬_专讘讬注讬_讞诪讬砖讬_砖讬砖讬_砖讘转'.split('_'), + weekdaysShort: '讗壮_讘壮_讙壮_讚壮_讛壮_讜壮_砖壮'.split('_'), + weekdaysMin: '讗_讘_讙_讚_讛_讜_砖'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [讘]MMMM YYYY', + LLL: 'D [讘]MMMM YYYY HH:mm', + LLLL: 'dddd, D [讘]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[讛讬讜诐 讘志]LT', + nextDay: '[诪讞专 讘志]LT', + nextWeek: 'dddd [讘砖注讛] LT', + lastDay: '[讗转诪讜诇 讘志]LT', + lastWeek: '[讘讬讜诐] dddd [讛讗讞专讜谉 讘砖注讛] LT', + sameElse: 'L', + }, + relativeTime: { + future: '讘注讜讚 %s', + past: '诇驻谞讬 %s', + s: '诪住驻专 砖谞讬讜转', + ss: '%d 砖谞讬讜转', + m: '讚拽讛', + mm: '%d 讚拽讜转', + h: '砖注讛', + hh: function (number) { + if (number === 2) { + return '砖注转讬讬诐'; + } + return number + ' 砖注讜转'; + }, + d: '讬讜诐', + dd: function (number) { + if (number === 2) { + return '讬讜诪讬讬诐'; + } + return number + ' 讬诪讬诐'; + }, + M: '讞讜讚砖', + MM: function (number) { + if (number === 2) { + return '讞讜讚砖讬讬诐'; + } + return number + ' 讞讜讚砖讬诐'; + }, + y: '砖谞讛', + yy: function (number) { + if (number === 2) { + return '砖谞转讬讬诐'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' 砖谞讛'; + } + return number + ' 砖谞讬诐'; + }, + }, + meridiemParse: + /讗讞讛"爪|诇驻谞讛"爪|讗讞专讬 讛爪讛专讬讬诐|诇驻谞讬 讛爪讛专讬讬诐|诇驻谞讜转 讘讜拽专|讘讘讜拽专|讘注专讘/i, + isPM: function (input) { + return /^(讗讞讛"爪|讗讞专讬 讛爪讛专讬讬诐|讘注专讘)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return '诇驻谞讜转 讘讜拽专'; + } else if (hour < 10) { + return '讘讘讜拽专'; + } else if (hour < 12) { + return isLower ? '诇驻谞讛"爪' : '诇驻谞讬 讛爪讛专讬讬诐'; + } else if (hour < 18) { + return isLower ? '讗讞讛"爪' : '讗讞专讬 讛爪讛专讬讬诐'; + } else { + return '讘注专讘'; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$8 = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$7 = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }, + monthsParse$7 = [ + /^啶溹え/i, + /^啶ぜ啶皘啶ぐ/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶む|啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ|啶ㄠさ啶/i, + /^啶︵た啶膏|啶︵た啶/i, + ], + shortMonthsParse = [ + /^啶溹え/i, + /^啶ぜ啶/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ/i, + /^啶︵た啶/i, + ]; + + hooks.defineLocale('hi', { + months: { + format: '啶溹え啶掂ぐ啷_啶ぜ啶班さ啶班_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶むぎ啷嵿が啶癬啶呧啷嵿啷傕が啶癬啶ㄠさ啶啶ぐ_啶︵た啶膏ぎ啷嵿が啶'.split( + '_' + ), + standalone: + '啶溹え啶掂ぐ啷_啶ぐ啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶む啶ぐ_啶呧啷嵿啷傕が啶癬啶ㄠさ啶傕が啶癬啶︵た啶膏啶ぐ'.split( + '_' + ), + }, + monthsShort: + '啶溹え._啶ぜ啶._啶ぞ啶班啶歘啶呧お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶呧._啶膏た啶._啶呧啷嵿啷._啶ㄠさ._啶︵た啶.'.split('_'), + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸げ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸げ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶啷', + LTS: 'A h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶啷', + }, + + monthsParse: monthsParse$7, + longMonthsParse: monthsParse$7, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsShortRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsStrictRegex: + /^(啶溹え啶掂ぐ啷?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ?|啶?|啶溹啶?|啶溹啶侧ぞ啶?|啶呧啶膏啶?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶?\.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ?)/i, + + monthsShortStrictRegex: + /^(啶溹え\.?|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶瞈.?|啶呧\.?|啶膏た啶.?|啶呧啷嵿啷俓.?|啶ㄠさ\.?|啶︵た啶竆.?)/i, + + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶曕げ] LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕げ] LT', + lastWeek: '[啶た啶涏げ啷嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啶啶', + past: '%s 啶す啶侧', + s: '啶曕啶 啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶', + m: '啶忇 啶た啶ㄠ', + mm: '%d 啶た啶ㄠ', + h: '啶忇 啶樴啶熰ぞ', + hh: '%d 啶樴啶熰', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啷啶ㄠ', + MM: '%d 啶す啷啶ㄠ', + y: '啶忇 啶掂ぐ啷嵿し', + yy: '%d 啶掂ぐ啷嵿し', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$7[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$8[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /啶班ぞ啶啶膏啶す|啶︵啶す啶皘啶多ぞ啶/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶す') { + return hour; + } else if (meridiem === '啶︵啶す啶') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶多ぞ啶') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶'; + } else if (hour < 10) { + return '啶膏啶す'; + } else if (hour < 17) { + return '啶︵啶す啶'; + } else if (hour < 20) { + return '啶多ぞ啶'; + } else { + return '啶班ぞ啶'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function translate$3(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + hooks.defineLocale('hr', { + months: { + format: 'sije膷nja_velja膷e_o啪ujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'sije膷anj_velja膷a_o啪ujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._o啪u._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[pro拧lu] [nedjelju] [u] LT'; + case 3: + return '[pro拧lu] [srijedu] [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate$3, + m: translate$3, + mm: translate$3, + h: translate$3, + hh: translate$3, + d: 'dan', + dd: translate$3, + M: 'mjesec', + MM: translate$3, + y: 'godinu', + yy: translate$3, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var weekEndings = + 'vas谩rnap h茅tf艖n kedden szerd谩n cs眉t枚rt枚k枚n p茅nteken szombaton'.split(' '); + function translate$4(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'n茅h谩ny m谩sodperc' + : 'n茅h谩ny m谩sodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' m谩sodperc' + : ' m谩sodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + } + return ''; + } + function week(isFuture) { + return ( + (isFuture ? '' : '[m煤lt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); + } + + hooks.defineLocale('hu', { + months: 'janu谩r_febru谩r_m谩rcius_谩prilis_m谩jus_j煤nius_j煤lius_augusztus_szeptember_okt贸ber_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._m谩rc._谩pr._m谩j._j煤n._j煤l._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vas谩rnap_h茅tf艖_kedd_szerda_cs眉t枚rt枚k_p茅ntek_szombat'.split('_'), + weekdaysShort: 'vas_h茅t_kedd_sze_cs眉t_p茅n_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s m煤lva', + past: '%s', + s: translate$4, + ss: translate$4, + m: translate$4, + mm: translate$4, + h: translate$4, + hh: translate$4, + d: translate$4, + dd: translate$4, + M: translate$4, + MM: translate$4, + y: translate$4, + yy: translate$4, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('hy-am', { + months: { + format: '瞻崭謧斩站铡謤斋_謨榨湛謤站铡謤斋_沾铡謤湛斋_铡蘸謤斋宅斋_沾铡盏斋战斋_瞻崭謧斩斋战斋_瞻崭謧宅斋战斋_謪眨崭战湛崭战斋_战榨蘸湛榨沾闸榨謤斋_瞻崭寨湛榨沾闸榨謤斋_斩崭盏榨沾闸榨謤斋_栅榨寨湛榨沾闸榨謤斋'.split( + '_' + ), + standalone: + '瞻崭謧斩站铡謤_謨榨湛謤站铡謤_沾铡謤湛_铡蘸謤斋宅_沾铡盏斋战_瞻崭謧斩斋战_瞻崭謧宅斋战_謪眨崭战湛崭战_战榨蘸湛榨沾闸榨謤_瞻崭寨湛榨沾闸榨謤_斩崭盏榨沾闸榨謤_栅榨寨湛榨沾闸榨謤'.split( + '_' + ), + }, + monthsShort: '瞻斩站_謨湛謤_沾謤湛_铡蘸謤_沾盏战_瞻斩战_瞻宅战_謪眨战_战蘸湛_瞻寨湛_斩沾闸_栅寨湛'.split('_'), + weekdays: + '寨斋謤铡寨斋_榨謤寨崭謧辗铡闸诈斋_榨謤榨謩辗铡闸诈斋_展崭謤榨謩辗铡闸诈斋_瞻斋斩眨辗铡闸诈斋_崭謧謤闸铡诈_辗铡闸铡诈'.split( + '_' + ), + weekdaysShort: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + weekdaysMin: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 诈.', + LLL: 'D MMMM YYYY 诈., HH:mm', + LLLL: 'dddd, D MMMM YYYY 诈., HH:mm', + }, + calendar: { + sameDay: '[铡盏战謪謤] LT', + nextDay: '[站铡詹炸] LT', + lastDay: '[榨謤榨寨] LT', + nextWeek: function () { + return 'dddd [謪謤炸 摘铡沾炸] LT'; + }, + lastWeek: function () { + return '[铡斩謥铡债] dddd [謪謤炸 摘铡沾炸] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s 瞻榨湛崭', + past: '%s 铡占铡栈', + s: '沾斋 謩铡斩斋 站铡盏謤寨盏铡斩', + ss: '%d 站铡盏謤寨盏铡斩', + m: '謤崭蘸榨', + mm: '%d 謤崭蘸榨', + h: '摘铡沾', + hh: '%d 摘铡沾', + d: '謪謤', + dd: '%d 謪謤', + M: '铡沾斋战', + MM: '%d 铡沾斋战', + y: '湛铡謤斋', + yy: '%d 湛铡謤斋', + }, + meridiemParse: /眨斋辗榨謤站铡|铡占铡站崭湛站铡|謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩/, + isPM: function (input) { + return /^(謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return '眨斋辗榨謤站铡'; + } else if (hour < 12) { + return '铡占铡站崭湛站铡'; + } else if (hour < 17) { + return '謥榨謤榨寨站铡'; + } else { + return '榨謤榨寨崭盏铡斩'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(斋斩|謤栅)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-斋斩'; + } + return number + '-謤栅'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$2(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function translate$5(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sek煤ndur' + : 'nokkrum sek煤ndum'; + case 'ss': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sek煤ndur' : 'sek煤ndum') + ); + } + return result + 'sek煤nda'; + case 'm': + return withoutSuffix ? 'm铆n煤ta' : 'm铆n煤tu'; + case 'mm': + if (plural$2(number)) { + return ( + result + (withoutSuffix || isFuture ? 'm铆n煤tur' : 'm铆n煤tum') + ); + } else if (withoutSuffix) { + return result + 'm铆n煤ta'; + } + return result + 'm铆n煤tu'; + case 'hh': + if (plural$2(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'd枚gum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'm谩nu冒ur'; + } + return isFuture ? 'm谩nu冒' : 'm谩nu冒i'; + case 'MM': + if (plural$2(number)) { + if (withoutSuffix) { + return result + 'm谩nu冒ir'; + } + return result + (isFuture ? 'm谩nu冒i' : 'm谩nu冒um'); + } else if (withoutSuffix) { + return result + 'm谩nu冒ur'; + } + return result + (isFuture ? 'm谩nu冒' : 'm谩nu冒i'); + case 'y': + return withoutSuffix || isFuture ? '谩r' : '谩ri'; + case 'yy': + if (plural$2(number)) { + return result + (withoutSuffix || isFuture ? '谩r' : '谩rum'); + } + return result + (withoutSuffix || isFuture ? '谩r' : '谩ri'); + } + } + + hooks.defineLocale('is', { + months: 'jan煤ar_febr煤ar_mars_apr铆l_ma铆_j煤n铆_j煤l铆_谩g煤st_september_okt贸ber_n贸vember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_ma铆_j煤n_j煤l_谩g煤_sep_okt_n贸v_des'.split('_'), + weekdays: + 'sunnudagur_m谩nudagur_镁ri冒judagur_mi冒vikudagur_fimmtudagur_f枚studagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_镁ri_mi冒_fim_f枚s_lau'.split('_'), + weekdaysMin: 'Su_M谩_脼r_Mi_Fi_F枚_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[铆 dag kl.] LT', + nextDay: '[谩 morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[铆 g忙r kl.] LT', + lastWeek: '[s铆冒asta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s s铆冒an', + s: translate$5, + ss: translate$5, + m: translate$5, + mm: translate$5, + h: 'klukkustund', + hh: translate$5, + d: translate$5, + dd: translate$5, + M: translate$5, + MM: translate$5, + y: translate$5, + yy: translate$5, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri 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: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '浠ゅ拰', + narrow: '銒', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '骞虫垚', + narrow: '銔', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '鏄拰', + narrow: '銔', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '澶ф', + narrow: '銔', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '鏄庢不', + narrow: '銔', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '瑗挎殾', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '绱鍏冨墠', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(鍏億\d+)骞/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '鍏' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split('_'), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏃ユ洔鏃鏈堟洔鏃鐏洔鏃姘存洔鏃鏈ㄦ洔鏃閲戞洔鏃鍦熸洔鏃'.split('_'), + weekdaysShort: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + weekdaysMin: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃(ddd) HH:mm', + }, + meridiemParse: /鍗堝墠|鍗堝緦/i, + isPM: function (input) { + return input === '鍗堝緦'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '鍗堝墠'; + } else { + return '鍗堝緦'; + } + }, + calendar: { + sameDay: '[浠婃棩] LT', + nextDay: '[鏄庢棩] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[鏉ラ盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[鏄ㄦ棩] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[鍏堥盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}鏃/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '鍏冨勾' : number + '骞'; + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '鏁扮', + ss: '%d绉', + m: '1鍒', + mm: '%d鍒', + h: '1鏅傞枔', + hh: '%d鏅傞枔', + d: '1鏃', + dd: '%d鏃', + M: '1銉舵湀', + MM: '%d銉舵湀', + y: '1骞', + yy: '%d骞', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ka', { + months: '醿樶儛醿溼儠醿愥儬醿榑醿椺償醿戓償醿犪儠醿愥儦醿榑醿涐儛醿犪儮醿榑醿愥優醿犪儤醿氠儤_醿涐儛醿樶儭醿榑醿樶儠醿溼儤醿♂儤_醿樶儠醿氠儤醿♂儤_醿愥儝醿曖儤醿♂儮醿漘醿♂償醿メ儮醿斸儧醿戓償醿犪儤_醿濁儱醿⑨儩醿涐儜醿斸儬醿榑醿溼儩醿斸儧醿戓償醿犪儤_醿撫償醿欋償醿涐儜醿斸儬醿'.split( + '_' + ), + monthsShort: '醿樶儛醿淿醿椺償醿慱醿涐儛醿燺醿愥優醿燺醿涐儛醿榑醿樶儠醿淿醿樶儠醿歘醿愥儝醿昣醿♂償醿醿濁儱醿醿溼儩醿擾醿撫償醿'.split('_'), + weekdays: { + standalone: + '醿欋儠醿樶儬醿恄醿濁儬醿ㄡ儛醿戓儛醿椺儤_醿♂儛醿涐儴醿愥儜醿愥儣醿榑醿濁儣醿儴醿愥儜醿愥儣醿榑醿儯醿椺儴醿愥儜醿愥儣醿榑醿炨儛醿犪儛醿♂儥醿斸儠醿榑醿ㄡ儛醿戓儛醿椺儤'.split( + '_' + ), + format: '醿欋儠醿樶儬醿愥儭_醿濁儬醿ㄡ儛醿戓儛醿椺儭_醿♂儛醿涐儴醿愥儜醿愥儣醿醿濁儣醿儴醿愥儜醿愥儣醿醿儯醿椺儴醿愥儜醿愥儣醿醿炨儛醿犪儛醿♂儥醿斸儠醿醿ㄡ儛醿戓儛醿椺儭'.split( + '_' + ), + isFormat: /(醿儤醿溼儛|醿ㄡ償醿涐儞醿斸儝)/, + }, + weekdaysShort: '醿欋儠醿榑醿濁儬醿╛醿♂儛醿沖醿濁儣醿甠醿儯醿梍醿炨儛醿燺醿ㄡ儛醿'.split('_'), + weekdaysMin: '醿欋儠_醿濁儬_醿♂儛_醿濁儣_醿儯_醿炨儛_醿ㄡ儛'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醿撫儲醿斸儭] LT[-醿栣償]', + nextDay: '[醿儠醿愥儦] LT[-醿栣償]', + lastDay: '[醿掅儯醿ㄡ儤醿淽 LT[-醿栣償]', + nextWeek: '[醿ㄡ償醿涐儞醿斸儝] dddd LT[-醿栣償]', + lastWeek: '[醿儤醿溼儛] dddd LT-醿栣償', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(醿儛醿泑醿儯醿梶醿♂儛醿愥儣|醿償醿殀醿撫儲|醿椺儠)(醿榺醿)/, + function ($0, $1, $2) { + return $2 === '醿' ? $1 + '醿ㄡ儤' : $1 + $2 + '醿ㄡ儤'; + } + ); + }, + past: function (s) { + if (/(醿儛醿涐儤|醿儯醿椺儤|醿♂儛醿愥儣醿榺醿撫儲醿攟醿椺儠醿)/.test(s)) { + return s.replace(/(醿榺醿)$/, '醿樶儭 醿儤醿'); + } + if (/醿償醿氠儤/.test(s)) { + return s.replace(/醿償醿氠儤$/, '醿儦醿樶儭 醿儤醿'); + } + return s; + }, + s: '醿犪儛醿涐儞醿斸儨醿樶儧醿 醿儛醿涐儤', + ss: '%d 醿儛醿涐儤', + m: '醿儯醿椺儤', + mm: '%d 醿儯醿椺儤', + h: '醿♂儛醿愥儣醿', + hh: '%d 醿♂儛醿愥儣醿', + d: '醿撫儲醿', + dd: '%d 醿撫儲醿', + M: '醿椺儠醿', + MM: '%d 醿椺儠醿', + y: '醿償醿氠儤', + yy: '%d 醿償醿氠儤', + }, + dayOfMonthOrdinalParse: /0|1-醿氠儤|醿涐償-\d{1,2}|\d{1,2}-醿/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-醿氠儤'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return '醿涐償-' + number; + } + return number + '-醿'; + }, + week: { + dow: 1, + doy: 7, + }, + }); + + //! moment.js locale configuration + + var suffixes$1 = { + 0: '-褕褨', + 1: '-褕褨', + 2: '-褕褨', + 3: '-褕褨', + 4: '-褕褨', + 5: '-褕褨', + 6: '-褕褘', + 7: '-褕褨', + 8: '-褕褨', + 9: '-褕褘', + 10: '-褕褘', + 20: '-褕褘', + 30: '-褕褘', + 40: '-褕褘', + 50: '-褕褨', + 60: '-褕褘', + 70: '-褕褨', + 80: '-褕褨', + 90: '-褕褘', + 100: '-褕褨', + }; + + hooks.defineLocale('kk', { + months: '覜邪遥褌邪褉_邪覜锌邪薪_薪邪褍褉褘蟹_褋訖褍褨褉_屑邪屑褘褉_屑邪褍褋褘屑_褕褨谢写械_褌邪屑褘蟹_覜褘褉泻爷泄械泻_覜邪蟹邪薪_覜邪褉邪褕邪_卸械谢褌芯覜褋邪薪'.split( + '_' + ), + monthsShort: '覜邪遥_邪覜锌_薪邪褍_褋訖褍_屑邪屑_屑邪褍_褕褨谢_褌邪屑_覜褘褉_覜邪蟹_覜邪褉_卸械谢'.split('_'), + weekdays: '卸械泻褋械薪斜褨_写爷泄褋械薪斜褨_褋械泄褋械薪斜褨_褋訖褉褋械薪斜褨_斜械泄褋械薪斜褨_卸冶屑邪_褋械薪斜褨'.split( + '_' + ), + weekdaysShort: '卸械泻_写爷泄_褋械泄_褋訖褉_斜械泄_卸冶屑_褋械薪'.split('_'), + weekdaysMin: '卸泻_写泄_褋泄_褋褉_斜泄_卸屑_褋薪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐褨薪 褋邪覔邪褌] LT', + nextDay: '[袝褉褌械遥 褋邪覔邪褌] LT', + nextWeek: 'dddd [褋邪覔邪褌] LT', + lastDay: '[袣械褕械 褋邪覔邪褌] LT', + lastWeek: '[莹褌泻械薪 邪锌褌邪薪褘遥] dddd [褋邪覔邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 褨褕褨薪写械', + past: '%s 斜冶褉褘薪', + s: '斜褨褉薪械褕械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜褨褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '斜褨褉 褋邪覔邪褌', + hh: '%d 褋邪覔邪褌', + d: '斜褨褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜褨褉 邪泄', + MM: '%d 邪泄', + y: '斜褨褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褕褨|褕褘)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$9 = { + 1: '釤', + 2: '釤', + 3: '釤', + 4: '釤', + 5: '釤', + 6: '釤', + 7: '釤', + 8: '釤', + 9: '釤', + 0: '釤', + }, + numberMap$8 = { + '釤': '1', + '釤': '2', + '釤': '3', + '釤': '4', + '釤': '5', + '釤': '6', + '釤': '7', + '釤': '8', + '釤': '9', + '釤': '0', + }; + + hooks.defineLocale('km', { + months: '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + monthsShort: + '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + weekdays: '釣⑨灦釣戓灧釣忈煉釣檁釣呩煇釣撫煉釣慱釣⑨瀯釤掅瀭釣夺灇_釣栣灮釣抇釣栣煉釣氠灎釣熱煉釣斸瀼釣丰煃_釣熱灮釣釤掅灇_釣熱焻釣氠煃'.split('_'), + weekdaysShort: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysMin: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /釣栣煉釣氠灩釣|釣涐煉釣勧灦釣/, + isPM: function (input) { + return input === '釣涐煉釣勧灦釣'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '釣栣煉釣氠灩釣'; + } else { + return '釣涐煉釣勧灦釣'; + } + }, + calendar: { + sameDay: '[釣愥煉釣勧焹釣撫焷釤 釣樶焿釤勧瀯] LT', + nextDay: '[釣熱煉釣⑨焸釣 釣樶焿釤勧瀯] LT', + nextWeek: 'dddd [釣樶焿釤勧瀯] LT', + lastDay: '[釣樶煉釣熱灧釣涐灅釣丰瀴 釣樶焿釤勧瀯] LT', + lastWeek: 'dddd [釣熱灁釤掅瀼釣夺灎釤嶀灅釣会灀] [釣樶焿釤勧瀯] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s釣戓焵釣', + past: '%s釣樶灮釣', + s: '釣斸焿釣会灀釤掅灅釣夺灀釣溼灧釣撫灦釣戓灨', + ss: '%d 釣溼灧釣撫灦釣戓灨', + m: '釣樶灲釣欋灀釣夺瀾釣', + mm: '%d 釣撫灦釣戓灨', + h: '釣樶灲釣欋灅釤夅焺釣', + hh: '%d 釣樶焿釤勧瀯', + d: '釣樶灲釣欋瀽釤掅瀯釤', + dd: '%d 釣愥煉釣勧焹', + M: '釣樶灲釣欋瀬釤', + MM: '%d 釣佱焸', + y: '釣樶灲釣欋瀱釤掅灀釣夺焼', + yy: '%d 釣嗎煉釣撫灦釤', + }, + dayOfMonthOrdinalParse: /釣戓灨\d{1,2}/, + ordinal: '釣戓灨%d', + preparse: function (string) { + return string.replace(/[釤♂煝釤a煠釤メ煢釤п煥釤┽煚]/g, function (match) { + return numberMap$8[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$9[match]; + }); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$a = { + 1: '喑', + 2: '喑', + 3: '喑', + 4: '喑', + 5: '喑', + 6: '喑', + 7: '喑', + 8: '喑', + 9: '喑', + 0: '喑', + }, + numberMap$9 = { + '喑': '1', + '喑': '2', + '喑': '3', + '喑': '4', + '喑': '5', + '喑': '6', + '喑': '7', + '喑': '8', + '喑': '9', + '喑': '0', + }; + + hooks.defineLocale('kn', { + months: '嗖溹波嗖掂舶嗖縚嗖硢嗖硩嗖班驳嗖班部_嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖傕铂嗖班硩_嗖呧矔喑嵿矡喑嗋硞喑曕铂嗖班硩_嗖ㄠ驳喑嗋矀嗖舶喑峗嗖∴部嗖膏硢嗖傕铂嗖班硩'.split( + '_' + ), + monthsShort: + '嗖溹波_嗖硢嗖硩嗖癬嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖俖嗖呧矔喑嵿矡喑嗋硞喑昣嗖ㄠ驳喑嗋矀_嗖∴部嗖膏硢嗖'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗖簿嗖ㄠ硜嗖掂簿嗖癬嗖膏硢喑傕硶嗖驳嗖距舶_嗖矀嗖椸渤嗖掂簿嗖癬嗖硜嗖о驳嗖距舶_嗖椸硜嗖班硜嗖掂簿嗖癬嗖多硜嗖曕硩嗖班驳嗖距舶_嗖多波嗖苦驳嗖距舶'.split( + '_' + ), + weekdaysShort: '嗖簿嗖ㄠ硜_嗖膏硢喑傕硶嗖甠嗖矀嗖椸渤_嗖硜嗖嗖椸硜嗖班硜_嗖多硜嗖曕硩嗖癬嗖多波嗖'.split('_'), + weekdaysMin: '嗖簿_嗖膏硢喑傕硶_嗖矀_嗖硜_嗖椸硜_嗖多硜_嗖'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嗖囙矀嗖︵硜] LT', + nextDay: '[嗖ㄠ簿嗖赤硢] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗖ㄠ部嗖ㄠ硩嗖ㄠ硢] LT', + lastWeek: '[嗖曕硢喑傕波喑嗋帛] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗖ㄠ矀嗖む舶', + past: '%s 嗖灌部嗖傕拨喑', + s: '嗖曕硢嗖侧驳喑 嗖曕硩嗖粪玻嗖椸渤喑', + ss: '%d 嗖膏硢嗖曕硢嗖傕病喑佮矖嗖赤硜', + m: '嗖掄矀嗖︵硜 嗖ㄠ部嗖部嗖', + mm: '%d 嗖ㄠ部嗖部嗖', + h: '嗖掄矀嗖︵硜 嗖椸矀嗖熰硢', + hh: '%d 嗖椸矀嗖熰硢', + d: '嗖掄矀嗖︵硜 嗖︵部嗖', + dd: '%d 嗖︵部嗖', + M: '嗖掄矀嗖︵硜 嗖む部嗖傕矖嗖赤硜', + MM: '%d 嗖む部嗖傕矖嗖赤硜', + y: '嗖掄矀嗖︵硜 嗖掂舶喑嵿卜', + yy: '%d 嗖掂舶喑嵿卜', + }, + preparse: function (string) { + return string.replace(/[喑о敞喑┼唱喑超喑钞喑肠]/g, function (match) { + return numberMap$9[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$a[match]; + }); + }, + meridiemParse: /嗖班簿嗖む硩嗖班部|嗖硢嗖赤部嗖椸硩嗖椸硢|嗖钵喑嵿帛嗖距补喑嵿波|嗖膏矀嗖溹硢/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗖班簿嗖む硩嗖班部') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗖硢嗖赤部嗖椸硩嗖椸硢') { + return hour; + } else if (meridiem === '嗖钵喑嵿帛嗖距补喑嵿波') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗖膏矀嗖溹硢') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗖班簿嗖む硩嗖班部'; + } else if (hour < 10) { + return '嗖硢嗖赤部嗖椸硩嗖椸硢'; + } else if (hour < 17) { + return '嗖钵喑嵿帛嗖距补喑嵿波'; + } else if (hour < 20) { + return '嗖膏矀嗖溹硢'; + } else { + return '嗖班簿嗖む硩嗖班部'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(嗖ㄠ硢喑)/, + ordinal: function (number) { + return number + '嗖ㄠ硢喑'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ko', { + months: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split('_'), + monthsShort: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split( + '_' + ), + weekdays: '鞚检殧鞚糭鞗旍殧鞚糭頇旍殧鞚糭靾橃殧鞚糭氇╈殧鞚糭旮堨殧鞚糭韱犾殧鞚'.split('_'), + weekdaysShort: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + weekdaysMin: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY雲 MMMM D鞚', + LLL: 'YYYY雲 MMMM D鞚 A h:mm', + LLLL: 'YYYY雲 MMMM D鞚 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY雲 MMMM D鞚', + lll: 'YYYY雲 MMMM D鞚 A h:mm', + llll: 'YYYY雲 MMMM D鞚 dddd A h:mm', + }, + calendar: { + sameDay: '鞓る姌 LT', + nextDay: '雮挫澕 LT', + nextWeek: 'dddd LT', + lastDay: '鞏挫牅 LT', + lastWeek: '歆雮滌< dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 頉', + past: '%s 鞝', + s: '氇 齑', + ss: '%d齑', + m: '1攵', + mm: '%d攵', + h: '頃 鞁滉皠', + hh: '%d鞁滉皠', + d: '頃橂(', + dd: '%d鞚', + M: '頃 雼', + MM: '%d雼', + y: '鞚 雲', + yy: '%d雲', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鞚紎鞗攟欤)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鞚'; + case 'M': + return number + '鞗'; + case 'w': + case 'W': + return number + '欤'; + default: + return number; + } + }, + meridiemParse: /鞓れ爠|鞓ろ泟/, + isPM: function (token) { + return token === '鞓ろ泟'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '鞓れ爠' : '鞓ろ泟'; + }, + }); + + //! moment.js locale configuration + + var symbolMap$b = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap$a = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + months$8 = [ + '讴丕賳賵賳蹖 丿賵賵蹠賲', + '卮賵亘丕鬲', + '卅丕夭丕乇', + '賳蹖爻丕賳', + '卅丕蹖丕乇', + '丨賵夭蹠蹖乇丕賳', + '鬲蹠賲賲賵夭', + '卅丕亘', + '卅蹠蹖賱賵賵賱', + '鬲卮乇蹖賳蹖 蹖蹠賰蹠賲', + '鬲卮乇蹖賳蹖 丿賵賵蹠賲', + '賰丕賳賵賳蹖 蹖蹠讴蹠賲', + ]; + + hooks.defineLocale('ku', { + months: months$8, + monthsShort: months$8, + weekdays: + '蹖賴鈥屬冐促団屬呝呝団宊丿賵賵卮賴鈥屬呝呝団宊爻蹘卮賴鈥屬呝呝団宊趩賵丕乇卮賴鈥屬呝呝団宊倬蹘賳噩卮賴鈥屬呝呝団宊賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split( + '_' + ), + weekdaysShort: + '蹖賴鈥屬冐促団屬卂丿賵賵卮賴鈥屬卂爻蹘卮賴鈥屬卂趩賵丕乇卮賴鈥屬卂倬蹘賳噩卮賴鈥屬卂賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split('_'), + weekdaysMin: '蹖_丿_爻_趩_倬_賴_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /卅蹘賵丕乇賴鈥寍亘賴鈥屰屫з嗃/, + isPM: function (input) { + return /卅蹘賵丕乇賴鈥/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '亘賴鈥屰屫з嗃'; + } else { + return '卅蹘賵丕乇賴鈥'; + } + }, + calendar: { + sameDay: '[卅賴鈥屬呚臂 賰丕鬲跇賲蹘乇] LT', + nextDay: '[亘賴鈥屰屫з嗃 賰丕鬲跇賲蹘乇] LT', + nextWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + lastDay: '[丿賵蹘賳蹘 賰丕鬲跇賲蹘乇] LT', + lastWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賱賴鈥 %s', + past: '%s', + s: '趩賴鈥屬嗀 趩乇賰賴鈥屰屬団屬', + ss: '趩乇賰賴鈥 %d', + m: '蹖賴鈥屬 禺賵賱賴鈥屬', + mm: '%d 禺賵賱賴鈥屬', + h: '蹖賴鈥屬 賰丕鬲跇賲蹘乇', + hh: '%d 賰丕鬲跇賲蹘乇', + d: '蹖賴鈥屬 跁蹎跇', + dd: '%d 跁蹎跇', + M: '蹖賴鈥屬 賲丕賳诏', + MM: '%d 賲丕賳诏', + y: '蹖賴鈥屬 爻丕诘', + yy: '%d 爻丕诘', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap$a[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap$b[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var suffixes$2 = { + 0: '-褔爷', + 1: '-褔懈', + 2: '-褔懈', + 3: '-褔爷', + 4: '-褔爷', + 5: '-褔懈', + 6: '-褔褘', + 7: '-褔懈', + 8: '-褔懈', + 9: '-褔褍', + 10: '-褔褍', + 20: '-褔褘', + 30: '-褔褍', + 40: '-褔褘', + 50: '-褔爷', + 60: '-褔褘', + 70: '-褔懈', + 80: '-褔懈', + 90: '-褔褍', + 100: '-褔爷', + }; + + hooks.defineLocale('ky', { + months: '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉褌_邪锌褉_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split( + '_' + ), + weekdays: '袞械泻褕械屑斜懈_袛爷泄褕萤屑斜爷_楔械泄褕械屑斜懈_楔邪褉褕械屑斜懈_袘械泄褕械屑斜懈_袞褍屑邪_袠褕械屑斜懈'.split( + '_' + ), + weekdaysShort: '袞械泻_袛爷泄_楔械泄_楔邪褉_袘械泄_袞褍屑_袠褕械'.split('_'), + weekdaysMin: '袞泻_袛泄_楔泄_楔褉_袘泄_袞屑_袠褕'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐爷薪 褋邪邪褌] LT', + nextDay: '[协褉褌械遥 褋邪邪褌] LT', + nextWeek: 'dddd [褋邪邪褌] LT', + lastDay: '[袣械褔褝褝 褋邪邪褌] LT', + lastWeek: '[莹褌泻萤薪 邪锌褌邪薪褘薪] dddd [泻爷薪爷] [褋邪邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 懈褔懈薪写械', + past: '%s 屑褍褉褍薪', + s: '斜懈褉薪械褔械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜懈褉 屑爷薪萤褌', + mm: '%d 屑爷薪萤褌', + h: '斜懈褉 褋邪邪褌', + hh: '%d 褋邪邪褌', + d: '斜懈褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜懈褉 邪泄', + MM: '%d 邪泄', + y: '斜懈褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褔懈|褔褘|褔爷|褔褍)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$6(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + hooks.defineLocale('lb', { + months: 'Januar_Februar_M盲erz_Abr毛ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_M茅indeg_D毛nschdeg_M毛ttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._M茅._D毛._M毛._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_M茅_D毛_M毛_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[G毛schter um] LT', + lastWeek: function () { + // Different date string for 'D毛nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime$6, + mm: '%d Minutten', + h: processRelativeTime$6, + hh: '%d Stonnen', + d: processRelativeTime$6, + dd: '%d Deeg', + M: processRelativeTime$6, + MM: '%d M茅int', + y: processRelativeTime$6, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('lo', { + months: '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + monthsShort: + '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + weekdays: '嗪翰嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysShort: '嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysMin: '嗪梍嗪坃嗪簞_嗪瀇嗪炧韩_嗪簛_嗪'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: '嗪о罕嗪檇ddd D MMMM YYYY HH:mm', + }, + meridiemParse: /嗪曕涵嗪權粈嗪娻夯嗷夃翰|嗪曕涵嗪權粊嗪ム簢/, + isPM: function (input) { + return input === '嗪曕涵嗪權粊嗪ム簢'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '嗪曕涵嗪權粈嗪娻夯嗷夃翰'; + } else { + return '嗪曕涵嗪權粊嗪ム簢'; + } + }, + calendar: { + sameDay: '[嗪∴悍嗷夃簷嗪掂粔嗷嗪о亥嗪瞉 LT', + nextDay: '[嗪∴悍嗷夃涵嗪粪粓嗪權粈嗪о亥嗪瞉 LT', + nextWeek: '[嗪о罕嗪橾dddd[嗷溹粔嗪侧粈嗪о亥嗪瞉 LT', + lastDay: '[嗪∴悍嗷夃骇嗪侧簷嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + lastWeek: '[嗪о罕嗪橾dddd[嗷佮亥嗷夃骇嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '嗪旱嗪 %s', + past: '%s嗪溹粓嗪侧簷嗪∴翰', + s: '嗪氞粛嗷堗粈嗪椸夯嗷堗翰嗷冟簲嗪о捍嗪權翰嗪椸旱', + ss: '%d 嗪о捍嗪權翰嗪椸旱', + m: '1 嗪權翰嗪椸旱', + mm: '%d 嗪權翰嗪椸旱', + h: '1 嗪娻夯嗷堗骇嗷傕骸嗪', + hh: '%d 嗪娻夯嗷堗骇嗷傕骸嗪', + d: '1 嗪∴悍嗷', + dd: '%d 嗪∴悍嗷', + M: '1 嗷嗪斷悍嗪簷', + MM: '%d 嗷嗪斷悍嗪簷', + y: '1 嗪涏旱', + yy: '%d 嗪涏旱', + }, + dayOfMonthOrdinalParse: /(嗪椸旱嗷)\d{1,2}/, + ordinal: function (number) { + return '嗪椸旱嗷' + number; + }, + }); + + //! moment.js locale configuration + + var units = { + ss: 'sekund臈_sekund啪i懦_sekundes', + m: 'minut臈_minut臈s_minut臋', + mm: 'minut臈s_minu膷i懦_minutes', + h: 'valanda_valandos_valand膮', + hh: 'valandos_valand懦_valandas', + d: 'diena_dienos_dien膮', + dd: 'dienos_dien懦_dienas', + M: 'm臈nuo_m臈nesio_m臈nes寞', + MM: 'm臈nesiai_m臈nesi懦_m臈nesius', + y: 'metai_met懦_metus', + yy: 'metai_met懦_metus', + }; + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekund臈s'; + } else { + return isFuture ? 'keli懦 sekund啪i懦' : 'kelias sekundes'; + } + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return units[key].split('_'); + } + function translate$6(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + hooks.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_baland啪io_gegu啪臈s_bir啪elio_liepos_rugpj奴膷io_rugs臈jo_spalio_lapkri膷io_gruod啪io'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegu啪臈_bir啪elis_liepa_rugpj奴tis_rugs臈jis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadien寞_pirmadien寞_antradien寞_tre膷iadien寞_ketvirtadien寞_penktadien寞_拧e拧tadien寞'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_tre膷iadienis_ketvirtadienis_penktadienis_拧e拧tadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_艩e拧'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_艩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[艩iandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Pra臈jus寞] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prie拧 %s', + s: translateSeconds, + ss: translate$6, + m: translateSingular, + mm: translate$6, + h: translateSingular, + hh: translate$6, + d: translateSingular, + dd: translate$6, + M: translateSingular, + MM: translate$6, + y: translateSingular, + yy: translate$6, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + 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. + }, + }); + + //! moment.js locale configuration + + var units$1 = { + ss: 'sekundes_sekund膿m_sekunde_sekundes'.split('_'), + m: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + mm: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + h: 'stundas_stund膩m_stunda_stundas'.split('_'), + hh: 'stundas_stund膩m_stunda_stundas'.split('_'), + d: 'dienas_dien膩m_diena_dienas'.split('_'), + dd: 'dienas_dien膩m_diena_dienas'.split('_'), + M: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + MM: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function format$1(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 min奴te", "3 min奴tes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 min奴tes" as in "p膿c 21 min奴tes". + // E.g. "3 min奴t膿m" as in "p膿c 3 min奴t膿m". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } + } + function relativeTimeWithPlural$1(number, withoutSuffix, key) { + return number + ' ' + format$1(units$1[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return format$1(units$1[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'da啪as sekundes' : 'da啪膩m sekund膿m'; + } + + hooks.defineLocale('lv', { + months: 'janv膩ris_febru膩ris_marts_apr墨lis_maijs_j奴nijs_j奴lijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_j奴n_j奴l_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'sv膿tdiena_pirmdiena_otrdiena_tre拧diena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[艩odien pulksten] LT', + nextDay: '[R墨t pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pag膩ju拧膩] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'p膿c %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural$1, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural$1, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural$1, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural$1, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural$1, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural$1, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, + }; + + hooks.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedjelje] [u] LT', + '[pro拧log] [ponedjeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srijede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mi', { + months: 'Kohi-t膩te_Hui-tanguru_Pout奴-te-rangi_Paenga-wh膩wh膩_Haratua_Pipiri_H艒ngoingoi_Here-turi-k艒k膩_Mahuru_Whiringa-膩-nuku_Whiringa-膩-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_H艒ngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'R膩tapu_Mane_T奴rei_Wenerei_T膩ite_Paraire_H膩tarei'.split('_'), + weekdaysShort: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + weekdaysMin: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te h膿kona ruarua', + ss: '%d h膿kona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mk', { + months: '褬邪薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪懈_褬褍谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褬邪薪_褎械胁_屑邪褉_邪锌褉_屑邪褬_褬褍薪_褬褍谢_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢邪_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁褉褌芯泻_锌械褌芯泻_褋邪斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉械_褔械褌_锌械褌_褋邪斜'.split('_'), + weekdaysMin: '薪e_锌o_胁褌_褋褉_褔械_锌械_褋a'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛械薪械褋 胁芯] LT', + nextDay: '[校褌褉械 胁芯] LT', + nextWeek: '[袙芯] dddd [胁芯] LT', + lastDay: '[袙褔械褉邪 胁芯] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袠蟹屑懈薪邪褌邪褌邪] dddd [胁芯] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袠蟹屑懈薪邪褌懈芯褌] dddd [胁芯] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械写 %s', + s: '薪械泻芯谢泻褍 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '械写薪邪 屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '械写械薪 褔邪褋', + hh: '%d 褔邪褋邪', + d: '械写械薪 写械薪', + dd: '%d 写械薪邪', + M: '械写械薪 屑械褋械褑', + MM: '%d 屑械褋械褑懈', + y: '械写薪邪 谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ml', { + months: '啻溹川嗟佮吹啻班纯_啻祮啻祶啻班祦啻掂窗啻縚啻淳嗟监礆嗟嵿礆嗟峗啻忇椽嗟嵿窗啻苦到_啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱_啻撪礂啻膏祶啻编祶啻编祶_啻膏祮啻祶啻编祶啻编磦啻导_啻掄磿嗟嵿礋嗟嬥船嗟糭啻ㄠ吹啻傕船嗟糭啻∴纯啻膏磦啻导'.split( + '_' + ), + monthsShort: + '啻溹川嗟._啻祮啻祶啻班祦._啻淳嗟._啻忇椽嗟嵿窗啻._啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱._啻撪礂._啻膏祮啻祶啻编祶啻._啻掄磿嗟嵿礋嗟._啻ㄠ吹啻._啻∴纯啻膏磦.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '啻炧淳啻幢啻距创嗟嵿礆_啻む纯啻權祶啻曕闯啻距创嗟嵿礆_啻氞祳啻掂祶啻掂淳啻脆祶啻歘啻祦啻о川啻距创嗟嵿礆_啻掂祶啻淳啻脆淳啻脆祶啻歘啻掂祮啻赤祶啻赤纯啻淳啻脆祶啻歘啻多川啻苦疮啻距创嗟嵿礆'.split( + '_' + ), + weekdaysShort: '啻炧淳啻导_啻む纯啻權祶啻曕稻_啻氞祳啻掂祶啻礯啻祦啻о祷_啻掂祶啻淳啻脆磦_啻掂祮啻赤祶啻赤纯_啻多川啻'.split('_'), + weekdaysMin: '啻炧淳_啻む纯_啻氞祳_啻祦_啻掂祶啻淳_啻掂祮_啻'.split('_'), + longDateFormat: { + LT: 'A h:mm -啻ㄠ祦', + LTS: 'A h:mm:ss -啻ㄠ祦', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -啻ㄠ祦', + LLLL: 'dddd, D MMMM YYYY, A h:mm -啻ㄠ祦', + }, + calendar: { + sameDay: '[啻囙川嗟嵿川嗟峕 LT', + nextDay: '[啻ㄠ淳啻赤祮] LT', + nextWeek: 'dddd, LT', + lastDay: '[啻囙川嗟嵿川啻侧祮] LT', + lastWeek: '[啻曕创啻苦礊嗟嵿礊] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啻曕创啻苦礊嗟嵿礊嗟', + past: '%s 啻祦嗟秽椽嗟', + s: '啻呧到啻 啻ㄠ纯啻纯啻粪礄嗟嵿礄嗟', + ss: '%d 啻膏祮啻曕祶啻曕祷啻∴祶', + m: '啻掄窗嗟 啻纯啻ㄠ纯啻编祶啻编祶', + mm: '%d 啻纯啻ㄠ纯啻编祶啻编祶', + h: '啻掄窗嗟 啻矗啻苦磿嗟嵿磿嗟傕导', + hh: '%d 啻矗啻苦磿嗟嵿磿嗟傕导', + d: '啻掄窗嗟 啻︵纯啻掂锤啻', + dd: '%d 啻︵纯啻掂锤啻', + M: '啻掄窗嗟 啻淳啻膏磦', + MM: '%d 啻淳啻膏磦', + y: '啻掄窗嗟 啻掂导啻粪磦', + yy: '%d 啻掂导啻粪磦', + }, + meridiemParse: /啻班淳啻む祶啻班纯|啻班淳啻掂纯啻侧祮|啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟峾啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦|啻班淳啻む祶啻班纯/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '啻班淳啻む祶啻班纯' && hour >= 4) || + meridiem === '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟' || + meridiem === '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啻班淳啻む祶啻班纯'; + } else if (hour < 12) { + return '啻班淳啻掂纯啻侧祮'; + } else if (hour < 17) { + return '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟'; + } else if (hour < 20) { + return '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦'; + } else { + return '啻班淳啻む祶啻班纯'; + } + }, + }); + + //! moment.js locale configuration + + function translate$7(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? '褏褝写褏褝薪 褋械泻褍薪写' : '褏褝写褏褝薪 褋械泻褍薪写褘薪'; + case 'ss': + return number + (withoutSuffix ? ' 褋械泻褍薪写' : ' 褋械泻褍薪写褘薪'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' 屑懈薪褍褌' : ' 屑懈薪褍褌褘薪'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' 褑邪谐' : ' 褑邪谐懈泄薪'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' 萤写萤褉' : ' 萤写褉懈泄薪'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' 褋邪褉' : ' 褋邪褉褘薪'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' 卸懈谢' : ' 卸懈谢懈泄薪'); + default: + return number; + } + } + + hooks.defineLocale('mn', { + months: '袧褝谐写爷谐褝褝褉 褋邪褉_啸芯褢褉写褍谐邪邪褉 褋邪褉_袚褍褉邪胁写褍谐邪邪褉 褋邪褉_袛萤褉萤胁写爷谐褝褝褉 褋邪褉_孝邪胁写褍谐邪邪褉 褋邪褉_袟褍褉谐邪写褍谐邪邪褉 褋邪褉_袛芯谢写褍谐邪邪褉 褋邪褉_袧邪泄屑写褍谐邪邪褉 褋邪褉_袝褋写爷谐褝褝褉 褋邪褉_袗褉邪胁写褍谐邪邪褉 褋邪褉_袗褉胁邪薪 薪褝谐写爷谐褝褝褉 褋邪褉_袗褉胁邪薪 褏芯褢褉写褍谐邪邪褉 褋邪褉'.split( + '_' + ), + monthsShort: + '1 褋邪褉_2 褋邪褉_3 褋邪褉_4 褋邪褉_5 褋邪褉_6 褋邪褉_7 褋邪褉_8 褋邪褉_9 褋邪褉_10 褋邪褉_11 褋邪褉_12 褋邪褉'.split( + '_' + ), + monthsParseExact: true, + weekdays: '袧褟屑_袛邪胁邪邪_袦褟谐屑邪褉_袥褏邪谐胁邪_袩爷褉褝胁_袘邪邪褋邪薪_袘褟屑斜邪'.split('_'), + weekdaysShort: '袧褟屑_袛邪胁_袦褟谐_袥褏邪_袩爷褉_袘邪邪_袘褟屑'.split('_'), + weekdaysMin: '袧褟_袛邪_袦褟_袥褏_袩爷_袘邪_袘褟'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY 芯薪褘 MMMM褘薪 D', + LLL: 'YYYY 芯薪褘 MMMM褘薪 D HH:mm', + LLLL: 'dddd, YYYY 芯薪褘 MMMM褘薪 D HH:mm', + }, + meridiemParse: /耶莹|耶啸/i, + isPM: function (input) { + return input === '耶啸'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '耶莹'; + } else { + return '耶啸'; + } + }, + calendar: { + sameDay: '[莹薪萤萤写萤褉] LT', + nextDay: '[袦邪褉谐邪邪褕] LT', + nextWeek: '[袠褉褝褏] dddd LT', + lastDay: '[莹褔懈谐写萤褉] LT', + lastWeek: '[莹薪谐萤褉褋萤薪] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 写邪褉邪邪', + past: '%s 萤屑薪萤', + s: translate$7, + ss: translate$7, + m: translate$7, + mm: translate$7, + h: translate$7, + hh: translate$7, + d: translate$7, + dd: translate$7, + M: translate$7, + MM: translate$7, + y: translate$7, + yy: translate$7, + }, + dayOfMonthOrdinalParse: /\d{1,2} 萤写萤褉/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' 萤写萤褉'; + default: + return number; + } + }, + }); + + //! moment.js locale configuration + + var symbolMap$c = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$b = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶'; + break; + case 'm': + output = '啶忇 啶た啶ㄠた啶'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰'; + break; + case 'h': + output = '啶忇 啶むぞ啶'; + break; + case 'hh': + output = '%d 啶むぞ啶'; + break; + case 'd': + output = '啶忇 啶︵た啶掂じ'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ'; + break; + case 'M': + output = '啶忇 啶す啶苦え啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷'; + break; + case 'y': + output = '啶忇 啶掂ぐ啷嵿し'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啷'; + break; + } + } else { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶︵ぞ啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶︵ぞ啶'; + break; + case 'm': + output = '啶忇啶 啶た啶ㄠた啶熰ぞ'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰ぞ啶'; + break; + case 'h': + output = '啶忇啶 啶むぞ啶膏ぞ'; + break; + case 'hh': + output = '%d 啶むぞ啶膏ぞ啶'; + break; + case 'd': + output = '啶忇啶 啶︵た啶掂じ啶'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ啶距'; + break; + case 'M': + output = '啶忇啶 啶す啶苦え啷嵿く啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷嵿く啶距'; + break; + case 'y': + output = '啶忇啶 啶掂ぐ啷嵿し啶'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啶距'; + break; + } + } + return output.replace(/%d/i, number); + } + + hooks.defineLocale('mr', { + months: '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶._啶忇お啷嵿ぐ啶._啶._啶溹啶._啶溹啶侧._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸こ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸こ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶掂ぞ啶溹い啶', + LTS: 'A h:mm:ss 啶掂ぞ啶溹い啶', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶夃う啷嵿く啶綸 LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶椸啶瞉 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぇ啷嵿く啷', + past: '%s啶啶班啶掂', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$b[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$c[match]; + }); + }, + meridiemParse: /啶す啶距啷噟啶膏啶距こ啷|啶︵啶ぞ啶班|啶膏ぞ啶啶曕ぞ啶赤|啶班ぞ啶む啶班/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶す啶距啷' || meridiem === '啶膏啶距こ啷') { + return hour; + } else if ( + meridiem === '啶︵啶ぞ啶班' || + meridiem === '啶膏ぞ啶啶曕ぞ啶赤' || + meridiem === '啶班ぞ啶む啶班' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return '啶す啶距啷'; + } else if (hour < 12) { + return '啶膏啶距こ啷'; + } else if (hour < 17) { + return '啶︵啶ぞ啶班'; + } else if (hour < 20) { + return '啶膏ぞ啶啶曕ぞ啶赤'; + } else { + return '啶班ぞ啶む啶班'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_臓unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di膵embru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_臓un_Lul_Aww_Set_Ott_Nov_Di膵'.split('_'), + weekdays: + 'Il-摩add_It-Tnejn_It-Tlieta_L-Erbg魔a_Il-摩amis_Il-臓img魔a_Is-Sibt'.split( + '_' + ), + weekdaysShort: '摩ad_Tne_Tli_Erb_摩am_臓im_Sib'.split('_'), + weekdaysMin: '摩a_Tn_Tl_Er_摩a_臓i_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[G魔ada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-biera魔 fil-]LT', + lastWeek: 'dddd [li g魔adda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f鈥 %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'sieg魔a', + hh: '%d sieg魔at', + d: '摹urnata', + dd: '%d 摹ranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$d = { + 1: '醽', + 2: '醽', + 3: '醽', + 4: '醽', + 5: '醽', + 6: '醽', + 7: '醽', + 8: '醽', + 9: '醽', + 0: '醽', + }, + numberMap$c = { + '醽': '1', + '醽': '2', + '醽': '3', + '醽': '4', + '醽': '5', + '醽': '6', + '醽': '7', + '醽': '8', + '醽': '9', + '醽': '0', + }; + + hooks.defineLocale('my', { + months: '醼囜斸横斸濁涐甠醼栣贬栣贬横濁涐甠醼欋愥篲醼п曖坚甠醼欋盻醼囜结斸篲醼囜搬溼勧篲醼炨坚傖愥篲醼呩醼横愥勧横樶琠醼♂贬醼横愥樶琠醼斸濁勧横樶琠醼掅囜勧横樶'.split( + '_' + ), + monthsShort: '醼囜斸篲醼栣盻醼欋愥篲醼曖坚甠醼欋盻醼囜结斸篲醼溼勧篲醼炨糭醼呩醼篲醼♂贬醼篲醼斸痏醼掅'.split('_'), + weekdays: '醼愥斸勧横贯傖斸结盻醼愥斸勧横贯溼琠醼♂勧横贯傖玙醼椺掅贯撫熱搬竉醼醼坚炨曖愥贬竉醼炨贬醼坚琠醼呩斸'.split( + '_' + ), + weekdaysShort: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + weekdaysMin: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醼氠斸.] LT [醼欋踞琞', + nextDay: '[醼欋斸醼横栣坚斸篯 LT [醼欋踞琞', + nextWeek: 'dddd LT [醼欋踞琞', + lastDay: '[醼欋斸.醼] LT [醼欋踞琞', + lastWeek: '[醼曖坚羔佱册丰炨贬琞 dddd LT [醼欋踞琞', + sameElse: 'L', + }, + relativeTime: { + future: '醼溼欋娽横 %s 醼欋踞', + past: '醼溼结斸横佱册丰炨贬 %s 醼', + s: '醼呩醼贯醼斸.醼♂斸娽横羔勧氠', + ss: '%d 醼呩醼贯醼斸丰', + m: '醼愥呩横欋斸呩', + mm: '%d 醼欋斸呩', + h: '醼愥呩横斸涐', + hh: '%d 醼斸涐', + d: '醼愥呩横涐醼', + dd: '%d 醼涐醼', + M: '醼愥呩横', + MM: '%d 醼', + y: '醼愥呩横斸踞呩', + yy: '%d 醼斸踞呩', + }, + preparse: function (string) { + return string.replace(/[醽佱亗醽冡亜醽呩亞醽囜亪醽夅亐]/g, function (match) { + return numberMap$c[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$d[match]; + }); + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶._ma._ti._on._to._fr._l酶.'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var symbolMap$e = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap$d = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + + hooks.defineLocale('ne', { + months: '啶溹え啶掂ぐ啷_啶啶啶班啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶粪啶焈啶膏啶啶熰啶啶ぐ_啶呧啷嵿啷嬥が啶癬啶ㄠ啶啶啶ぐ_啶∴た啶膏啶啶ぐ'.split( + '_' + ), + monthsShort: + '啶溹え._啶啶啶班._啶ぞ啶班啶歘啶呧お啷嵿ぐ啶._啶_啶溹啶╛啶溹啶侧ぞ啶._啶呧._啶膏啶啶._啶呧啷嵿啷._啶ㄠ啶._啶∴た啶膏.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋啶むが啶距ぐ_啶膏啶が啶距ぐ_啶啷嵿啶侧が啶距ぐ_啶啶оが啶距ぐ_啶た啶灌た啶ぞ啶癬啶多啶曕啶班が啶距ぐ_啶多え啶苦が啶距ぐ'.split( + '_' + ), + weekdaysShort: '啶嗋啶._啶膏啶._啶啷嵿啶._啶啶._啶た啶灌た._啶多啶曕啶._啶多え啶.'.split('_'), + weekdaysMin: '啶._啶膏._啶._啶._啶た._啶多._啶.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A啶曕 h:mm 啶啷', + LTS: 'A啶曕 h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A啶曕 h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A啶曕 h:mm 啶啷', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap$d[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$e[match]; + }); + }, + meridiemParse: /啶班ぞ啶むた|啶た啶灌ぞ啶▅啶︵た啶夃啶膏|啶膏ぞ啶佮/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶むた') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶た啶灌ぞ啶') { + return hour; + } else if (meridiem === '啶︵た啶夃啶膏') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶佮') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return '啶班ぞ啶むた'; + } else if (hour < 12) { + return '啶た啶灌ぞ啶'; + } else if (hour < 16) { + return '啶︵た啶夃啶膏'; + } else if (hour < 20) { + return '啶膏ぞ啶佮'; + } else { + return '啶班ぞ啶むた'; + } + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶啶侧た] LT', + nextWeek: '[啶嗋啶佮う啷媇 dddd[,] LT', + lastDay: '[啶灌た啶溹] LT', + lastWeek: '[啶椸啶曕] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぞ', + past: '%s 啶呧啶距ぁ啶', + s: '啶曕啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶`啶', + m: '啶忇 啶た啶ㄠ啶', + mm: '%d 啶た啶ㄠ啶', + h: '啶忇 啶樴ぃ啷嵿啶', + hh: '%d 啶樴ぃ啷嵿啶', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啶苦え啶', + MM: '%d 啶す啶苦え啶', + y: '啶忇 啶ぐ啷嵿し', + yy: '%d 啶ぐ啷嵿し', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$1 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$1 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$8 = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$8 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + hooks.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$1; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$1[m.month()]; + } else { + return monthsShortWithDots$1[m.month()]; + } + }, + + monthsRegex: monthsRegex$8, + monthsShortRegex: monthsRegex$8, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$8, + longMonthsParse: monthsParse$8, + shortMonthsParse: monthsParse$8, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + var monthsShortWithDots$2 = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots$2 = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse$9 = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex$9 = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + + hooks.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots$2; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots$2[m.month()]; + } else { + return monthsShortWithDots$2[m.month()]; + } + }, + + monthsRegex: monthsRegex$9, + monthsShortRegex: monthsRegex$9, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse$9, + longMonthsParse: monthsParse$9, + shortMonthsParse: monthsParse$9, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + w: '茅茅n week', + ww: '%d weken', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_m氓ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._m氓._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_m氓_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I g氓r klokka] LT', + lastWeek: '[F酶reg氓ande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein m氓nad', + MM: '%d m氓nader', + y: 'eit 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('oc-lnc', { + months: { + standalone: + 'geni猫r_febri猫r_mar莽_abril_mai_junh_julhet_agost_setembre_oct貌bre_novembre_decembre'.split( + '_' + ), + format: "de geni猫r_de febri猫r_de mar莽_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct貌bre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dim猫cres_dij貌us_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[u猫i a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[i猫r a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\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, + }, + }); + + //! moment.js locale configuration + + var symbolMap$f = { + 1: '喋', + 2: '喋', + 3: '喋', + 4: '喋', + 5: '喋', + 6: '喋', + 7: '喋', + 8: '喋', + 9: '喋', + 0: '喋', + }, + numberMap$e = { + '喋': '1', + '喋': '2', + '喋': '3', + '喋': '4', + '喋': '5', + '喋': '6', + '喋': '7', + '喋': '8', + '喋': '9', + '喋': '0', + }; + + hooks.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + monthsShort: + '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + weekdays: '啜愢à啜掂ň啜癬啜膏⿱啜ǖ啜距ò_啜┌啜椸ú啜掂ň啜癬啜﹣啜оǖ啜距ò_啜掂﹢啜班ǖ啜距ò_啜膏喋佮┍啜曕ò啜掂ň啜癬啜膏啜ㄠ﹢啜氞ò啜掂ň啜'.split( + '_' + ), + weekdaysShort: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + weekdaysMin: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + longDateFormat: { + LT: 'A h:mm 啜掂喋', + LTS: 'A h:mm:ss 啜掂喋', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啜掂喋', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啜掂喋', + }, + calendar: { + sameDay: '[啜呧] LT', + nextDay: '[啜曕ú] LT', + nextWeek: '[啜呧啜侧ň] dddd, LT', + lastDay: '[啜曕ú] LT', + lastWeek: '[啜ǹ啜涏ú喋嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啜掂ǹ喋编', + past: '%s 啜ǹ啜涏ú喋', + s: '啜曕﹣啜 啜膏〞啜苦┌啜', + ss: '%d 啜膏〞啜苦┌啜', + m: '啜囙〞 啜ǹ喋班', + mm: '%d 啜ǹ喋班', + h: '啜囙┍啜 啜樴┌啜熰ň', + hh: '%d 啜樴┌啜熰﹪', + d: '啜囙┍啜 啜︵ǹ啜', + dd: '%d 啜︵ǹ啜', + M: '啜囙┍啜 啜ü喋啜ㄠň', + MM: '%d 啜ü喋啜ㄠ﹪', + y: '啜囙┍啜 啜膏ň啜', + yy: '%d 啜膏ň啜', + }, + preparse: function (string) { + return string.replace(/[喋о┄喋┼┆喋┈喋┊喋│]/g, function (match) { + return numberMap$e[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$f[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /啜班ň啜啜膏ǖ喋囙ò|啜︵﹣啜ü啜苦ò|啜膏啜距ó/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啜班ň啜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啜膏ǖ喋囙ò') { + return hour; + } else if (meridiem === '啜︵﹣啜ü啜苦ò') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啜膏啜距ó') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啜班ň啜'; + } else if (hour < 10) { + return '啜膏ǖ喋囙ò'; + } else if (hour < 17) { + return '啜︵﹣啜ü啜苦ò'; + } else if (hour < 20) { + return '啜膏啜距ó'; + } else { + return '啜班ň啜'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var monthsNominative = + 'stycze艅_luty_marzec_kwiecie艅_maj_czerwiec_lipiec_sierpie艅_wrzesie艅_pa藕dziernik_listopad_grudzie艅'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze艣nia_pa藕dziernika_listopada_grudnia'.split( + '_' + ), + monthsParse$a = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^pa藕/i, + /^lis/i, + /^gru/i, + ]; + function plural$3(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; + } + function translate$8(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural$3(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minut臋'; + case 'mm': + return result + (plural$3(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzin臋'; + case 'hh': + return result + (plural$3(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural$3(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural$3(number) ? 'miesi膮ce' : 'miesi臋cy'); + case 'yy': + return result + (plural$3(number) ? 'lata' : 'lat'); + } + } + + hooks.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa藕_lis_gru'.split('_'), + monthsParse: monthsParse$a, + longMonthsParse: monthsParse$a, + shortMonthsParse: monthsParse$a, + weekdays: + 'niedziela_poniedzia艂ek_wtorek_艣roda_czwartek_pi膮tek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_艣r_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_艢r_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dzi艣 o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedziel臋 o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W 艣rod臋 o] LT'; + + case 6: + return '[W sobot臋 o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zesz艂膮 niedziel臋 o] LT'; + case 3: + return '[W zesz艂膮 艣rod臋 o] LT'; + case 6: + return '[W zesz艂膮 sobot臋 o] LT'; + default: + return '[W zesz艂y] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate$8, + m: translate$8, + mm: translate$8, + h: translate$8, + hh: translate$8, + d: '1 dzie艅', + dd: '%d dni', + w: 'tydzie艅', + ww: translate$8, + M: 'miesi膮c', + MM: translate$8, + y: 'rok', + yy: translate$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('pt-br', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_ter莽a-feira_quarta-feira_quinta-feira_sexta-feira_s谩bado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_s谩b'.split('_'), + weekdaysMin: 'do_2陋_3陋_4陋_5陋_6陋_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [脿s] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [脿s] HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + invalidDate: 'Data inv谩lida', + }); + + //! moment.js locale configuration + + hooks.defineLocale('pt', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Ter莽a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S谩bado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S谩b'.split('_'), + weekdaysMin: 'Do_2陋_3陋_4陋_5陋_6陋_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + }); + + //! moment.js locale configuration + + function relativeTimeWithPlural$2(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 's膬pt膬m芒ni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + hooks.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminic膬_luni_mar葲i_miercuri_joi_vineri_s芒mb膬t膬'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S芒m'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S芒'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[m芒ine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s 卯n urm膬', + s: 'c芒teva secunde', + ss: relativeTimeWithPlural$2, + m: 'un minut', + mm: relativeTimeWithPlural$2, + h: 'o or膬', + hh: relativeTimeWithPlural$2, + d: 'o zi', + dd: relativeTimeWithPlural$2, + w: 'o s膬pt膬m芒n膬', + ww: relativeTimeWithPlural$2, + M: 'o lun膬', + MM: relativeTimeWithPlural$2, + y: 'un an', + yy: relativeTimeWithPlural$2, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$4(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$3(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '屑懈薪褍褌邪_屑懈薪褍褌褘_屑懈薪褍褌' : '屑懈薪褍褌褍_屑懈薪褍褌褘_屑懈薪褍褌', + hh: '褔邪褋_褔邪褋邪_褔邪褋芯胁', + dd: '写械薪褜_写薪褟_写薪械泄', + ww: '薪械写械谢褟_薪械写械谢懈_薪械写械谢褜', + MM: '屑械褋褟褑_屑械褋褟褑邪_屑械褋褟褑械胁', + yy: '谐芯写_谐芯写邪_谢械褌', + }; + if (key === 'm') { + return withoutSuffix ? '屑懈薪褍褌邪' : '屑懈薪褍褌褍'; + } else { + return number + ' ' + plural$4(format[key], +number); + } + } + var monthsParse$b = [ + /^褟薪胁/i, + /^褎械胁/i, + /^屑邪褉/i, + /^邪锌褉/i, + /^屑邪[泄褟]/i, + /^懈褞薪/i, + /^懈褞谢/i, + /^邪胁谐/i, + /^褋械薪/i, + /^芯泻褌/i, + /^薪芯褟/i, + /^写械泻/i, + ]; + + // http://new.gramota.ru/spravka/rules/139-prop : 搂 103 + // 小芯泻褉邪褖械薪懈褟 屑械褋褟褑械胁: http://new.gramota.ru/spravka/buro/search-answer?s=242637 + // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 + hooks.defineLocale('ru', { + months: { + format: '褟薪胁邪褉褟_褎械胁褉邪谢褟_屑邪褉褌邪_邪锌褉械谢褟_屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐褍褋褌邪_褋械薪褌褟斜褉褟_芯泻褌褟斜褉褟_薪芯褟斜褉褟_写械泻邪斜褉褟'.split( + '_' + ), + standalone: + '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + }, + monthsShort: { + // 锌芯 CLDR 懈屑械薪薪芯 "懈褞谢." 懈 "懈褞薪.", 薪芯 泻邪泻芯泄 褋屑褘褋谢 屑械薪褟褌褜 斜褍泻胁褍 薪邪 褌芯褔泻褍? + format: '褟薪胁._褎械胁褉._屑邪褉._邪锌褉._屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + standalone: + '褟薪胁._褎械胁褉._屑邪褉褌_邪锌褉._屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + }, + weekdays: { + standalone: + '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁械褉谐_锌褟褌薪懈褑邪_褋褍斜斜芯褌邪'.split( + '_' + ), + format: '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写褍_褔械褌胁械褉谐_锌褟褌薪懈褑褍_褋褍斜斜芯褌褍'.split( + '_' + ), + isFormat: /\[ ?[袙胁] ?(?:锌褉芯褕谢褍褞|褋谢械写褍褞褖褍褞|褝褌褍)? ?] ?dddd/, + }, + weekdaysShort: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + monthsParse: monthsParse$b, + longMonthsParse: monthsParse$b, + shortMonthsParse: monthsParse$b, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈, 锌芯 褌褉懈 斜褍泻胁褘, 写谢褟 薪械泻芯褌芯褉褘褏, 锌芯 4 斜褍泻胁褘, 褋芯泻褉邪褖械薪懈褟 褋 褌芯褔泻芯泄 懈 斜械蟹 褌芯褔泻懈 + monthsRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 泻芯锌懈褟 锌褉械写褘写褍褖械谐芯 + monthsShortRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈 + monthsStrictRegex: + /^(褟薪胁邪褉[褟褜]|褎械胁褉邪谢[褟褜]|屑邪褉褌邪?|邪锌褉械谢[褟褜]|屑邪[褟泄]|懈褞薪[褟褜]|懈褞谢[褟褜]|邪胁谐褍褋褌邪?|褋械薪褌褟斜褉[褟褜]|芯泻褌褟斜褉[褟褜]|薪芯褟斜褉[褟褜]|写械泻邪斜褉[褟褜])/i, + + // 袙褘褉邪卸械薪懈械, 泻芯褌芯褉芯械 褋芯芯褌胁械褌褋褌胁褍械褌 褌芯谢褜泻芯 褋芯泻褉邪褖褢薪薪褘屑 褎芯褉屑邪屑 + monthsShortStrictRegex: + /^(褟薪胁\.|褎械胁褉?\.|屑邪褉[褌.]|邪锌褉\.|屑邪[褟泄]|懈褞薪[褜褟.]|懈褞谢[褜褟.]|邪胁谐\.|褋械薪褌?\.|芯泻褌\.|薪芯褟斜?\.|写械泻\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., H:mm', + LLLL: 'dddd, D MMMM YYYY 谐., H:mm', + }, + calendar: { + sameDay: '[小械谐芯写薪褟, 胁] LT', + nextDay: '[袟邪胁褌褉邪, 胁] LT', + lastDay: '[袙褔械褉邪, 胁] LT', + nextWeek: 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'; + } + } + }, + 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', + }, + relativeTime: { + future: '褔械褉械蟹 %s', + past: '%s 薪邪蟹邪写', + s: '薪械褋泻芯谢褜泻芯 褋械泻褍薪写', + ss: relativeTimeWithPlural$3, + m: relativeTimeWithPlural$3, + mm: relativeTimeWithPlural$3, + h: '褔邪褋', + hh: relativeTimeWithPlural$3, + d: '写械薪褜', + dd: relativeTimeWithPlural$3, + w: '薪械写械谢褟', + ww: relativeTimeWithPlural$3, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural$3, + y: '谐芯写', + yy: relativeTimeWithPlural$3, + }, + meridiemParse: /薪芯褔懈|褍褌褉邪|写薪褟|胁械褔械褉邪/i, + isPM: function (input) { + return /^(写薪褟|胁械褔械褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔懈'; + } else if (hour < 12) { + return '褍褌褉邪'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔械褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯|褟)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + case 'w': + case 'W': + return number + '-褟'; + default: + return number; + } + }, + 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. + }, + }); + + //! moment.js locale configuration + + var months$9 = [ + '噩賳賵乇賷', + '賮賷亘乇賵乇賷', + '賲丕乇趩', + '丕倬乇賷賱', + '賲卅賷', + '噩賵賳', + '噩賵賱丕亍賽', + '丌诏爻俳', + '爻賷倬俳賲亘乇', + '丌讵俳賵亘乇', + '賳賵賲亘乇', + '趭爻賲亘乇', + ], + days$1 = ['丌趩乇', '爻賵賲乇', '丕诒丕乇賵', '丕乇亘毓', '禺賲賷爻', '噩賲毓', '趪賳趪乇']; + + hooks.defineLocale('sd', { + months: months$9, + monthsShort: months$9, + weekdays: days$1, + weekdaysShort: days$1, + weekdaysMin: days$1, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丕趧] LT', + nextDay: '[爻趢丕诨賷] LT', + nextWeek: 'dddd [丕诔賷賳 賴賮鬲賷 鬲賷] LT', + lastDay: '[讵丕賱賴賴] LT', + lastWeek: '[诏夭乇賷賱 賴賮鬲賷] dddd [鬲賷] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 倬賵亍', + past: '%s 丕诔', + s: '趩賳丿 爻賷讵賳趭', + ss: '%d 爻賷讵賳趭', + m: '賴讵 賲賳俳', + mm: '%d 賲賳俳', + h: '賴讵 讵賱丕讵', + hh: '%d 讵賱丕讵', + d: '賴讵 趶賷賳賴賳', + dd: '%d 趶賷賳賴賳', + M: '賴讵 賲賴賷賳賵', + MM: '%d 賲賴賷賳丕', + y: '賴讵 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('se', { + months: 'o膽膽ajagem谩nnu_guovvam谩nnu_njuk膷am谩nnu_cuo艐om谩nnu_miessem谩nnu_geassem谩nnu_suoidnem谩nnu_borgem谩nnu_膷ak膷am谩nnu_golggotm谩nnu_sk谩bmam谩nnu_juovlam谩nnu'.split( + '_' + ), + monthsShort: + 'o膽膽j_guov_njuk_cuo_mies_geas_suoi_borg_膷ak膷_golg_sk谩b_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuoss谩rga_ma艐艐eb谩rga_gaskavahkku_duorastat_bearjadat_l谩vvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_ma艐_gask_duor_bear_l谩v'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s gea啪es', + past: 'ma艐it %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta m谩nnu', + MM: '%d m谩nut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + /*jshint -W100*/ + hooks.defineLocale('si', { + months: '喽⑧侗喾喾忇痘喾抇喽脆窓喽多痘喾喾忇痘喾抇喽膏窂喽秽穵喽窋_喽呧洞喾娾嵿痘喾氞督喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾澿穬喾娻董喾擾喾冟窅喽脆穵喽窅喽膏穵喽多痘喾奯喽斷稓喾娻董喾澿抖喽秽穵_喽编窚喾喾愢陡喾娻抖喽秽穵_喽窓喾冟窅喽膏穵喽多痘喾'.split( + '_' + ), + monthsShort: '喽⑧侗_喽脆窓喽禵喽膏窂喽秽穵_喽呧洞喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾漘喾冟窅喽脆穵_喽斷稓喾奯喽编窚喾喾恄喽窓喾冟窅'.split( + '_' + ), + weekdays: + '喽夃痘喾掄动喾廮喾冟冻喾斷动喾廮喽呧稛喾勦痘喾斷穩喾忇动喾廮喽多动喾忇动喾廮喽多穵鈥嵿痘喾勦穬喾娻洞喽窉喽编穵喽窂_喾冟窉喽氞窋喽秽窂喽窂_喾冟窓喽编穬喾斷痘喾忇动喾'.split( + '_' + ), + weekdaysShort: '喽夃痘喾抇喾冟冻喾擾喽呧稛_喽多动喾廮喽多穵鈥嵿痘喾刜喾冟窉喽氞窋_喾冟窓喽'.split('_'), + weekdaysMin: '喽塤喾僟喽卂喽禵喽多穵鈥嵿痘_喾冟窉_喾冟窓'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [喾喾愢侗喾抅 dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[喽呧动] LT[喽', + nextDay: '[喾勦窓喽 LT[喽', + nextWeek: 'dddd LT[喽', + lastDay: '[喽娻逗喾歖 LT[喽', + lastWeek: '[喽脆穬喾斷稖喾掄逗] dddd LT[喽', + sameElse: 'L', + }, + relativeTime: { + future: '%s喽氞窉喽编穵', + past: '%s喽氞锭 喽脆窓喽', + s: '喽董喾娻洞喽 喽氞窉喾勦窉喽脆逗', + ss: '喽董喾娻洞喽 %d', + m: '喽膏窉喽编窉喽穵喽窋喾', + mm: '喽膏窉喽编窉喽穵喽窋 %d', + h: '喽脆窅喽', + hh: '喽脆窅喽 %d', + d: '喽窉喽编逗', + dd: '喽窉喽 %d', + M: '喽膏窂喾冟逗', + MM: '喽膏窂喾 %d', + y: '喾喾冟痘', + yy: '喾喾冟痘 %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} 喾喾愢侗喾/, + ordinal: function (number) { + return number + ' 喾喾愢侗喾'; + }, + meridiemParse: /喽脆窓喽 喾喽秽窋|喽脆穬喾 喾喽秽窋|喽脆窓.喾|喽.喾./, + isPM: function (input) { + return input === '喽.喾.' || input === '喽脆穬喾 喾喽秽窋'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '喽.喾.' : '喽脆穬喾 喾喽秽窋'; + } else { + return isLower ? '喽脆窓.喾.' : '喽脆窓喽 喾喽秽窋'; + } + }, + }); + + //! moment.js locale configuration + + var months$a = + 'janu谩r_febru谩r_marec_apr铆l_m谩j_j煤n_j煤l_august_september_okt贸ber_november_december'.split( + '_' + ), + monthsShort$7 = 'jan_feb_mar_apr_m谩j_j煤n_j煤l_aug_sep_okt_nov_dec'.split('_'); + function plural$5(n) { + return n > 1 && n < 5; + } + function translate$9(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sek煤nd' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'sekundy' : 'sek煤nd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'min煤ta' : isFuture ? 'min煤tu' : 'min煤tou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'min煤ty' : 'min煤t'); + } else { + return result + 'min煤tami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'hodiny' : 'hod铆n'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'de艌' : 'd艌om'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'dni' : 'dn铆'); + } else { + return result + 'd艌ami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural$5(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } + } + + hooks.defineLocale('sk', { + months: months$a, + monthsShort: monthsShort$7, + weekdays: 'nede木a_pondelok_utorok_streda_拧tvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_拧t_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_拧t_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nede木u o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo 拧tvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[v膷era o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minul煤 nede木u o] LT'; + case 1: + case 2: + return '[minul媒] dddd [o] LT'; + case 3: + return '[minul煤 stredu o] LT'; + case 4: + case 5: + return '[minul媒] dddd [o] LT'; + case 6: + return '[minul煤 sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate$9, + ss: translate$9, + m: translate$9, + mm: translate$9, + h: translate$9, + hh: translate$9, + d: translate$9, + dd: translate$9, + M: translate$9, + MM: translate$9, + y: translate$9, + yy: translate$9, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + function processRelativeTime$7(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + hooks.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_膷etrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._膷et._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_膷e_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[v膷eraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prej拧njo] [nedeljo] [ob] LT'; + case 3: + return '[prej拧njo] [sredo] [ob] LT'; + case 6: + return '[prej拧njo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prej拧nji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '膷ez %s', + past: 'pred %s', + s: processRelativeTime$7, + ss: processRelativeTime$7, + m: processRelativeTime$7, + mm: processRelativeTime$7, + h: processRelativeTime$7, + hh: processRelativeTime$7, + d: processRelativeTime$7, + dd: processRelativeTime$7, + M: processRelativeTime$7, + MM: processRelativeTime$7, + y: processRelativeTime$7, + yy: processRelativeTime$7, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N毛ntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N毛n_Dhj'.split('_'), + weekdays: 'E Diel_E H毛n毛_E Mart毛_E M毛rkur毛_E Enjte_E Premte_E Shtun毛'.split( + '_' + ), + weekdaysShort: 'Die_H毛n_Mar_M毛r_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_M毛_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot n毛] LT', + nextDay: '[Nes毛r n毛] LT', + nextWeek: 'dddd [n毛] LT', + lastDay: '[Dje n毛] LT', + lastWeek: 'dddd [e kaluar n毛] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'n毛 %s', + past: '%s m毛 par毛', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'nj毛 minut毛', + mm: '%d minuta', + h: 'nj毛 or毛', + hh: '%d or毛', + d: 'nj毛 dit毛', + dd: '%d dit毛', + M: 'nj毛 muaj', + MM: '%d muaj', + y: 'nj毛 vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var translator$1 = { + words: { + //Different grammatical cases + ss: ['褋械泻褍薪写邪', '褋械泻褍薪写械', '褋械泻褍薪写懈'], + m: ['褬械写邪薪 屑懈薪褍褌', '褬械写薪芯谐 屑懈薪褍褌邪'], + mm: ['屑懈薪褍褌', '屑懈薪褍褌邪', '屑懈薪褍褌邪'], + h: ['褬械写邪薪 褋邪褌', '褬械写薪芯谐 褋邪褌邪'], + hh: ['褋邪褌', '褋邪褌邪', '褋邪褌懈'], + d: ['褬械写邪薪 写邪薪', '褬械写薪芯谐 写邪薪邪'], + dd: ['写邪薪', '写邪薪邪', '写邪薪邪'], + M: ['褬械写邪薪 屑械褋械褑', '褬械写薪芯谐 屑械褋械褑邪'], + MM: ['屑械褋械褑', '屑械褋械褑邪', '屑械褋械褑懈'], + y: ['褬械写薪褍 谐芯写懈薪褍', '褬械写薪械 谐芯写懈薪械'], + yy: ['谐芯写懈薪褍', '谐芯写懈薪械', '谐芯写懈薪邪'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$1.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return '褬械写薪邪 谐芯写懈薪邪'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$1.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === '谐芯写懈薪褍') { + return number + ' 谐芯写懈薪邪'; + } + + return number + ' ' + word; + }, + }; + + hooks.defineLocale('sr-cyrl', { + months: '褬邪薪褍邪褉_褎械斜褉褍邪褉_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪_褬褍谢_邪胁谐褍褋褌_褋械锌褌械屑斜邪褉_芯泻褌芯斜邪褉_薪芯胁械屑斜邪褉_写械褑械屑斜邪褉'.split( + '_' + ), + monthsShort: + '褬邪薪._褎械斜._屑邪褉._邪锌褉._屑邪褬_褬褍薪_褬褍谢_邪胁谐._褋械锌._芯泻褌._薪芯胁._写械褑.'.split('_'), + monthsParseExact: true, + weekdays: '薪械写械褭邪_锌芯薪械写械褭邪泻_褍褌芯褉邪泻_褋褉械写邪_褔械褌胁褉褌邪泻_锌械褌邪泻_褋褍斜芯褌邪'.split('_'), + weekdaysShort: '薪械写._锌芯薪._褍褌芯._褋褉械._褔械褌._锌械褌._褋褍斜.'.split('_'), + weekdaysMin: '薪械_锌芯_褍褌_褋褉_褔械_锌械_褋褍'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[写邪薪邪褋 褍] LT', + nextDay: '[褋褍褌褉邪 褍] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[褍] [薪械写械褭褍] [褍] LT'; + case 3: + return '[褍] [褋褉械写褍] [褍] LT'; + case 6: + return '[褍] [褋褍斜芯褌褍] [褍] LT'; + case 1: + case 2: + case 4: + case 5: + return '[褍] dddd [褍] LT'; + } + }, + lastDay: '[褬褍褔械 褍] LT', + lastWeek: function () { + var lastWeekDays = [ + '[锌褉芯褕谢械] [薪械写械褭械] [褍] LT', + '[锌褉芯褕谢芯谐] [锌芯薪械写械褭泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [褍褌芯褉泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褉械写械] [褍] LT', + '[锌褉芯褕谢芯谐] [褔械褌胁褉褌泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [锌械褌泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褍斜芯褌械] [褍] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械 %s', + s: '薪械泻芯谢懈泻芯 褋械泻褍薪写懈', + ss: translator$1.translate, + m: translator$1.translate, + mm: translator$1.translate, + h: translator$1.translate, + hh: translator$1.translate, + d: translator$1.translate, + dd: translator$1.translate, + M: translator$1.translate, + MM: translator$1.translate, + y: translator$1.translate, + yy: translator$1.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var translator$2 = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator$2.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator$2.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, + }; + + hooks.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_膷etvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._膷et._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_膷e_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedelje] [u] LT', + '[pro拧log] [ponedeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator$2.translate, + m: translator$2.translate, + mm: translator$2.translate, + h: translator$2.translate, + hh: translator$2.translate, + d: translator$2.translate, + dd: translator$2.translate, + M: translator$2.translate, + MM: translator$2.translate, + y: translator$2.translate, + yy: translator$2.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's枚ndag_m氓ndag_tisdag_onsdag_torsdag_fredag_l枚rdag'.split('_'), + weekdaysShort: 's枚n_m氓n_tis_ons_tor_fre_l枚r'.split('_'), + weekdaysMin: 's枚_m氓_ti_on_to_fr_l枚'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Ig氓r] LT', + nextWeek: '[P氓] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'f枚r %s sedan', + s: 'n氓gra sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en m氓nad', + MM: '%d m氓nader', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var symbolMap$g = { + 1: '喁', + 2: '喁', + 3: '喁', + 4: '喁', + 5: '喁', + 6: '喁', + 7: '喁', + 8: '喁', + 9: '喁', + 0: '喁', + }, + numberMap$f = { + '喁': '1', + '喁': '2', + '喁': '3', + '喁': '4', + '喁': '5', + '喁': '6', + '喁': '7', + '喁': '8', + '喁': '9', + '喁': '0', + }; + + hooks.defineLocale('ta', { + months: '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + monthsShort: + '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + weekdays: + '喈炧喈喈编瘝喈编瘉喈曕瘝喈曕喈脆喁坃喈む喈權瘝喈曕疅喁嵿畷喈苦喈瘓_喈氞瘑喈掂瘝喈掂喈瘝喈曕喈脆喁坃喈瘉喈む喁嵿畷喈苦喈瘓_喈掂喈喈脆畷喁嵿畷喈苦喈瘓_喈掂瘑喈赤瘝喈赤喈曕瘝喈曕喈脆喁坃喈氞喈苦畷喁嵿畷喈苦喈瘓'.split( + '_' + ), + weekdaysShort: '喈炧喈喈编瘉_喈む喈權瘝喈曕喁峗喈氞瘑喈掂瘝喈掂喈瘝_喈瘉喈む喁峗喈掂喈喈脆喁峗喈掂瘑喈赤瘝喈赤_喈氞喈'.split( + '_' + ), + weekdaysMin: '喈炧_喈む_喈氞瘑_喈瘉_喈掂_喈掂瘑_喈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[喈囙喁嵿喁乚 LT', + nextDay: '[喈ㄠ喈赤瘓] LT', + nextWeek: 'dddd, LT', + lastDay: '[喈ㄠ瘒喈编瘝喈编瘉] LT', + lastWeek: '[喈曕疅喈ㄠ瘝喈 喈掂喈班喁峕 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喈囙喁', + past: '%s 喈瘉喈┼瘝', + s: '喈掄喁 喈氞喈 喈掂喈ㄠ喈熰喈曕喁', + ss: '%d 喈掂喈ㄠ喈熰喈曕喁', + m: '喈掄喁 喈ㄠ喈喈熰喁', + mm: '%d 喈ㄠ喈喈熰畽喁嵿畷喈赤瘝', + h: '喈掄喁 喈喈 喈ㄠ瘒喈班喁', + hh: '%d 喈喈 喈ㄠ瘒喈班喁', + d: '喈掄喁 喈ㄠ喈赤瘝', + dd: '%d 喈ㄠ喈熰瘝喈曕喁', + M: '喈掄喁 喈喈む喁', + MM: '%d 喈喈む畽喁嵿畷喈赤瘝', + y: '喈掄喁 喈掂喁佮疅喈瘝', + yy: '%d 喈嗋喁嵿疅喁佮畷喈赤瘝', + }, + dayOfMonthOrdinalParse: /\d{1,2}喈掂喁/, + ordinal: function (number) { + return number + '喈掂喁'; + }, + preparse: function (string) { + return string.replace(/[喁о喁┼喁喁喁]/g, function (match) { + return numberMap$f[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap$g[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /喈喈喁峾喈掂瘓喈曕喁坾喈曕喈侧瘓|喈ㄠ喁嵿喈曕喁峾喈庎喁嵿喈距疅喁亅喈喈侧瘓/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' 喈喈喁'; + } else if (hour < 6) { + return ' 喈掂瘓喈曕喁'; // 喈掂瘓喈曕喁 + } else if (hour < 10) { + return ' 喈曕喈侧瘓'; // 喈曕喈侧瘓 + } else if (hour < 14) { + return ' 喈ㄠ喁嵿喈曕喁'; // 喈ㄠ喁嵿喈曕喁 + } else if (hour < 18) { + return ' 喈庎喁嵿喈距疅喁'; // 喈庎喁嵿喈距疅喁 + } else if (hour < 22) { + return ' 喈喈侧瘓'; // 喈喈侧瘓 + } else { + return ' 喈喈喁'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喈喈喁') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === '喈掂瘓喈曕喁' || meridiem === '喈曕喈侧瘓') { + return hour; + } else if (meridiem === '喈ㄠ喁嵿喈曕喁') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('te', { + months: '喟溹皑喟掂鞍喟縚喟翱喟睄喟班暗喟班翱_喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟苦安啾峗喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸喟膏睄喟熰眮_喟膏眴喟睄喟熰眴喟傕艾喟班睄_喟呧皶啾嵿盁啾嬥艾喟班睄_喟ㄠ暗喟傕艾喟班睄_喟∴翱喟膏眴喟傕艾喟班睄'.split( + '_' + ), + monthsShort: + '喟溹皑._喟翱喟睄喟._喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟._喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸._喟膏眴喟睄._喟呧皶啾嵿盁啾._喟ㄠ暗._喟∴翱喟膏眴.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '喟嗋唉喟苦暗喟距鞍喟俖喟膏眿喟暗喟距鞍喟俖喟皞喟椸俺喟掂熬喟班皞_喟眮喟о暗喟距鞍喟俖喟椸眮喟班眮喟掂熬喟班皞_喟多眮喟曕睄喟班暗喟距鞍喟俖喟多皑喟苦暗喟距鞍喟'.split( + '_' + ), + weekdaysShort: '喟嗋唉喟縚喟膏眿喟甠喟皞喟椸俺_喟眮喟喟椸眮喟班眮_喟多眮喟曕睄喟癬喟多皑喟'.split('_'), + weekdaysMin: '喟哶喟膏眿_喟皞_喟眮_喟椸眮_喟多眮_喟'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[喟ㄠ眹喟∴眮] LT', + nextDay: '[喟班眹喟眮] LT', + nextWeek: 'dddd, LT', + lastDay: '[喟ㄠ翱喟ㄠ睄喟╙ LT', + lastWeek: '[喟椸挨] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喟侧眿', + past: '%s 喟曕睄喟班翱喟む皞', + s: '喟曕眾喟ㄠ睄喟ㄠ翱 喟曕睄喟粪埃喟距安啾', + ss: '%d 喟膏眴喟曕皑啾嵿安啾', + m: '喟掄皶 喟ㄠ翱喟翱喟粪皞', + mm: '%d 喟ㄠ翱喟翱喟粪熬喟侧眮', + h: '喟掄皶 喟椸皞喟', + hh: '%d 喟椸皞喟熰安啾', + d: '喟掄皶 喟班眿喟溹眮', + dd: '%d 喟班眿喟溹眮喟侧眮', + M: '喟掄皶 喟ㄠ眴喟', + MM: '%d 喟ㄠ眴喟侧安啾', + y: '喟掄皶 喟膏皞喟掂挨啾嵿案喟班皞', + yy: '%d 喟膏皞喟掂挨啾嵿案喟班熬喟侧眮', + }, + dayOfMonthOrdinalParse: /\d{1,2}喟/, + ordinal: '%d喟', + meridiemParse: /喟班熬喟む睄喟班翱|喟夃唉喟皞|喟哀啾嵿隘喟距肮啾嵿皑喟倈喟膏熬喟皞喟む睄喟班皞/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喟班熬喟む睄喟班翱') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '喟夃唉喟皞') { + return hour; + } else if (meridiem === '喟哀啾嵿隘喟距肮啾嵿皑喟') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '喟膏熬喟皞喟む睄喟班皞') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '喟班熬喟む睄喟班翱'; + } else if (hour < 10) { + return '喟夃唉喟皞'; + } else if (hour < 17) { + return '喟哀啾嵿隘喟距肮啾嵿皑喟'; + } else if (hour < 20) { + return '喟膏熬喟皞喟む睄喟班皞'; + } else { + return '喟班熬喟む睄喟班翱'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju帽u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + var suffixes$3 = { + 0: '-褍屑', + 1: '-褍屑', + 2: '-褞屑', + 3: '-褞屑', + 4: '-褍屑', + 5: '-褍屑', + 6: '-褍屑', + 7: '-褍屑', + 8: '-褍屑', + 9: '-褍屑', + 10: '-褍屑', + 12: '-褍屑', + 13: '-褍屑', + 20: '-褍屑', + 30: '-褞屑', + 40: '-褍屑', + 50: '-褍屑', + 60: '-褍屑', + 70: '-褍屑', + 80: '-褍屑', + 90: '-褍屑', + 100: '-褍屑', + }; + + hooks.defineLocale('tg', { + months: { + format: '褟薪胁邪褉懈_褎械胁褉邪谢懈_屑邪褉褌懈_邪锌褉械谢懈_屑邪泄懈_懈褞薪懈_懈褞谢懈_邪胁谐褍褋褌懈_褋械薪褌褟斜褉懈_芯泻褌褟斜褉懈_薪芯褟斜褉懈_写械泻邪斜褉懈'.split( + '_' + ), + standalone: + '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + }, + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '褟泻褕邪薪斜械_写褍褕邪薪斜械_褋械褕邪薪斜械_褔芯褉褕邪薪斜械_锌邪薪曳褕邪薪斜械_曳褍屑褗邪_褕邪薪斜械'.split( + '_' + ), + weekdaysShort: '褟褕斜_写褕斜_褋褕斜_褔褕斜_锌褕斜_曳褍屑_褕薪斜'.split('_'), + weekdaysMin: '褟褕_写褕_褋褕_褔褕_锌褕_曳屑_褕斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袠屑褉盈蟹 褋芯邪褌懈] LT', + nextDay: '[肖邪褉写芯 褋芯邪褌懈] LT', + lastDay: '[袛懈褉盈蟹 褋芯邪褌懈] LT', + nextWeek: 'dddd[懈] [页邪褎褌邪懈 芯褟薪写邪 褋芯邪褌懈] LT', + lastWeek: 'dddd[懈] [页邪褎褌邪懈 谐褍蟹邪褕褌邪 褋芯邪褌懈] LT', + sameElse: 'L', + }, + relativeTime: { + future: '斜邪褗写懈 %s', + past: '%s 锌械褕', + s: '褟泻褔邪薪写 褋芯薪懈褟', + m: '褟泻 写邪覜懈覜邪', + mm: '%d 写邪覜懈覜邪', + h: '褟泻 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '褟泻 褉盈蟹', + dd: '%d 褉盈蟹', + M: '褟泻 屑芯页', + MM: '%d 屑芯页', + y: '褟泻 褋芯谢', + yy: '%d 褋芯谢', + }, + meridiemParse: /褕邪斜|褋褍斜页|褉盈蟹|斜械谐芯页/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '褕邪斜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '褋褍斜页') { + return hour; + } else if (meridiem === '褉盈蟹') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '斜械谐芯页') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '褕邪斜'; + } else if (hour < 11) { + return '褋褍斜页'; + } else if (hour < 16) { + return '褉盈蟹'; + } else if (hour < 19) { + return '斜械谐芯页'; + } else { + return '褕邪斜'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褍屑|褞屑)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('th', { + months: '喔∴竵喔`覆喔勦浮_喔佮父喔∴笭喔侧笧喔编笝喔樴箤_喔∴傅喔權覆喔勦浮_喙喔∴俯喔侧涪喔檁喔炧袱喔┼笭喔侧竸喔喔∴复喔栢父喔權覆喔⑧笝_喔佮福喔佮笌喔侧竸喔喔复喔囙斧喔侧竸喔喔佮副喔權涪喔侧涪喔檁喔曕父喔ム覆喔勦浮_喔炧袱喔ㄠ笀喔脆竵喔侧涪喔檁喔樴副喔權抚喔侧竸喔'.split( + '_' + ), + monthsShort: + '喔.喔._喔.喔._喔∴傅.喔._喙喔.喔._喔.喔._喔∴复.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔笟喔斷傅_喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), + weekdaysShort: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔猒喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), // yes, three characters difference + weekdaysMin: '喔覆._喔._喔._喔._喔炧袱._喔._喔.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY 喙喔о弗喔 H:mm', + LLLL: '喔о副喔檇ddd喔椸傅喙 D MMMM YYYY 喙喔о弗喔 H:mm', + }, + meridiemParse: /喔佮箞喔笝喙喔椸傅喙堗涪喔噟喔弗喔编竾喙喔椸傅喙堗涪喔/, + isPM: function (input) { + return input === '喔弗喔编竾喙喔椸傅喙堗涪喔'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '喔佮箞喔笝喙喔椸傅喙堗涪喔'; + } else { + return '喔弗喔编竾喙喔椸傅喙堗涪喔'; + } + }, + calendar: { + sameDay: '[喔о副喔權笝喔掂箟 喙喔о弗喔瞉 LT', + nextDay: '[喔炧福喔膏箞喔囙笝喔掂箟 喙喔о弗喔瞉 LT', + nextWeek: 'dddd[喔笝喙夃覆 喙喔о弗喔瞉 LT', + lastDay: '[喙喔∴阜喙堗腑喔о覆喔權笝喔掂箟 喙喔о弗喔瞉 LT', + lastWeek: '[喔о副喔橾dddd[喔椸傅喙堗箒喔ム箟喔 喙喔о弗喔瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '喔傅喔 %s', + past: '%s喔椸傅喙堗箒喔ム箟喔', + s: '喙勦浮喙堗竵喔掂箞喔о复喔權覆喔椸傅', + ss: '%d 喔о复喔權覆喔椸傅', + m: '1 喔權覆喔椸傅', + mm: '%d 喔權覆喔椸傅', + h: '1 喔娻副喙堗抚喙傕浮喔', + hh: '%d 喔娻副喙堗抚喙傕浮喔', + d: '1 喔о副喔', + dd: '%d 喔о副喔', + w: '1 喔副喔涏笖喔侧斧喙', + ww: '%d 喔副喔涏笖喔侧斧喙', + M: '1 喙喔斷阜喔笝', + MM: '%d 喙喔斷阜喔笝', + y: '1 喔涏傅', + yy: '%d 喔涏傅', + }, + }); + + //! moment.js locale configuration + + var suffixes$4 = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'眉nji", + 4: "'眉nji", + 100: "'眉nji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", + }; + + hooks.defineLocale('tk', { + months: '脻anwar_Fewral_Mart_Aprel_Ma媒_I媒un_I媒ul_Awgust_Sent媒abr_Okt媒abr_No媒abr_Dekabr'.split( + '_' + ), + monthsShort: '脻an_Few_Mar_Apr_Ma媒_I媒n_I媒l_Awg_Sen_Okt_No媒_Dek'.split('_'), + weekdays: '脻ek艧enbe_Du艧enbe_Si艧enbe_脟ar艧enbe_Pen艧enbe_Anna_艦enbe'.split( + '_' + ), + weekdaysShort: '脻ek_Du艧_Si艧_脟ar_Pen_Ann_艦en'.split('_'), + weekdaysMin: '脻k_D艧_S艧_脟r_Pn_An_艦n'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[d眉媒n] LT', + lastWeek: '[ge莽en] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s so艌', + past: '%s 枚艌', + s: 'birn盲莽e sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir a媒', + MM: '%d a媒', + y: 'bir 媒yl', + yy: '%d 媒yl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + var numbersNouns = 'pagh_wa鈥檁cha鈥檁wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + + function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; + } + + function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu鈥' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; + } + + function translate$a(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } + } + + function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; + } + + hooks.defineLocale('tlh', { + months: 'tera鈥 jar wa鈥檁tera鈥 jar cha鈥檁tera鈥 jar wej_tera鈥 jar loS_tera鈥 jar vagh_tera鈥 jar jav_tera鈥 jar Soch_tera鈥 jar chorgh_tera鈥 jar Hut_tera鈥 jar wa鈥檓aH_tera鈥 jar wa鈥檓aH wa鈥檁tera鈥 jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsShort: + 'jar wa鈥檁jar cha鈥檁jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa鈥檓aH_jar wa鈥檓aH wa鈥檁jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa鈥檒eS] LT', + nextWeek: 'LLL', + lastDay: '[wa鈥橦u鈥橾 LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate$a, + m: 'wa鈥 tup', + mm: translate$a, + h: 'wa鈥 rep', + hh: translate$a, + d: 'wa鈥 jaj', + dd: translate$a, + M: 'wa鈥 jar', + MM: translate$a, + y: 'wa鈥 DIS', + yy: translate$a, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + //! moment.js locale configuration + + var suffixes$5 = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'眉nc眉", + 4: "'眉nc眉", + 100: "'眉nc眉", + 6: "'nc谋", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'谋nc谋", + 90: "'谋nc谋", + }; + + hooks.defineLocale('tr', { + months: 'Ocak_艦ubat_Mart_Nisan_May谋s_Haziran_Temmuz_A臒ustos_Eyl眉l_Ekim_Kas谋m_Aral谋k'.split( + '_' + ), + monthsShort: 'Oca_艦ub_Mar_Nis_May_Haz_Tem_A臒u_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Sal谋_脟ar艧amba_Per艧embe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_脟ar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_脟a_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? '枚枚' : '脰脰'; + } else { + return isLower ? '枚s' : '脰S'; + } + }, + meridiemParse: /枚枚|脰脰|枚s|脰S/, + isPM: function (input) { + return input === '枚s' || input === '脰S'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[yar谋n saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[d眉n] LT', + lastWeek: '[ge莽en] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 枚nce', + s: 'birka莽 saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir y谋l', + yy: '%d y谋l', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'谋nc谋"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. + // This is currently too difficult (maybe even impossible) to add. + hooks.defineLocale('tzl', { + months: 'Januar_Fevraglh_Mar莽_Avr茂u_Mai_G眉n_Julia_Guscht_Setemvar_Listop盲ts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_G眉n_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'S煤ladi_L煤ne莽i_Maitzi_M谩rcuri_Xh煤adi_Vi茅ner莽i_S谩turi'.split('_'), + weekdaysShort: 'S煤l_L煤n_Mai_M谩r_Xh煤_Vi茅_S谩t'.split('_'), + weekdaysMin: 'S煤_L煤_Ma_M谩_Xh_Vi_S谩'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi 脿] LT', + nextDay: '[dem脿 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[ieiri 脿] LT', + lastWeek: '[s眉r el] dddd [lasteu 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime$8, + ss: processRelativeTime$8, + m: processRelativeTime$8, + mm: processRelativeTime$8, + h: processRelativeTime$8, + hh: processRelativeTime$8, + d: processRelativeTime$8, + dd: processRelativeTime$8, + M: processRelativeTime$8, + MM: processRelativeTime$8, + y: processRelativeTime$8, + yy: processRelativeTime$8, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, + }); + + function processRelativeTime$8(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n m铆ut", "'iens m铆ut"], + mm: [number + ' m铆uts', '' + number + ' m铆uts'], + h: ["'n 镁ora", "'iensa 镁ora"], + hh: [number + ' 镁oras', '' + number + ' 镁oras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; + } + + //! moment.js locale configuration + + hooks.defineLocale('tzm-latn', { + months: 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minu岣', + mm: '%d minu岣', + h: 'sa蓻a', + hh: '%d tassa蓻in', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('tzm', { + months: '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + monthsShort: + '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + weekdays: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysShort: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysMin: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[獯扳禉獯封祬 獯碷 LT', + nextDay: '[獯扳禉獯解窗 獯碷 LT', + nextWeek: 'dddd [獯碷 LT', + lastDay: '[獯扳禋獯扳祻獾 獯碷 LT', + lastWeek: 'dddd [獯碷 LT', + sameElse: 'L', + }, + relativeTime: { + future: '獯封窗獯封祬 獾 獾⑩窗獾 %s', + past: '獾⑩窗獾 %s', + s: '獾夆祹獾夆唇', + ss: '%d 獾夆祹獾夆唇', + m: '獾庘祲獾忊祿獯', + mm: '%d 獾庘祲獾忊祿獯', + h: '獾欌窗獾勨窗', + hh: '%d 獾溾窗獾欌禉獯扳祫獾夆祻', + d: '獯扳禉獾', + dd: '%d o獾欌禉獯扳祻', + M: '獯扳耽o獾撯禂', + MM: '%d 獾夆耽獾⑩祲獾斺祻', + y: '獯扳禉獯斥窗獾', + yy: '%d 獾夆禉獯斥窗獾欌祻', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('ug-cn', { + months: '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + monthsShort: + '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + weekdays: '賷蹠賰卮蹠賳亘蹠_丿蹐卮蹠賳亘蹠_爻蹠賷卮蹠賳亘蹠_趩丕乇卮蹠賳亘蹠_倬蹠賷卮蹠賳亘蹠_噩蹐賲蹠_卮蹠賳亘蹠'.split( + '_' + ), + weekdaysShort: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + weekdaysMin: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶', + LLL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + LLLL: 'dddd貙 YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + }, + meridiemParse: /賷蹛乇賶賲 賰蹛趩蹠|爻蹠诰蹠乇|趩蹐卮鬲賶賳 亘蹏乇蹏賳|趩蹐卮|趩蹐卮鬲賶賳 賰蹛賷賶賳|賰蹠趩/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === '賷蹛乇賶賲 賰蹛趩蹠' || + meridiem === '爻蹠诰蹠乇' || + meridiem === '趩蹐卮鬲賶賳 亘蹏乇蹏賳' + ) { + return hour; + } else if (meridiem === '趩蹐卮鬲賶賳 賰蹛賷賶賳' || meridiem === '賰蹠趩') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '賷蹛乇賶賲 賰蹛趩蹠'; + } else if (hm < 900) { + return '爻蹠诰蹠乇'; + } else if (hm < 1130) { + return '趩蹐卮鬲賶賳 亘蹏乇蹏賳'; + } else if (hm < 1230) { + return '趩蹐卮'; + } else if (hm < 1800) { + return '趩蹐卮鬲賶賳 賰蹛賷賶賳'; + } else { + return '賰蹠趩'; + } + }, + calendar: { + sameDay: '[亘蹐诏蹐賳 爻丕卅蹠鬲] LT', + nextDay: '[卅蹠鬲蹠 爻丕卅蹠鬲] LT', + nextWeek: '[賰蹛賱蹠乇賰賶] dddd [爻丕卅蹠鬲] LT', + lastDay: '[鬲蹎賳蹐诏蹐賳] LT', + lastWeek: '[卅丕賱丿賶賳賯賶] dddd [爻丕卅蹠鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 賰蹛賷賶賳', + past: '%s 亘蹏乇蹏賳', + s: '賳蹠趩趩蹠 爻蹛賰賵賳鬲', + ss: '%d 爻蹛賰賵賳鬲', + m: '亘賶乇 賲賶賳蹏鬲', + mm: '%d 賲賶賳蹏鬲', + h: '亘賶乇 爻丕卅蹠鬲', + hh: '%d 爻丕卅蹠鬲', + d: '亘賶乇 賰蹐賳', + dd: '%d 賰蹐賳', + M: '亘賶乇 卅丕賷', + MM: '%d 卅丕賷', + y: '亘賶乇 賷賶賱', + yy: '%d 賷賶賱', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-賰蹐賳賶|-卅丕賷|-诰蹠倬鬲蹠)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-賰蹐賳賶'; + case 'w': + case 'W': + return number + '-诰蹠倬鬲蹠'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, + }); + + //! moment.js locale configuration + + function plural$6(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; + } + function relativeTimeWithPlural$4(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写懈_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写懈_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁懈谢懈薪邪_褏胁懈谢懈薪懈_褏胁懈谢懈薪' : '褏胁懈谢懈薪褍_褏胁懈谢懈薪懈_褏胁懈谢懈薪', + hh: withoutSuffix ? '谐芯写懈薪邪_谐芯写懈薪懈_谐芯写懈薪' : '谐芯写懈薪褍_谐芯写懈薪懈_谐芯写懈薪', + dd: '写械薪褜_写薪褨_写薪褨胁', + MM: '屑褨褋褟褑褜_屑褨褋褟褑褨_屑褨褋褟褑褨胁', + yy: '褉褨泻_褉芯泻懈_褉芯泻褨胁', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁懈谢懈薪邪' : '褏胁懈谢懈薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐芯写懈薪邪' : '谐芯写懈薪褍'; + } else { + return number + ' ' + plural$6(format[key], +number); + } + } + function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + '薪械写褨谢褟_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写邪_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲廮褋褍斜芯褌邪'.split( + '_' + ), + accusative: + '薪械写褨谢褞_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写褍_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲巁褋褍斜芯褌褍'.split( + '_' + ), + genitive: + '薪械写褨谢褨_锌芯薪械写褨谢泻邪_胁褨胁褌芯褉泻邪_褋械褉械写懈_褔械褌胁械褉谐邪_锌鈥櫻徰傂叫秆喲朹褋褍斜芯褌懈'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[袙胁校褍]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:屑懈薪褍谢芯褩|薪邪褋褌褍锌薪芯褩)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + '芯' + (this.hours() === 11 ? '斜' : '') + '] LT'; + }; + } + + hooks.defineLocale('uk', { + months: { + format: '褋褨褔薪褟_谢褞褌芯谐芯_斜械褉械蟹薪褟_泻胁褨褌薪褟_褌褉邪胁薪褟_褔械褉胁薪褟_谢懈锌薪褟_褋械褉锌薪褟_胁械褉械褋薪褟_卸芯胁褌薪褟_谢懈褋褌芯锌邪写邪_谐褉褍写薪褟'.split( + '_' + ), + standalone: + '褋褨褔械薪褜_谢褞褌懈泄_斜械褉械蟹械薪褜_泻胁褨褌械薪褜_褌褉邪胁械薪褜_褔械褉胁械薪褜_谢懈锌械薪褜_褋械褉锌械薪褜_胁械褉械褋械薪褜_卸芯胁褌械薪褜_谢懈褋褌芯锌邪写_谐褉褍写械薪褜'.split( + '_' + ), + }, + monthsShort: '褋褨褔_谢褞褌_斜械褉_泻胁褨褌_褌褉邪胁_褔械褉胁_谢懈锌_褋械褉锌_胁械褉_卸芯胁褌_谢懈褋褌_谐褉褍写'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 褉.', + LLL: 'D MMMM YYYY 褉., HH:mm', + LLLL: 'dddd, D MMMM YYYY 褉., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[小褜芯谐芯写薪褨 '), + nextDay: processHoursFunction('[袟邪胁褌褉邪 '), + lastDay: processHoursFunction('[袙褔芯褉邪 '), + nextWeek: processHoursFunction('[校] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[袦懈薪褍谢芯褩] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[袦懈薪褍谢芯谐芯] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '%s 褌芯屑褍', + s: '写械泻褨谢褜泻邪 褋械泻褍薪写', + ss: relativeTimeWithPlural$4, + m: relativeTimeWithPlural$4, + mm: relativeTimeWithPlural$4, + h: '谐芯写懈薪褍', + hh: relativeTimeWithPlural$4, + d: '写械薪褜', + dd: relativeTimeWithPlural$4, + M: '屑褨褋褟褑褜', + MM: relativeTimeWithPlural$4, + y: '褉褨泻', + yy: relativeTimeWithPlural$4, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /薪芯褔褨|褉邪薪泻褍|写薪褟|胁械褔芯褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔芯褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褨'; + } else if (hour < 12) { + return '褉邪薪泻褍'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔芯褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + var months$b = [ + '噩賳賵乇蹖', + '賮乇賵乇蹖', + '賲丕乇趩', + '丕倬乇蹖賱', + '賲卅蹖', + '噩賵賳', + '噩賵賱丕卅蹖', + '丕诏爻鬲', + '爻鬲賲亘乇', + '丕讴鬲賵亘乇', + '賳賵賲亘乇', + '丿爻賲亘乇', + ], + days$2 = ['丕鬲賵丕乇', '倬蹖乇', '賲賳诏賱', '亘丿诰', '噩賲毓乇丕鬲', '噩賲毓蹃', '蹃賮鬲蹃']; + + hooks.defineLocale('ur', { + months: months$b, + monthsShort: months$b, + weekdays: days$2, + weekdaysShort: days$2, + weekdaysMin: days$2, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丌噩 亘賵賯鬲] LT', + nextDay: '[讴賱 亘賵賯鬲] LT', + nextWeek: 'dddd [亘賵賯鬲] LT', + lastDay: '[诏匕卮鬲蹃 乇賵夭 亘賵賯鬲] LT', + lastWeek: '[诏匕卮鬲蹃] dddd [亘賵賯鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 亘毓丿', + past: '%s 賯亘賱', + s: '趩賳丿 爻蹖讴賳趫', + ss: '%d 爻蹖讴賳趫', + m: '丕蹖讴 賲賳俟', + mm: '%d 賲賳俟', + h: '丕蹖讴 诏诰賳俟蹃', + hh: '%d 诏诰賳俟蹝', + d: '丕蹖讴 丿賳', + dd: '%d 丿賳', + M: '丕蹖讴 賲丕蹃', + MM: '%d 賲丕蹃', + y: '丕蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('uz', { + months: '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '携泻褕邪薪斜邪_袛褍褕邪薪斜邪_小械褕邪薪斜邪_效芯褉褕邪薪斜邪_袩邪泄褕邪薪斜邪_袞褍屑邪_楔邪薪斜邪'.split('_'), + weekdaysShort: '携泻褕_袛褍褕_小械褕_效芯褉_袩邪泄_袞褍屑_楔邪薪'.split('_'), + weekdaysMin: '携泻_袛褍_小械_效芯_袩邪_袞褍_楔邪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[袘褍谐褍薪 褋芯邪褌] LT [写邪]', + nextDay: '[协褉褌邪谐邪] LT [写邪]', + nextWeek: 'dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + lastDay: '[袣械褔邪 褋芯邪褌] LT [写邪]', + lastWeek: '[校褌谐邪薪] dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + sameElse: 'L', + }, + relativeTime: { + future: '携泻懈薪 %s 懈褔懈写邪', + past: '袘懈褉 薪械褔邪 %s 芯谢写懈薪', + s: '褎褍褉褋邪褌', + ss: '%d 褎褍褉褋邪褌', + m: '斜懈褉 写邪泻懈泻邪', + mm: '%d 写邪泻懈泻邪', + h: '斜懈褉 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '斜懈褉 泻褍薪', + dd: '%d 泻褍薪', + M: '斜懈褉 芯泄', + MM: '%d 芯泄', + y: '斜懈褉 泄懈谢', + yy: '%d 泄懈谢', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('vi', { + months: 'th谩ng 1_th谩ng 2_th谩ng 3_th谩ng 4_th谩ng 5_th谩ng 6_th谩ng 7_th谩ng 8_th谩ng 9_th谩ng 10_th谩ng 11_th谩ng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ch峄 nh岷璽_th峄 hai_th峄 ba_th峄 t瓢_th峄 n膬m_th峄 s谩u_th峄 b岷'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [n膬m] YYYY', + LLL: 'D MMMM [n膬m] YYYY HH:mm', + LLLL: 'dddd, D MMMM [n膬m] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[H么m nay l煤c] LT', + nextDay: '[Ng脿y mai l煤c] LT', + nextWeek: 'dddd [tu岷 t峄沬 l煤c] LT', + lastDay: '[H么m qua l煤c] LT', + lastWeek: 'dddd [tu岷 tr瓢峄沜 l煤c] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s t峄沬', + past: '%s tr瓢峄沜', + s: 'v脿i gi芒y', + ss: '%d gi芒y', + m: 'm峄檛 ph煤t', + mm: '%d ph煤t', + h: 'm峄檛 gi峄', + hh: '%d gi峄', + d: 'm峄檛 ng脿y', + dd: '%d ng脿y', + w: 'm峄檛 tu岷', + ww: '%d tu岷', + M: 'm峄檛 th谩ng', + MM: '%d th谩ng', + y: 'm峄檛 n膬m', + yy: '%d n膬m', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('x-pseudo', { + months: 'J~谩帽煤谩~r媒_F~茅br煤~谩r媒_~M谩rc~h_脕p~r铆l_~M谩媒_~J煤帽茅~_J煤l~媒_脕煤~g煤st~_S茅p~t茅mb~茅r_脫~ct贸b~茅r_脩~贸v茅m~b茅r_~D茅c茅~mb茅r'.split( + '_' + ), + monthsShort: + 'J~谩帽_~F茅b_~M谩r_~脕pr_~M谩媒_~J煤帽_~J煤l_~脕煤g_~S茅p_~脫ct_~脩贸v_~D茅c'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~煤帽d谩~媒_M贸~帽d谩媒~_T煤茅~sd谩媒~_W茅d~帽茅sd~谩媒_T~h煤rs~d谩媒_~Fr铆d~谩媒_S~谩t煤r~d谩媒'.split( + '_' + ), + weekdaysShort: 'S~煤帽_~M贸帽_~T煤茅_~W茅d_~Th煤_~Fr铆_~S谩t'.split('_'), + weekdaysMin: 'S~煤_M贸~_T煤_~W茅_T~h_Fr~_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~贸d谩~媒 谩t] LT', + nextDay: '[T~贸m贸~rr贸~w 谩t] LT', + nextWeek: 'dddd [谩t] LT', + lastDay: '[脻~茅st~茅rd谩~媒 谩t] LT', + lastWeek: '[L~谩st] dddd [谩t] LT', + sameElse: 'L', + }, + relativeTime: { + future: '铆~帽 %s', + past: '%s 谩~g贸', + s: '谩 ~f茅w ~s茅c贸~帽ds', + ss: '%d s~茅c贸帽~ds', + m: '谩 ~m铆帽~煤t茅', + mm: '%d m~铆帽煤~t茅s', + h: '谩~帽 h贸~煤r', + hh: '%d h~贸煤rs', + d: '谩 ~d谩媒', + dd: '%d d~谩媒s', + M: '谩 ~m贸帽~th', + MM: '%d m~贸帽t~hs', + y: '谩 ~媒茅谩r', + yy: '%d 媒~茅谩rs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('yo', { + months: 'S岷固乺岷固乢E虁re虁le虁_岷竢岷固na虁_I虁gbe虂_E虁bibi_O虁ku虁du_Ag岷筸o_O虁gu虂n_Owewe_峄屘wa虁ra虁_Be虂lu虂_峄屘p岷固虁'.split( + '_' + ), + monthsShort: 'S岷固乺_E虁rl_岷竢n_I虁gb_E虁bi_O虁ku虁_Ag岷筥O虁gu虂_Owe_峄屘wa虁_Be虂l_峄屘p岷固虁'.split('_'), + weekdays: 'A虁i虁ku虂_Aje虂_I虁s岷固乬un_峄宩峄嵦乺u虂_峄宩峄嵦乥峄峗岷竧i虁_A虁ba虂m岷固乼a'.split('_'), + weekdaysShort: 'A虁i虁k_Aje虂_I虁s岷固乢峄宩r_峄宩b_岷竧i虁_A虁ba虂'.split('_'), + weekdaysMin: 'A虁i虁_Aj_I虁s_峄宺_峄宐_岷竧_A虁b'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[O虁ni虁 ni] LT', + nextDay: '[峄屘la ni] LT', + nextWeek: "dddd [峄宻岷固 to虂n'b峄峕 [ni] LT", + lastDay: '[A虁na ni] LT', + lastWeek: 'dddd [峄宻岷固 to虂l峄嵦乚 [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ni虂 %s', + past: '%s k峄峧a虂', + s: 'i虁s岷筳u虂 aaya虂 die', + ss: 'aaya虂 %d', + m: 'i虁s岷筳u虂 kan', + mm: 'i虁s岷筳u虂 %d', + h: 'wa虂kati kan', + hh: 'wa虂kati %d', + d: '峄峧峄嵦 kan', + dd: '峄峧峄嵦 %d', + M: 'osu虁 kan', + MM: 'osu虁 %d', + y: '峄峝u虂n kan', + yy: '峄峝u虂n %d', + }, + dayOfMonthOrdinalParse: /峄峧峄嵦乗s\d{1,2}/, + ordinal: '峄峧峄嵦 %d', + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-cn', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '鍛ㄦ棩_鍛ㄤ竴_鍛ㄤ簩_鍛ㄤ笁_鍛ㄥ洓_鍛ㄤ簲_鍛ㄥ叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃h鐐筸m鍒', + LLLL: 'YYYY骞碝鏈圖鏃dddAh鐐筸m鍒', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } else { + // '涓崍' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[涓媇dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + lastDay: '[鏄ㄥぉ]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[涓奭dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾鍛)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '鍛'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍚', + past: '%s鍓', + s: '鍑犵', + ss: '%d 绉', + m: '1 鍒嗛挓', + mm: '%d 鍒嗛挓', + h: '1 灏忔椂', + hh: '%d 灏忔椂', + d: '1 澶', + dd: '%d 澶', + w: '1 鍛', + ww: '%d 鍛', + M: '1 涓湀', + MM: '%d 涓湀', + y: '1 骞', + yy: '%d 骞', + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + 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. + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-hk', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1200) { + return '涓婂崍'; + } else if (hm === 1200) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: '[涓媇ddddLT', + lastDay: '[鏄ㄥぉ]LT', + lastWeek: '[涓奭ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-mo', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍏', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + //! moment.js locale configuration + + hooks.defineLocale('zh-tw', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, + }); + + hooks.locale('en'); + + return hooks; + +}))); diff --git a/node_modules/moment/min/moment-with-locales.min.js b/node_modules/moment/min/moment-with-locales.min.js new file mode 100644 index 0000000..fb17705 --- /dev/null +++ b/node_modules/moment/min/moment-with-locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var E;function M(){return E.apply(null,arguments)}function F(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function z(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function N(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var a in e)if(l(e,a))return;return 1}function d(e){return void 0===e}function J(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function R(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function C(e,a){for(var t=[],s=e.length,n=0;n>>0,s=0;sBe(e)?(r=e+1,a-Be(e)):(r=e,a);return{year:r,dayOfYear:t}}function Xe(e,a,t){var s,n,r=$e(e.year(),a,t),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+ea(n=e.year()-1,a,t):r>ea(e.year(),a,t)?(s=r-ea(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function ea(e,a,t){var s=$e(e,a,t),a=$e(e+1,a,t);return(Be(e)-s+a)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),a("week","w"),a("isoWeek","W"),t("week",5),t("isoWeek",5),p("w",o),p("ww",o,r),p("W",o),p("WW",o,r),je(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=m(e)});function aa(e,a){return e.slice(a,7).concat(e.slice(0,a))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),a("day","d"),a("weekday","e"),a("isoWeekday","E"),t("day",11),t("weekday",11),t("isoWeekday",11),p("d",o),p("e",o),p("E",o),p("dd",function(e,a){return a.weekdaysMinRegex(e)}),p("ddd",function(e,a){return a.weekdaysShortRegex(e)}),p("dddd",function(e,a){return a.weekdaysRegex(e)}),je(["dd","ddd","dddd"],function(e,a,t,s){s=t._locale.weekdaysParse(e,s,t._strict);null!=s?a.d=s:h(t).invalidWeekday=e}),je(["d","e","E"],function(e,a,t,s){a[s]=m(e)});var ta="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),sa="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),na="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ra=f,da=f,ia=f;function _a(){function e(e,a){return a.length-e.length}for(var a,t,s,n=[],r=[],d=[],i=[],_=0;_<7;_++)s=U([2e3,1]).day(_),a=k(this.weekdaysMin(s,"")),t=k(this.weekdaysShort(s,"")),s=k(this.weekdays(s,"")),n.push(a),r.push(t),d.push(s),i.push(a),i.push(t),i.push(s);n.sort(e),r.sort(e),d.sort(e),i.sort(e),this._weekdaysRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+n.join("|")+")","i")}function oa(){return this.hours()%12||12}function ma(e,a){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ua(e,a){return a._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,oa),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+oa.apply(this)+de(this.minutes(),2)}),s("hmmss",0,0,function(){return""+oa.apply(this)+de(this.minutes(),2)+de(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+de(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+de(this.minutes(),2)+de(this.seconds(),2)}),ma("a",!0),ma("A",!1),a("hour","h"),t("hour",13),p("a",ua),p("A",ua),p("H",o),p("h",o),p("k",o),p("HH",o,r),p("hh",o,r),p("kk",o,r),p("hmm",c),p("hmmss",L),p("Hmm",c),p("Hmmss",L),D(["H","HH"],w),D(["k","kk"],function(e,a,t){e=m(e);a[w]=24===e?0:e}),D(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),D(["h","hh"],function(e,a,t){a[w]=m(e),h(t).bigHour=!0}),D("hmm",function(e,a,t){var s=e.length-2;a[w]=m(e.substr(0,s)),a[Oe]=m(e.substr(s)),h(t).bigHour=!0}),D("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[w]=m(e.substr(0,s)),a[Oe]=m(e.substr(s,2)),a[We]=m(e.substr(n)),h(t).bigHour=!0}),D("Hmm",function(e,a,t){var s=e.length-2;a[w]=m(e.substr(0,s)),a[Oe]=m(e.substr(s))}),D("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[w]=m(e.substr(0,s)),a[Oe]=m(e.substr(s,2)),a[We]=m(e.substr(n))});f=Ye("Hours",!0);var la,Ma={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ne,monthsShort:Je,week:{dow:0,doy:6},weekdays:ta,weekdaysMin:na,weekdaysShort:sa,meridiemParse:/[ap]\.?m?\.?/i},b={},ha={};function ca(e){return e&&e.toLowerCase().replace("_","-")}function La(e){for(var a,t,s,n,r=0;r=a&&function(e,a){for(var t=Math.min(e.length,a.length),s=0;s=a-1)break;a--}r++}return la}function Ya(a){var e;if(void 0===b[a]&&"undefined"!=typeof module&&module&&module.exports&&null!=a.match("^[^/\\\\]*$"))try{e=la._abbr,require("./locale/"+a),ya(e)}catch(e){b[a]=null}return b[a]}function ya(e,a){return e&&((a=d(a)?pa(e):fa(e,a))?la=a:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),la._abbr}function fa(e,a){if(null===a)return delete b[e],null;var t,s=Ma;if(a.abbr=e,null!=b[e])ae("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=b[e]._config;else if(null!=a.parentLocale)if(null!=b[a.parentLocale])s=b[a.parentLocale]._config;else{if(null==(t=Ya(a.parentLocale)))return ha[a.parentLocale]||(ha[a.parentLocale]=[]),ha[a.parentLocale].push({name:e,config:a}),null;s=t._config}return b[e]=new ne(se(s,a)),ha[e]&&ha[e].forEach(function(e){fa(e.name,e.config)}),ya(e),b[e]}function pa(e){var a;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return la;if(!F(e)){if(a=Ya(e))return a;e=[e]}return La(e)}function ka(e){var a=e._a;return a&&-2===h(e).overflow&&(a=a[xe]<0||11ze(a[g],a[xe])?Pe:a[w]<0||24ea(r,_,o)?h(s)._overflowWeeks=!0:null!=m?h(s)._overflowWeekday=!0:(u=Qe(r,d,i,_,o),s._a[g]=u.year,s._dayOfYear=u.dayOfYear)),null!=e._dayOfYear&&(n=Oa(e._a[g],t[g]),(e._dayOfYear>Be(n)||0===e._dayOfYear)&&(h(e)._overflowDayOfYear=!0),m=Ze(n,0,e._dayOfYear),e._a[xe]=m.getUTCMonth(),e._a[Pe]=m.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=l[a]=t[a];for(;a<7;a++)e._a[a]=l[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[w]&&0===e._a[Oe]&&0===e._a[We]&&0===e._a[Ae]&&(e._nextDay=!0,e._a[w]=0),e._d=(e._useUTC?Ze:qe).apply(null,l),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[w]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(h(e).weekdayMismatch=!0)}}function Aa(e){if(e._f===M.ISO_8601)ja(e);else if(e._f===M.RFC_2822)Pa(e);else{e._a=[],h(e).empty=!0;for(var a,t,s,n,r,d=""+e._i,i=d.length,_=0,o=le(e._f,e._locale).match(ie)||[],m=o.length,u=0;ue.valueOf():e.valueOf()"}),n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},n.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},n.eraName=function(){for(var e,a=this.localeData().eras(),t=0,s=a.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},n.isLocal=function(){return!!this.isValid()&&!this._isUTC},n.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},n.isUtc=Ka,n.isUTC=Ka,n.zoneAbbr=function(){return this._isUTC?"UTC":""},n.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},n.dates=e("dates accessor is deprecated. Use date instead.",Y),n.months=e("months accessor is deprecated. Use month instead",Ge),n.years=e("years accessor is deprecated. Use year instead",Ke),n.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,a),this):-this.utcOffset()}),n.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!d(this._isDSTShifted))return this._isDSTShifted;var e,a={};return Z(a,this),(a=Ea(a))._a?(e=(a._isUTC?U:S)(a._a),this._isDSTShifted=this.isValid()&&0>>0,s=0;sAe(e)?(r=e+1,t-Ae(e)):(r=e,t);return{year:r,dayOfYear:n}}function qe(e,t,n){var s,i,r=ze(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+P(i=e.year()-1,t,n):r>P(e.year(),t,n)?(s=r-P(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function P(e,t,n){var s=ze(e,t,n),t=ze(e+1,t,n);return(Ae(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),t("week","w"),t("isoWeek","W"),n("week",5),n("isoWeek",5),v("w",p),v("ww",p,w),v("W",p),v("WW",p,w),Te(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});function Be(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),t("day","d"),t("weekday","e"),t("isoWeekday","E"),n("day",11),n("weekday",11),n("isoWeekday",11),v("d",p),v("e",p),v("E",p),v("dd",function(e,t){return t.weekdaysMinRegex(e)}),v("ddd",function(e,t){return t.weekdaysShortRegex(e)}),v("dddd",function(e,t){return t.weekdaysRegex(e)}),Te(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:m(n).invalidWeekday=e}),Te(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var Je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Qe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=k,et=k,tt=k;function nt(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=M(this.weekdaysMin(s,"")),n=M(this.weekdaysShort(s,"")),s=M(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function st(){return this.hours()%12||12}function it(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function rt(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,st),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),it("a",!0),it("A",!1),t("hour","h"),n("hour",13),v("a",rt),v("A",rt),v("H",p),v("h",p),v("k",p),v("HH",p,w),v("hh",p,w),v("kk",p,w),v("hmm",ge),v("hmmss",we),v("Hmm",ge),v("Hmmss",we),D(["H","HH"],x),D(["k","kk"],function(e,t,n){e=g(e);t[x]=24===e?0:e}),D(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),D(["h","hh"],function(e,t,n){t[x]=g(e),m(n).bigHour=!0}),D("hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s)),m(n).bigHour=!0}),D("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i)),m(n).bigHour=!0}),D("Hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s))}),D("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i))});k=de("Hours",!0);var at,ot={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:Ue,week:{dow:0,doy:6},weekdays:Je,weekdaysMin:Xe,weekdaysShort:Qe,meridiemParse:/[ap]\.?m?\.?/i},R={},ut={};function lt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return at}function dt(t){var e;if(void 0===R[t]&&"undefined"!=typeof module&&module&&module.exports&&null!=t.match("^[^/\\\\]*$"))try{e=at._abbr,require("./locale/"+t),ct(e)}catch(e){R[t]=null}return R[t]}function ct(e,t){return e&&((t=o(t)?mt(e):ft(e,t))?at=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),at._abbr}function ft(e,t){if(null===t)return delete R[e],null;var n,s=ot;if(t.abbr=e,null!=R[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=R[e]._config;else if(null!=t.parentLocale)if(null!=R[t.parentLocale])s=R[t.parentLocale]._config;else{if(null==(n=dt(t.parentLocale)))return ut[t.parentLocale]||(ut[t.parentLocale]=[]),ut[t.parentLocale].push({name:e,config:t}),null;s=n._config}return R[e]=new K(X(s,t)),ut[e]&&ut[e].forEach(function(e){ft(e.name,e.config)}),ct(e),R[e]}function mt(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return at;if(!a(e)){if(t=dt(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===m(e).overflow&&(t=t[O]<0||11We(t[Y],t[O])?b:t[x]<0||24P(r,u,l)?m(s)._overflowWeeks=!0:null!=h?m(s)._overflowWeekday=!0:(d=$e(r,a,o,u,l),s._a[Y]=d.year,s._dayOfYear=d.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[Y],n[Y]),(e._dayOfYear>Ae(i)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),h=Ze(i,0,e._dayOfYear),e._a[O]=h.getUTCMonth(),e._a[b]=h.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[x]&&0===e._a[T]&&0===e._a[N]&&0===e._a[Ne]&&(e._nextDay=!0,e._a[x]=0),e._d=(e._useUTC?Ze:je).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[x]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(m(e).weekdayMismatch=!0)}}function Tt(e){if(e._f===f.ISO_8601)St(e);else if(e._f===f.RFC_2822)Ot(e);else{e._a=[],m(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],h=l.length,d=0;de.valueOf():e.valueOf()"}),i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},i.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},i.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},i.isLocal=function(){return!!this.isValid()&&!this._isUTC},i.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},i.isUtc=At,i.isUTC=At,i.zoneAbbr=function(){return this._isUTC?"UTC":""},i.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},i.dates=e("dates accessor is deprecated. Use date instead.",ke),i.months=e("months accessor is deprecated. Use month instead",Ge),i.years=e("years accessor is deprecated. Use year instead",Ie),i.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),i.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e,t={};return $(t,this),(t=Nt(t))._a?(e=(t._isUTC?l:W)(t._a),this._isDSTShifted=this.isValid()&&0 string); + interface CalendarSpec { + sameDay?: CalendarSpecVal; + nextDay?: CalendarSpecVal; + lastDay?: CalendarSpecVal; + nextWeek?: CalendarSpecVal; + lastWeek?: CalendarSpecVal; + sameElse?: CalendarSpecVal; + + // any additional properties might be used with moment.calendarFormat + [x: string]: CalendarSpecVal | void; // undefined + } + + type RelativeTimeSpecVal = ( + string | + ((n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean) => string) + ); + type RelativeTimeFuturePastVal = string | ((relTime: string) => string); + + interface RelativeTimeSpec { + future?: RelativeTimeFuturePastVal; + past?: RelativeTimeFuturePastVal; + s?: RelativeTimeSpecVal; + ss?: RelativeTimeSpecVal; + m?: RelativeTimeSpecVal; + mm?: RelativeTimeSpecVal; + h?: RelativeTimeSpecVal; + hh?: RelativeTimeSpecVal; + d?: RelativeTimeSpecVal; + dd?: RelativeTimeSpecVal; + w?: RelativeTimeSpecVal + ww?: RelativeTimeSpecVal; + M?: RelativeTimeSpecVal; + MM?: RelativeTimeSpecVal; + y?: RelativeTimeSpecVal; + yy?: RelativeTimeSpecVal; + } + + interface LongDateFormatSpec { + LTS: string; + LT: string; + L: string; + LL: string; + LLL: string; + LLLL: string; + + // lets forget for a sec that any upper/lower permutation will also work + lts?: string; + lt?: string; + l?: string; + ll?: string; + lll?: string; + llll?: string; + } + + type MonthWeekdayFn = (momentToFormat: Moment, format?: string) => string; + type WeekdaySimpleFn = (momentToFormat: Moment) => string; + interface EraSpec { + since: string | number; + until: string | number; + offset: number; + name: string; + narrow: string; + abbr: string; + } + + interface LocaleSpecification { + months?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + monthsShort?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + + weekdays?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + weekdaysShort?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + weekdaysMin?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + + meridiemParse?: RegExp; + meridiem?: (hour: number, minute:number, isLower: boolean) => string; + + isPM?: (input: string) => boolean; + + longDateFormat?: LongDateFormatSpec; + calendar?: CalendarSpec; + relativeTime?: RelativeTimeSpec; + invalidDate?: string; + ordinal?: (n: number) => string; + ordinalParse?: RegExp; + + week?: WeekSpec; + eras?: EraSpec[]; + + // Allow anything: in general any property that is passed as locale spec is + // put in the locale object so it can be used by locale functions + [x: string]: any; + } + + interface MomentObjectOutput { + years: number; + /* One digit */ + months: number; + /* Day of the month */ + date: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; + } + + interface argThresholdOpts { + ss?: number; + s?: number; + m?: number; + h?: number; + d?: number; + w?: number | void; + M?: number; + } + + interface Duration { + clone(): Duration; + + humanize(argWithSuffix?: boolean, argThresholds?: argThresholdOpts): string; + + humanize(argThresholds?: argThresholdOpts): string; + + abs(): Duration; + + as(units: unitOfTime.Base): number; + get(units: unitOfTime.Base): number; + + milliseconds(): number; + asMilliseconds(): number; + + seconds(): number; + asSeconds(): number; + + minutes(): number; + asMinutes(): number; + + hours(): number; + asHours(): number; + + days(): number; + asDays(): number; + + weeks(): number; + asWeeks(): number; + + months(): number; + asMonths(): number; + + years(): number; + asYears(): number; + + add(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + subtract(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + locale(): string; + locale(locale: LocaleSpecifier): Duration; + localeData(): Locale; + + toISOString(): string; + toJSON(): string; + + isValid(): boolean; + + /** + * @deprecated since version 2.8.0 + */ + lang(locale: LocaleSpecifier): Moment; + /** + * @deprecated since version 2.8.0 + */ + lang(): Locale; + /** + * @deprecated + */ + toIsoString(): string; + } + + interface MomentRelativeTime { + future: any; + past: any; + s: any; + ss: any; + m: any; + mm: any; + h: any; + hh: any; + d: any; + dd: any; + M: any; + MM: any; + y: any; + yy: any; + } + + interface MomentLongDateFormat { + L: string; + LL: string; + LLL: string; + LLLL: string; + LT: string; + LTS: string; + + l?: string; + ll?: string; + lll?: string; + llll?: string; + lt?: string; + lts?: string; + } + + interface MomentParsingFlags { + empty: boolean; + unusedTokens: string[]; + unusedInput: string[]; + overflow: number; + charsLeftOver: number; + nullInput: boolean; + invalidMonth: string | void; // null + invalidFormat: boolean; + userInvalidated: boolean; + iso: boolean; + parsedDateParts: any[]; + meridiem: string | void; // null + } + + interface MomentParsingFlagsOpt { + empty?: boolean; + unusedTokens?: string[]; + unusedInput?: string[]; + overflow?: number; + charsLeftOver?: number; + nullInput?: boolean; + invalidMonth?: string; + invalidFormat?: boolean; + userInvalidated?: boolean; + iso?: boolean; + parsedDateParts?: any[]; + meridiem?: string; + } + + interface MomentBuiltinFormat { + __momentBuiltinFormatBrand: any; + } + + type MomentFormatSpecification = string | MomentBuiltinFormat | (string | MomentBuiltinFormat)[]; + + export namespace unitOfTime { + type Base = ( + "year" | "years" | "y" | + "month" | "months" | "M" | + "week" | "weeks" | "w" | + "day" | "days" | "d" | + "hour" | "hours" | "h" | + "minute" | "minutes" | "m" | + "second" | "seconds" | "s" | + "millisecond" | "milliseconds" | "ms" + ); + + type _quarter = "quarter" | "quarters" | "Q"; + type _isoWeek = "isoWeek" | "isoWeeks" | "W"; + type _date = "date" | "dates" | "D"; + type DurationConstructor = Base | _quarter | _isoWeek; + + export type DurationAs = Base; + + export type StartOf = Base | _quarter | _isoWeek | _date | void; // null + + export type Diff = Base | _quarter; + + export type MomentConstructor = Base | _date; + + export type All = Base | _quarter | _isoWeek | _date | + "weekYear" | "weekYears" | "gg" | + "isoWeekYear" | "isoWeekYears" | "GG" | + "dayOfYear" | "dayOfYears" | "DDD" | + "weekday" | "weekdays" | "e" | + "isoWeekday" | "isoWeekdays" | "E"; + } + + type numberlike = number | string; + interface MomentInputObject { + years?: numberlike; + year?: numberlike; + y?: numberlike; + + months?: numberlike; + month?: numberlike; + M?: numberlike; + + days?: numberlike; + day?: numberlike; + d?: numberlike; + + dates?: numberlike; + date?: numberlike; + D?: numberlike; + + hours?: numberlike; + hour?: numberlike; + h?: numberlike; + + minutes?: numberlike; + minute?: numberlike; + m?: numberlike; + + seconds?: numberlike; + second?: numberlike; + s?: numberlike; + + milliseconds?: numberlike; + millisecond?: numberlike; + ms?: numberlike; + } + + interface DurationInputObject extends MomentInputObject { + quarters?: numberlike; + quarter?: numberlike; + Q?: numberlike; + + weeks?: numberlike; + week?: numberlike; + w?: numberlike; + } + + interface MomentSetObject extends MomentInputObject { + weekYears?: numberlike; + weekYear?: numberlike; + gg?: numberlike; + + isoWeekYears?: numberlike; + isoWeekYear?: numberlike; + GG?: numberlike; + + quarters?: numberlike; + quarter?: numberlike; + Q?: numberlike; + + weeks?: numberlike; + week?: numberlike; + w?: numberlike; + + isoWeeks?: numberlike; + isoWeek?: numberlike; + W?: numberlike; + + dayOfYears?: numberlike; + dayOfYear?: numberlike; + DDD?: numberlike; + + weekdays?: numberlike; + weekday?: numberlike; + e?: numberlike; + + isoWeekdays?: numberlike; + isoWeekday?: numberlike; + E?: numberlike; + } + + interface FromTo { + from: MomentInput; + to: MomentInput; + } + + type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + type DurationInputArg1 = Duration | number | string | FromTo | DurationInputObject | void; // null | undefined + type DurationInputArg2 = unitOfTime.DurationConstructor; + type LocaleSpecifier = string | Moment | Duration | string[] | boolean; + + interface MomentCreationData { + input: MomentInput; + format?: MomentFormatSpecification; + locale: Locale; + isUTC: boolean; + strict?: boolean; + } + + interface Moment extends Object { + format(format?: string): string; + + startOf(unitOfTime: unitOfTime.StartOf): Moment; + endOf(unitOfTime: unitOfTime.StartOf): Moment; + + add(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + add(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + subtract(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + subtract(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + calendar(): string; + calendar(formats: CalendarSpec): string; + calendar(time: MomentInput, formats?: CalendarSpec): string; + + clone(): Moment; + + /** + * @return Unix timestamp in milliseconds + */ + valueOf(): number; + + // current date/time in local mode + local(keepLocalTime?: boolean): Moment; + isLocal(): boolean; + + // current date/time in UTC mode + utc(keepLocalTime?: boolean): Moment; + isUTC(): boolean; + /** + * @deprecated use isUTC + */ + isUtc(): boolean; + + parseZone(): Moment; + isValid(): boolean; + invalidAt(): number; + + hasAlignedHourOffset(other?: MomentInput): boolean; + + creationData(): MomentCreationData; + parsingFlags(): MomentParsingFlags; + + year(y: number): Moment; + year(): number; + /** + * @deprecated use year(y) + */ + years(y: number): Moment; + /** + * @deprecated use year() + */ + years(): number; + quarter(): number; + quarter(q: number): Moment; + quarters(): number; + quarters(q: number): Moment; + month(M: number|string): Moment; + month(): number; + /** + * @deprecated use month(M) + */ + months(M: number|string): Moment; + /** + * @deprecated use month() + */ + months(): number; + day(d: number|string): Moment; + day(): number; + days(d: number|string): Moment; + days(): number; + date(d: number): Moment; + date(): number; + /** + * @deprecated use date(d) + */ + dates(d: number): Moment; + /** + * @deprecated use date() + */ + dates(): number; + hour(h: number): Moment; + hour(): number; + hours(h: number): Moment; + hours(): number; + minute(m: number): Moment; + minute(): number; + minutes(m: number): Moment; + minutes(): number; + second(s: number): Moment; + second(): number; + seconds(s: number): Moment; + seconds(): number; + millisecond(ms: number): Moment; + millisecond(): number; + milliseconds(ms: number): Moment; + milliseconds(): number; + weekday(): number; + weekday(d: number): Moment; + isoWeekday(): number; + isoWeekday(d: number|string): Moment; + weekYear(): number; + weekYear(d: number): Moment; + isoWeekYear(): number; + isoWeekYear(d: number): Moment; + week(): number; + week(d: number): Moment; + weeks(): number; + weeks(d: number): Moment; + isoWeek(): number; + isoWeek(d: number): Moment; + isoWeeks(): number; + isoWeeks(d: number): Moment; + weeksInYear(): number; + weeksInWeekYear(): number; + isoWeeksInYear(): number; + isoWeeksInISOWeekYear(): number; + dayOfYear(): number; + dayOfYear(d: number): Moment; + + from(inp: MomentInput, suffix?: boolean): string; + to(inp: MomentInput, suffix?: boolean): string; + fromNow(withoutSuffix?: boolean): string; + toNow(withoutPrefix?: boolean): string; + + diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; + + toArray(): number[]; + toDate(): Date; + toISOString(keepOffset?: boolean): string; + inspect(): string; + toJSON(): string; + unix(): number; + + isLeapYear(): boolean; + /** + * @deprecated in favor of utcOffset + */ + zone(): number; + zone(b: number|string): Moment; + utcOffset(): number; + utcOffset(b: number|string, keepLocalTime?: boolean): Moment; + isUtcOffset(): boolean; + daysInMonth(): number; + isDST(): boolean; + + zoneAbbr(): string; + zoneName(): string; + + isBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSame(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isBetween(a: MomentInput, b: MomentInput, granularity?: unitOfTime.StartOf, inclusivity?: "()" | "[)" | "(]" | "[]"): boolean; + + /** + * @deprecated as of 2.8.0, use locale + */ + lang(language: LocaleSpecifier): Moment; + /** + * @deprecated as of 2.8.0, use locale + */ + lang(): Locale; + + locale(): string; + locale(locale: LocaleSpecifier): Moment; + + localeData(): Locale; + + /** + * @deprecated no reliable implementation + */ + isDSTShifted(): boolean; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + get(unit: unitOfTime.All): number; + set(unit: unitOfTime.All, value: number): Moment; + set(objectLiteral: MomentSetObject): Moment; + + toObject(): MomentObjectOutput; + } + + export var version: string; + export var fn: Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ + export function utc(inp?: MomentInput, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function unix(timestamp: number): Moment; + + export function invalid(flags?: MomentParsingFlagsOpt): Moment; + export function isMoment(m: any): m is Moment; + export function isDate(m: any): m is Date; + export function isDuration(d: any): d is Duration; + + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string): string; + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string, definition?: Locale): string; + + export function locale(language?: string): string; + export function locale(language?: string[]): string; + export function locale(language?: string, definition?: LocaleSpecification | void): string; // null | undefined + + export function localeData(key?: string | string[]): Locale; + + export function duration(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + // NOTE(constructor): Same as moment constructor + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function months(): string[]; + export function months(index: number): string; + export function months(format: string): string[]; + export function months(format: string, index: number): string; + export function monthsShort(): string[]; + export function monthsShort(index: number): string; + export function monthsShort(format: string): string[]; + export function monthsShort(format: string, index: number): string; + + export function weekdays(): string[]; + export function weekdays(index: number): string; + export function weekdays(format: string): string[]; + export function weekdays(format: string, index: number): string; + export function weekdays(localeSorted: boolean): string[]; + export function weekdays(localeSorted: boolean, index: number): string; + export function weekdays(localeSorted: boolean, format: string): string[]; + export function weekdays(localeSorted: boolean, format: string, index: number): string; + export function weekdaysShort(): string[]; + export function weekdaysShort(index: number): string; + export function weekdaysShort(format: string): string[]; + export function weekdaysShort(format: string, index: number): string; + export function weekdaysShort(localeSorted: boolean): string[]; + export function weekdaysShort(localeSorted: boolean, index: number): string; + export function weekdaysShort(localeSorted: boolean, format: string): string[]; + export function weekdaysShort(localeSorted: boolean, format: string, index: number): string; + export function weekdaysMin(): string[]; + export function weekdaysMin(index: number): string; + export function weekdaysMin(format: string): string[]; + export function weekdaysMin(format: string, index: number): string; + export function weekdaysMin(localeSorted: boolean): string[]; + export function weekdaysMin(localeSorted: boolean, index: number): string; + export function weekdaysMin(localeSorted: boolean, format: string): string[]; + export function weekdaysMin(localeSorted: boolean, format: string, index: number): string; + + export function min(moments: Moment[]): Moment; + export function min(...moments: Moment[]): Moment; + export function max(moments: Moment[]): Moment; + export function max(...moments: Moment[]): Moment; + + /** + * Returns unix time in milliseconds. Overwrite for profit. + */ + export function now(): number; + + export function defineLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null + export function updateLocale(language: string, localeSpec: LocaleSpecification | void): Locale; // null + + export function locales(): string[]; + + export function normalizeUnits(unit: unitOfTime.All): string; + export function relativeTimeThreshold(threshold: string): number | boolean; + export function relativeTimeThreshold(threshold: string, limit: number): boolean; + export function relativeTimeRounding(fn: (num: number) => number): boolean; + export function relativeTimeRounding(): (num: number) => number; + export function calendarFormat(m: Moment, now: Moment): string; + + export function parseTwoDigitYear(input: string): number; + + /** + * Constant used to enable explicit ISO_8601 format parsing. + */ + export var ISO_8601: MomentBuiltinFormat; + export var RFC_2822: MomentBuiltinFormat; + + export var defaultFormat: string; + export var defaultFormatUtc: string; + export var suppressDeprecationWarnings: boolean; + export var deprecationHandler: ((name: string | void, msg: string) => void) | void; + + export var HTML5_FMT: { + DATETIME_LOCAL: string, + DATETIME_LOCAL_SECONDS: string, + DATETIME_LOCAL_MS: string, + DATE: string, + TIME: string, + TIME_SECONDS: string, + TIME_MS: string, + WEEK: string, + MONTH: string + }; + +} + +export = moment; diff --git a/node_modules/moment/moment.js b/node_modules/moment/moment.js new file mode 100644 index 0000000..05a63b1 --- /dev/null +++ b/node_modules/moment/moment.js @@ -0,0 +1,5685 @@ +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +;(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, (function () { 'use strict'; + + var hookCallback; + + function hooks() { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback(callback) { + hookCallback = callback; + } + + function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); + } + + function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); + } + + function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + + function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); + } + + function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); + } + + function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }; + + function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); + } + + var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }; + + function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate() { + return this._invalidDate; + } + + var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal(number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }; + + function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); + } + + function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; + } + + function set$1(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + + regexes = {}; + + function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; + } + + function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + + function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; + } + + function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([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 ( + 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; + } + } + } + + // MOMENTS + + function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); + } + + function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } + } + + function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } + } + + function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear() { + return isLeapYear(this.year()); + } + + function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; + } + + function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } + ); + + // HELPERS + + // LOCALES + + function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }; + + function localeFirstDayOfWeek() { + return this._week.dow; + } + + function localeFirstDayOfYear() { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); + } + + var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + + function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; + } + + function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; + } + + function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } + } + + function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } + } + + function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } + } + + function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); + }); + + function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + + function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, + }; + + // internal storage for locale config files + var locales = {}, + localeFamilies = {}, + globalLocale; + + function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; + } + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; + } + + function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + + // date from iso format + function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr + ) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + 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 ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); + } + + function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); + } + + function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +new Date(); + }; + + var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', + ]; + + function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration(obj) { + return obj instanceof Duration; + } + + function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; + } + + // FORMATTING + + function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal() { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset() { + return this.isValid() ? this._isUTC : false; + } + + function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); + + function isString(input) { + return typeof input === 'string' || input instanceof String; + } + + // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined + function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); + } + + function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; + } + + function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; + } + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; + } + + function calendar$1(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); + } + + function clone() { + return new Moment(this); + } + + function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); + } + + function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } + } + + function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); + } + + function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); + } + + function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + '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(); + } else { + return this.locale(key); + } + } + ); + + function localeData() { + return this._locale; + } + + var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + + // actual modulo - handles negative numbers (for dates before 1970): + function mod$1(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; + } + + function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } + } + + function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } + } + + function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod$1(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod$1( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; + } + + function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; + } + + function unix() { + return Math.floor(this.valueOf() / 1000); + } + + function toDate() { + return new Date(this.valueOf()); + } + + function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; + } + + function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; + } + + function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2() { + return isValid(this); + } + + function parsingFlags() { + return extend({}, getParsingFlags(this)); + } + + function invalidAt() { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; + } + + addFormatToken('N', 0, 0, 'eraAbbr'); + addFormatToken('NN', 0, 0, 'eraAbbr'); + addFormatToken('NNN', 0, 0, 'eraAbbr'); + addFormatToken('NNNN', 0, 0, 'eraName'); + addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + + addFormatToken('y', ['y', 1], 'yo', 'eraYear'); + addFormatToken('y', ['yy', 2], 0, 'eraYear'); + addFormatToken('y', ['yyy', 3], 0, 'eraYear'); + addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + + addRegexToken('N', matchEraAbbr); + addRegexToken('NN', matchEraAbbr); + addRegexToken('NNN', matchEraAbbr); + addRegexToken('NNNN', matchEraName); + addRegexToken('NNNNN', matchEraNarrow); + + addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } + ); + + addRegexToken('y', matchUnsigned); + addRegexToken('yy', matchUnsigned); + addRegexToken('yyy', matchUnsigned); + addRegexToken('yyyy', matchUnsigned); + addRegexToken('yo', matchEraYearOrdinal); + + addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); + addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } + }); + + function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = hooks(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = hooks(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; + } + + function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } + } + + function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return hooks(era.since).year(); + } else { + return hooks(era.since).year() + (year - era.offset) * dir; + } + } + + function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; + } + + function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; + } + + function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; + } + + function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - hooks(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); + } + + function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; + } + + function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; + } + + function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; + } + + function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); + } + + function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); + } + + function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); + } + + function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; + } + + function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } + ); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); + } + + function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); + } + + function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); + } + + function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); + } + + function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token, getSetMillisecond; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + + getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; + } + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.eraName = getEraName; + proto.eraNarrow = getEraNarrow; + proto.eraAbbr = getEraAbbr; + proto.eraYear = getEraYear; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.weeksInWeekYear = getWeeksInWeekYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth + ); + proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth + ); + proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear + ); + proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone + ); + proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted + ); + + function createUnix(input) { + return createLocal(input * 1000); + } + + function createInZone() { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat(string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + proto$1.eras = localeEras; + proto$1.erasParse = localeErasParse; + proto$1.erasConvertYear = localeErasConvertYear; + proto$1.erasAbbrRegex = erasAbbrRegex; + proto$1.erasNameRegex = erasNameRegex; + proto$1.erasNarrowRegex = erasNarrowRegex; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + }); + + // Side effect imports + + hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale + ); + hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale + ); + + var mathAbs = Math.abs; + + function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1(input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1(input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; + } + + function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; + } + + function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs(alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + + function clone$1() { + return createDuration(this); + } + + function get$2(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + + function weeks() { + return absFloor(this.days() / 7); + } + + var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime$1(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return (x > 0) - (x < 0) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000, + days = abs$1(this._days), + months = abs$1(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asQuarters = asQuarters; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString$1 + ); + proto$2.lang = lang; + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + //! moment.js + + hooks.version = '2.29.4'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // + }; + + return hooks; + +}))); diff --git a/node_modules/moment/package.js b/node_modules/moment/package.js new file mode 100644 index 0000000..aba8d50 --- /dev/null +++ b/node_modules/moment/package.js @@ -0,0 +1,11 @@ +var profile = { + resourceTags: { + ignore: function(filename, mid){ + // only include moment/moment + return mid != "moment/moment"; + }, + amd: function(filename, mid){ + return /\.js$/.test(filename); + } + } +}; diff --git a/node_modules/moment/package.json b/node_modules/moment/package.json new file mode 100644 index 0000000..6c1205c --- /dev/null +++ b/node_modules/moment/package.json @@ -0,0 +1,112 @@ +{ + "name": "moment", + "version": "2.29.4", + "description": "Parse, validate, manipulate, and display dates", + "homepage": "https://momentjs.com", + "author": "Iskren Ivov Chernev (https://github.com/ichernev)", + "contributors": [ + "Tim Wood (http://timwoodcreates.com/)", + "Rocky Meza (http://rockymeza.com)", + "Matt Johnson (http://codeofmatt.com)", + "Isaac Cambron (http://isaaccambron.com)", + "Andre Polykanine (https://github.com/oire)" + ], + "keywords": [ + "moment", + "date", + "time", + "parse", + "format", + "validate", + "i18n", + "l10n", + "ender" + ], + "main": "./moment.js", + "jsnext:main": "./dist/moment.js", + "typings": "./moment.d.ts", + "typesVersions": { + ">=3.1": { + "*": [ + "ts3.1-typings/*" + ] + } + }, + "engines": { + "node": "*" + }, + "repository": { + "type": "git", + "url": "https://github.com/moment/moment.git" + }, + "bugs": { + "url": "https://github.com/moment/moment/issues" + }, + "license": "MIT", + "devDependencies": { + "benchmark": "latest", + "coveralls": "latest", + "cross-env": "^6.0.3", + "es6-promise": "latest", + "eslint": "~6", + "grunt": "latest", + "grunt-benchmark": "latest", + "grunt-cli": "latest", + "grunt-contrib-clean": "latest", + "grunt-contrib-concat": "latest", + "grunt-contrib-copy": "latest", + "grunt-contrib-uglify": "latest", + "grunt-contrib-watch": "latest", + "grunt-env": "latest", + "grunt-exec": "latest", + "grunt-karma": "latest", + "grunt-nuget": "latest", + "grunt-string-replace": "latest", + "karma": "latest", + "karma-chrome-launcher": "latest", + "karma-firefox-launcher": "latest", + "karma-qunit": "latest", + "karma-sauce-launcher": "4.1.4", + "load-grunt-tasks": "latest", + "lodash": ">=4.17.19", + "node-qunit": "latest", + "nyc": "latest", + "prettier": "latest", + "qunit": "^2.10.0", + "rollup": "2.17.1", + "typescript": "^1.8.10", + "typescript3": "npm:typescript@^3.1.6", + "uglify-js": "latest" + }, + "ender": "./ender.js", + "dojoBuild": "package.js", + "jspm": { + "files": [ + "moment.js", + "moment.d.ts", + "locale" + ], + "map": { + "moment": "./moment" + }, + "buildConfig": { + "uglify": true + } + }, + "scripts": { + "ts3.1-typescript-test": "cross-env node_modules/typescript3/bin/tsc --project ts3.1-typing-tests", + "typescript-test": "cross-env node_modules/typescript/bin/tsc --project typing-tests", + "test": "grunt test", + "eslint": "eslint Gruntfile.js tasks src", + "prettier-check": "prettier --check Gruntfile.js tasks src", + "prettier-fmt": "prettier --write Gruntfile.js tasks src", + "coverage": "nyc npm test && nyc report", + "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls" + }, + "spm": { + "main": "moment.js", + "output": [ + "locale/*.js" + ] + } +} diff --git a/node_modules/moment/src/lib/create/check-overflow.js b/node_modules/moment/src/lib/create/check-overflow.js new file mode 100644 index 0000000..9cb0fba --- /dev/null +++ b/node_modules/moment/src/lib/create/check-overflow.js @@ -0,0 +1,57 @@ +import { daysInMonth } from '../units/month'; +import { + YEAR, + MONTH, + DATE, + HOUR, + MINUTE, + SECOND, + MILLISECOND, + WEEK, + WEEKDAY, +} from '../units/constants'; +import getParsingFlags from '../create/parsing-flags'; + +export default function checkOverflow(m) { + var overflow, + a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 + ? MONTH + : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) + ? DATE + : a[HOUR] < 0 || + a[HOUR] > 24 || + (a[HOUR] === 24 && + (a[MINUTE] !== 0 || + a[SECOND] !== 0 || + a[MILLISECOND] !== 0)) + ? HOUR + : a[MINUTE] < 0 || a[MINUTE] > 59 + ? MINUTE + : a[SECOND] < 0 || a[SECOND] > 59 + ? SECOND + : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 + ? MILLISECOND + : -1; + + if ( + getParsingFlags(m)._overflowDayOfYear && + (overflow < YEAR || overflow > DATE) + ) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; +} diff --git a/node_modules/moment/src/lib/create/date-from-array.js b/node_modules/moment/src/lib/create/date-from-array.js new file mode 100644 index 0000000..3d3498d --- /dev/null +++ b/node_modules/moment/src/lib/create/date-from-array.js @@ -0,0 +1,35 @@ +export function createDate(y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date; + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + date = new Date(y + 400, m, d, h, M, s, ms); + if (isFinite(date.getFullYear())) { + date.setFullYear(y); + } + } else { + date = new Date(y, m, d, h, M, s, ms); + } + + return date; +} + +export function createUTCDate(y) { + var date, args; + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + args = Array.prototype.slice.call(arguments); + // preserve leap years using a full 400 year cycle, then reset + args[0] = y + 400; + date = new Date(Date.UTC.apply(null, args)); + if (isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + } else { + date = new Date(Date.UTC.apply(null, arguments)); + } + + return date; +} diff --git a/node_modules/moment/src/lib/create/from-anything.js b/node_modules/moment/src/lib/create/from-anything.js new file mode 100644 index 0000000..0c5d772 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-anything.js @@ -0,0 +1,117 @@ +import isArray from '../utils/is-array'; +import isObject from '../utils/is-object'; +import isObjectEmpty from '../utils/is-object-empty'; +import isUndefined from '../utils/is-undefined'; +import isNumber from '../utils/is-number'; +import isDate from '../utils/is-date'; +import map from '../utils/map'; +import { createInvalid } from './valid'; +import { Moment, isMoment } from '../moment/constructor'; +import { getLocale } from '../locale/locales'; +import { hooks } from '../utils/hooks'; +import checkOverflow from './check-overflow'; +import { isValid } from './valid'; + +import { configFromStringAndArray } from './from-string-and-array'; +import { configFromStringAndFormat } from './from-string-and-format'; +import { configFromString } from './from-string'; +import { configFromArray } from './from-array'; +import { configFromObject } from './from-object'; + +function createFromConfig(config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; +} + +export function prepareConfig(config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({ nullInput: true }); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; +} + +function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } +} + +export function createLocalOrUTC(input, format, locale, strict, isUTC) { + var c = {}; + + if (format === true || format === false) { + strict = format; + format = undefined; + } + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ( + (isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0) + ) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); +} diff --git a/node_modules/moment/src/lib/create/from-array.js b/node_modules/moment/src/lib/create/from-array.js new file mode 100644 index 0000000..610d802 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-array.js @@ -0,0 +1,187 @@ +import { hooks } from '../utils/hooks'; +import { createDate, createUTCDate } from './date-from-array'; +import { daysInYear } from '../units/year'; +import { + weekOfYear, + weeksInYear, + dayOfYearFromWeeks, +} from '../units/week-calendar-utils'; +import { + YEAR, + MONTH, + DATE, + HOUR, + MINUTE, + SECOND, + MILLISECOND, +} from '../units/constants'; +import { createLocal } from './local'; +import defaults from '../utils/defaults'; +import getParsingFlags from './parsing-flags'; + +function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [ + nowValue.getUTCFullYear(), + nowValue.getUTCMonth(), + nowValue.getUTCDate(), + ]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; +} + +// convert an array to a date. +// the array should mirror the parameters below +// note: all values past the year are optional and will default to the lowest possible value. +// [year, month, day , hour, minute, second, millisecond] +export function configFromArray(config) { + var i, + date, + input = [], + currentDate, + expectedWeekday, + yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if ( + config._dayOfYear > daysInYear(yearToUse) || + config._dayOfYear === 0 + ) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + 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 ? createUTCDate : createDate).apply( + null, + input + ); + expectedWeekday = config._useUTC + ? config._d.getUTCDay() + : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if ( + config._w && + typeof config._w.d !== 'undefined' && + config._w.d !== expectedWeekday + ) { + getParsingFlags(config).weekdayMismatch = true; + } +} + +function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults( + w.GG, + config._a[YEAR], + weekOfYear(createLocal(), 1, 4).year + ); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from beginning of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to beginning of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } +} diff --git a/node_modules/moment/src/lib/create/from-object.js b/node_modules/moment/src/lib/create/from-object.js new file mode 100644 index 0000000..55d15c7 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-object.js @@ -0,0 +1,20 @@ +import { normalizeObjectUnits } from '../units/aliases'; +import { configFromArray } from './from-array'; +import map from '../utils/map'; + +export function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i), + dayOrDate = i.day === undefined ? i.date : i.day; + config._a = map( + [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], + function (obj) { + return obj && parseInt(obj, 10); + } + ); + + configFromArray(config); +} diff --git a/node_modules/moment/src/lib/create/from-string-and-array.js b/node_modules/moment/src/lib/create/from-string-and-array.js new file mode 100644 index 0000000..4e64167 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string-and-array.js @@ -0,0 +1,67 @@ +import { copyConfig } from '../moment/constructor'; +import { configFromStringAndFormat } from './from-string-and-format'; +import getParsingFlags from './parsing-flags'; +import { isValid } from './valid'; +import extend from '../utils/extend'; + +// date from string and array of format strings +export function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + scoreToBeat, + i, + currentScore, + validFormatFound, + bestFormatIsValid = false, + configfLen = config._f.length; + + if (configfLen === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < configfLen; i++) { + currentScore = 0; + validFormatFound = false; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (isValid(tempConfig)) { + validFormatFound = true; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (!bestFormatIsValid) { + if ( + scoreToBeat == null || + currentScore < scoreToBeat || + validFormatFound + ) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + if (validFormatFound) { + bestFormatIsValid = true; + } + } + } else { + if (currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + } + + extend(config, bestMoment || tempConfig); +} diff --git a/node_modules/moment/src/lib/create/from-string-and-format.js b/node_modules/moment/src/lib/create/from-string-and-format.js new file mode 100644 index 0000000..82d60d5 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string-and-format.js @@ -0,0 +1,135 @@ +import { configFromISO, configFromRFC2822 } from './from-string'; +import { configFromArray } from './from-array'; +import { getParseRegexForToken } from '../parse/regex'; +import { addTimeToArrayFromToken } from '../parse/token'; +import { + expandFormat, + formatTokenFunctions, + formattingTokens, +} from '../format/format'; +import checkOverflow from './check-overflow'; +import { YEAR, HOUR } from '../units/constants'; +import { hooks } from '../utils/hooks'; +import getParsingFlags from './parsing-flags'; + +// constant that refers to the ISO standard +hooks.ISO_8601 = function () {}; + +// constant that refers to the RFC 2822 form +hooks.RFC_2822 = function () {}; + +// date from string and format string +export function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, + parsedInput, + tokens, + token, + skipped, + stringLength = string.length, + totalParsedInputLength = 0, + era, + tokenLen; + + tokens = + expandFormat(config._f, config._locale).match(formattingTokens) || []; + tokenLen = tokens.length; + for (i = 0; i < tokenLen; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || + [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice( + string.indexOf(parsedInput) + parsedInput.length + ); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = + stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if ( + config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0 + ) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap( + config._locale, + config._a[HOUR], + config._meridiem + ); + + // handle era + era = getParsingFlags(config).era; + if (era !== null) { + config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); + } + + configFromArray(config); + checkOverflow(config); +} + +function meridiemFixWrap(locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } +} diff --git a/node_modules/moment/src/lib/create/from-string.js b/node_modules/moment/src/lib/create/from-string.js new file mode 100644 index 0000000..58739b9 --- /dev/null +++ b/node_modules/moment/src/lib/create/from-string.js @@ -0,0 +1,258 @@ +import { configFromStringAndFormat } from './from-string-and-format'; +import { createUTCDate } from './date-from-array'; +import { hooks } from '../utils/hooks'; +import { deprecate } from '../utils/deprecate'; +import getParsingFlags from './parsing-flags'; +import { defaultLocaleMonthsShort } from '../units/month'; +import { defaultLocaleWeekdaysShort } from '../units/day-of-week'; + +// iso 8601 regex +// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) +var extendedIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + basicIsoRegex = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, + isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/], + ['YYYYMM', /\d{6}/, false], + ['YYYY', /\d{4}/, false], + ], + // iso time formats and regexes + isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/], + ], + aspNetJsonRegex = /^\/?Date\((-?\d+)/i, + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + rfc2822 = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60, + }; + +// date from iso format +export function configFromISO(config) { + var i, + l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, + dateFormat, + timeFormat, + tzFormat, + isoDatesLen = isoDates.length, + isoTimesLen = isoTimes.length; + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDatesLen; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimesLen; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } +} + +function extractFromRFC2822Strings( + yearStr, + monthStr, + dayStr, + hourStr, + minuteStr, + secondStr +) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10), + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; +} + +function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; +} + +function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s + .replace(/\([^()]*\)|[\n\t]/g, ' ') + .replace(/(\s\s+)/g, ' ') + .replace(/^\s\s*/, '') + .replace(/\s\s*$/, ''); +} + +function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an independent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date( + parsedInput[0], + parsedInput[1], + parsedInput[2] + ).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; +} + +function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10), + m = hm % 100, + h = (hm - m) / 100; + return h * 60 + m; + } +} + +// date and time from ref 2822 format +export function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)), + parsedArray; + if (match) { + parsedArray = extractFromRFC2822Strings( + match[4], + match[3], + match[2], + match[5], + match[6], + match[7] + ); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } +} + +// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict +export function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + if (config._strict) { + config._isValid = false; + } else { + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } +} + +hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } +); diff --git a/node_modules/moment/src/lib/create/local.js b/node_modules/moment/src/lib/create/local.js new file mode 100644 index 0000000..732ea39 --- /dev/null +++ b/node_modules/moment/src/lib/create/local.js @@ -0,0 +1,5 @@ +import { createLocalOrUTC } from './from-anything'; + +export function createLocal(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); +} diff --git a/node_modules/moment/src/lib/create/parsing-flags.js b/node_modules/moment/src/lib/create/parsing-flags.js new file mode 100644 index 0000000..65a377d --- /dev/null +++ b/node_modules/moment/src/lib/create/parsing-flags.js @@ -0,0 +1,28 @@ +function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty: false, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: false, + invalidEra: null, + invalidMonth: null, + invalidFormat: false, + userInvalidated: false, + iso: false, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: false, + weekdayMismatch: false, + }; +} + +export default function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; +} diff --git a/node_modules/moment/src/lib/create/utc.js b/node_modules/moment/src/lib/create/utc.js new file mode 100644 index 0000000..6081f07 --- /dev/null +++ b/node_modules/moment/src/lib/create/utc.js @@ -0,0 +1,5 @@ +import { createLocalOrUTC } from './from-anything'; + +export function createUTC(input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); +} diff --git a/node_modules/moment/src/lib/create/valid.js b/node_modules/moment/src/lib/create/valid.js new file mode 100644 index 0000000..b25c7d1 --- /dev/null +++ b/node_modules/moment/src/lib/create/valid.js @@ -0,0 +1,51 @@ +import extend from '../utils/extend'; +import { createUTC } from './utc'; +import getParsingFlags from '../create/parsing-flags'; +import some from '../utils/some'; + +export function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m), + parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }), + isNowValid = + !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidEra && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = + isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } else { + return isNowValid; + } + } + return m._isValid; +} + +export function createInvalid(flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } else { + getParsingFlags(m).userInvalidated = true; + } + + return m; +} diff --git a/node_modules/moment/src/lib/duration/abs.js b/node_modules/moment/src/lib/duration/abs.js new file mode 100644 index 0000000..d61ebe6 --- /dev/null +++ b/node_modules/moment/src/lib/duration/abs.js @@ -0,0 +1,18 @@ +var mathAbs = Math.abs; + +export function abs() { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; +} diff --git a/node_modules/moment/src/lib/duration/add-subtract.js b/node_modules/moment/src/lib/duration/add-subtract.js new file mode 100644 index 0000000..3755a7d --- /dev/null +++ b/node_modules/moment/src/lib/duration/add-subtract.js @@ -0,0 +1,21 @@ +import { createDuration } from './create'; + +function addSubtract(duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); +} + +// supports only 2.0-style add(1, 's') or add(duration) +export function add(input, value) { + return addSubtract(this, input, value, 1); +} + +// supports only 2.0-style subtract(1, 's') or subtract(duration) +export function subtract(input, value) { + return addSubtract(this, input, value, -1); +} diff --git a/node_modules/moment/src/lib/duration/as.js b/node_modules/moment/src/lib/duration/as.js new file mode 100644 index 0000000..ff9e67b --- /dev/null +++ b/node_modules/moment/src/lib/duration/as.js @@ -0,0 +1,88 @@ +import { daysToMonths, monthsToDays } from './bubble'; +import { normalizeUnits } from '../units/aliases'; +import toInt from '../utils/to-int'; + +export function as(units) { + if (!this.isValid()) { + return NaN; + } + var days, + months, + milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'quarter' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + switch (units) { + case 'month': + return months; + case 'quarter': + return months / 3; + case 'year': + return months / 12; + } + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week': + return days / 7 + milliseconds / 6048e5; + case 'day': + return days + milliseconds / 864e5; + case 'hour': + return days * 24 + milliseconds / 36e5; + case 'minute': + return days * 1440 + milliseconds / 6e4; + case 'second': + return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': + return Math.floor(days * 864e5) + milliseconds; + default: + throw new Error('Unknown unit ' + units); + } + } +} + +// TODO: Use this.as('ms')? +export function valueOf() { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); +} + +function makeAs(alias) { + return function () { + return this.as(alias); + }; +} + +var asMilliseconds = makeAs('ms'), + asSeconds = makeAs('s'), + asMinutes = makeAs('m'), + asHours = makeAs('h'), + asDays = makeAs('d'), + asWeeks = makeAs('w'), + asMonths = makeAs('M'), + asQuarters = makeAs('Q'), + asYears = makeAs('y'); + +export { + asMilliseconds, + asSeconds, + asMinutes, + asHours, + asDays, + asWeeks, + asMonths, + asQuarters, + asYears, +}; diff --git a/node_modules/moment/src/lib/duration/bubble.js b/node_modules/moment/src/lib/duration/bubble.js new file mode 100644 index 0000000..c7822e3 --- /dev/null +++ b/node_modules/moment/src/lib/duration/bubble.js @@ -0,0 +1,68 @@ +import absFloor from '../utils/abs-floor'; +import absCeil from '../utils/abs-ceil'; + +export function bubble() { + var milliseconds = this._milliseconds, + days = this._days, + months = this._months, + data = this._data, + seconds, + minutes, + hours, + years, + monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if ( + !( + (milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0) + ) + ) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; +} + +export function daysToMonths(days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return (days * 4800) / 146097; +} + +export function monthsToDays(months) { + // the reverse of daysToMonths + return (months * 146097) / 4800; +} diff --git a/node_modules/moment/src/lib/duration/clone.js b/node_modules/moment/src/lib/duration/clone.js new file mode 100644 index 0000000..8978dfe --- /dev/null +++ b/node_modules/moment/src/lib/duration/clone.js @@ -0,0 +1,5 @@ +import { createDuration } from './create'; + +export function clone() { + return createDuration(this); +} diff --git a/node_modules/moment/src/lib/duration/constructor.js b/node_modules/moment/src/lib/duration/constructor.js new file mode 100644 index 0000000..6033769 --- /dev/null +++ b/node_modules/moment/src/lib/duration/constructor.js @@ -0,0 +1,42 @@ +import { normalizeObjectUnits } from '../units/aliases'; +import { getLocale } from '../locale/locales'; +import isDurationValid from './valid.js'; + +export function Duration(duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || normalizedInput.isoWeek || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = + +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + quarters * 3 + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); +} + +export function isDuration(obj) { + return obj instanceof Duration; +} diff --git a/node_modules/moment/src/lib/duration/create.js b/node_modules/moment/src/lib/duration/create.js new file mode 100644 index 0000000..a82c376 --- /dev/null +++ b/node_modules/moment/src/lib/duration/create.js @@ -0,0 +1,133 @@ +import { Duration, isDuration } from './constructor'; +import isNumber from '../utils/is-number'; +import toInt from '../utils/to-int'; +import absRound from '../utils/abs-round'; +import hasOwnProp from '../utils/has-own-prop'; +import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants'; +import { cloneWithOffset } from '../units/offset'; +import { createLocal } from '../create/local'; +import { createInvalid as invalid } from './valid'; + +// ASP.NET json date format regex +var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + isoRegex = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + +export function createDuration(input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms: input._milliseconds, + d: input._days, + M: input._months, + }; + } else if (isNumber(input) || !isNaN(+input)) { + duration = {}; + if (key) { + duration[key] = +input; + } else { + duration.milliseconds = +input; + } + } else if ((match = aspNetRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: 0, + d: toInt(match[DATE]) * sign, + h: toInt(match[HOUR]) * sign, + m: toInt(match[MINUTE]) * sign, + s: toInt(match[SECOND]) * sign, + ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match + }; + } else if ((match = isoRegex.exec(input))) { + sign = match[1] === '-' ? -1 : 1; + duration = { + y: parseIso(match[2], sign), + M: parseIso(match[3], sign), + w: parseIso(match[4], sign), + d: parseIso(match[5], sign), + h: parseIso(match[6], sign), + m: parseIso(match[7], sign), + s: parseIso(match[8], sign), + }; + } else if (duration == null) { + // checks for null or undefined + duration = {}; + } else if ( + typeof duration === 'object' && + ('from' in duration || 'to' in duration) + ) { + diffRes = momentsDifference( + createLocal(duration.from), + createLocal(duration.to) + ); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + if (isDuration(input) && hasOwnProp(input, '_isValid')) { + ret._isValid = input._isValid; + } + + return ret; +} + +createDuration.fn = Duration.prototype; +createDuration.invalid = invalid; + +function parseIso(inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; +} + +function positiveMomentsDifference(base, other) { + var res = {}; + + res.months = + other.month() - base.month() + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +base.clone().add(res.months, 'M'); + + return res; +} + +function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return { milliseconds: 0, months: 0 }; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; +} diff --git a/node_modules/moment/src/lib/duration/duration.js b/node_modules/moment/src/lib/duration/duration.js new file mode 100644 index 0000000..10f03a7 --- /dev/null +++ b/node_modules/moment/src/lib/duration/duration.js @@ -0,0 +1,16 @@ +// Side effect imports +import './prototype'; + +import { createDuration } from './create'; +import { isDuration } from './constructor'; +import { + getSetRelativeTimeRounding, + getSetRelativeTimeThreshold, +} from './humanize'; + +export { + createDuration, + isDuration, + getSetRelativeTimeRounding, + getSetRelativeTimeThreshold, +}; diff --git a/node_modules/moment/src/lib/duration/get.js b/node_modules/moment/src/lib/duration/get.js new file mode 100644 index 0000000..99533d7 --- /dev/null +++ b/node_modules/moment/src/lib/duration/get.js @@ -0,0 +1,27 @@ +import { normalizeUnits } from '../units/aliases'; +import absFloor from '../utils/abs-floor'; + +export function get(units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; +} + +function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; +} + +var milliseconds = makeGetter('milliseconds'), + seconds = makeGetter('seconds'), + minutes = makeGetter('minutes'), + hours = makeGetter('hours'), + days = makeGetter('days'), + months = makeGetter('months'), + years = makeGetter('years'); + +export { milliseconds, seconds, minutes, hours, days, months, years }; + +export function weeks() { + return absFloor(this.days() / 7); +} diff --git a/node_modules/moment/src/lib/duration/humanize.js b/node_modules/moment/src/lib/duration/humanize.js new file mode 100644 index 0000000..74079cd --- /dev/null +++ b/node_modules/moment/src/lib/duration/humanize.js @@ -0,0 +1,114 @@ +import { createDuration } from './create'; + +var round = Math.round, + thresholds = { + ss: 44, // a few seconds to seconds + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month/week + w: null, // weeks to month + M: 11, // months to year + }; + +// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize +function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); +} + +function relativeTime(posNegDuration, withoutSuffix, thresholds, locale) { + var duration = createDuration(posNegDuration).abs(), + seconds = round(duration.as('s')), + minutes = round(duration.as('m')), + hours = round(duration.as('h')), + days = round(duration.as('d')), + months = round(duration.as('M')), + weeks = round(duration.as('w')), + years = round(duration.as('y')), + a = + (seconds <= thresholds.ss && ['s', seconds]) || + (seconds < thresholds.s && ['ss', seconds]) || + (minutes <= 1 && ['m']) || + (minutes < thresholds.m && ['mm', minutes]) || + (hours <= 1 && ['h']) || + (hours < thresholds.h && ['hh', hours]) || + (days <= 1 && ['d']) || + (days < thresholds.d && ['dd', days]); + + if (thresholds.w != null) { + a = + a || + (weeks <= 1 && ['w']) || + (weeks < thresholds.w && ['ww', weeks]); + } + a = a || + (months <= 1 && ['M']) || + (months < thresholds.M && ['MM', months]) || + (years <= 1 && ['y']) || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); +} + +// This function allows you to set the rounding function for relative time strings +export function getSetRelativeTimeRounding(roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof roundingFunction === 'function') { + round = roundingFunction; + return true; + } + return false; +} + +// This function allows you to set a threshold for relative time strings +export function getSetRelativeTimeThreshold(threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; +} + +export function humanize(argWithSuffix, argThresholds) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var withSuffix = false, + th = thresholds, + locale, + output; + + if (typeof argWithSuffix === 'object') { + argThresholds = argWithSuffix; + argWithSuffix = false; + } + if (typeof argWithSuffix === 'boolean') { + withSuffix = argWithSuffix; + } + if (typeof argThresholds === 'object') { + th = Object.assign({}, thresholds, argThresholds); + if (argThresholds.s != null && argThresholds.ss == null) { + th.ss = argThresholds.s - 1; + } + } + + locale = this.localeData(); + output = relativeTime(this, !withSuffix, th, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); +} diff --git a/node_modules/moment/src/lib/duration/iso-string.js b/node_modules/moment/src/lib/duration/iso-string.js new file mode 100644 index 0000000..5fd2166 --- /dev/null +++ b/node_modules/moment/src/lib/duration/iso-string.js @@ -0,0 +1,68 @@ +import absFloor from '../utils/abs-floor'; +var abs = Math.abs; + +function sign(x) { + return (x > 0) - (x < 0) || +x; +} + +export function toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs(this._milliseconds) / 1000, + days = abs(this._days), + months = abs(this._months), + minutes, + hours, + years, + s, + total = this.asSeconds(), + totalSign, + ymSign, + daysSign, + hmsSign; + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + + totalSign = total < 0 ? '-' : ''; + ymSign = sign(this._months) !== sign(total) ? '-' : ''; + daysSign = sign(this._days) !== sign(total) ? '-' : ''; + hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return ( + totalSign + + 'P' + + (years ? ymSign + years + 'Y' : '') + + (months ? ymSign + months + 'M' : '') + + (days ? daysSign + days + 'D' : '') + + (hours || minutes || seconds ? 'T' : '') + + (hours ? hmsSign + hours + 'H' : '') + + (minutes ? hmsSign + minutes + 'M' : '') + + (seconds ? hmsSign + s + 'S' : '') + ); +} diff --git a/node_modules/moment/src/lib/duration/prototype.js b/node_modules/moment/src/lib/duration/prototype.js new file mode 100644 index 0000000..3f24b4a --- /dev/null +++ b/node_modules/moment/src/lib/duration/prototype.js @@ -0,0 +1,78 @@ +import { Duration } from './constructor'; + +var proto = Duration.prototype; + +import { abs } from './abs'; +import { add, subtract } from './add-subtract'; +import { + as, + asMilliseconds, + asSeconds, + asMinutes, + asHours, + asDays, + asWeeks, + asMonths, + asQuarters, + asYears, + valueOf, +} from './as'; +import { bubble } from './bubble'; +import { clone } from './clone'; +import { + get, + milliseconds, + seconds, + minutes, + hours, + days, + months, + years, + weeks, +} from './get'; +import { humanize } from './humanize'; +import { toISOString } from './iso-string'; +import { lang, locale, localeData } from '../moment/locale'; +import { isValid } from './valid'; + +proto.isValid = isValid; +proto.abs = abs; +proto.add = add; +proto.subtract = subtract; +proto.as = as; +proto.asMilliseconds = asMilliseconds; +proto.asSeconds = asSeconds; +proto.asMinutes = asMinutes; +proto.asHours = asHours; +proto.asDays = asDays; +proto.asWeeks = asWeeks; +proto.asMonths = asMonths; +proto.asQuarters = asQuarters; +proto.asYears = asYears; +proto.valueOf = valueOf; +proto._bubble = bubble; +proto.clone = clone; +proto.get = get; +proto.milliseconds = milliseconds; +proto.seconds = seconds; +proto.minutes = minutes; +proto.hours = hours; +proto.days = days; +proto.weeks = weeks; +proto.months = months; +proto.years = years; +proto.humanize = humanize; +proto.toISOString = toISOString; +proto.toString = toISOString; +proto.toJSON = toISOString; +proto.locale = locale; +proto.localeData = localeData; + +// Deprecations +import { deprecate } from '../utils/deprecate'; + +proto.toIsoString = deprecate( + 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', + toISOString +); +proto.lang = lang; diff --git a/node_modules/moment/src/lib/duration/valid.js b/node_modules/moment/src/lib/duration/valid.js new file mode 100644 index 0000000..88ef7a9 --- /dev/null +++ b/node_modules/moment/src/lib/duration/valid.js @@ -0,0 +1,55 @@ +import hasOwnProp from '../utils/has-own-prop'; +import toInt from '../utils/to-int'; +import indexOf from '../utils/index-of'; +import { createDuration } from './create'; + +var ordering = [ + 'year', + 'quarter', + 'month', + 'week', + 'day', + 'hour', + 'minute', + 'second', + 'millisecond', +]; + +export default function isDurationValid(m) { + var key, + unitHasDecimal = false, + i, + orderLen = ordering.length; + for (key in m) { + if ( + hasOwnProp(m, key) && + !( + indexOf.call(ordering, key) !== -1 && + (m[key] == null || !isNaN(m[key])) + ) + ) { + return false; + } + } + + for (i = 0; i < orderLen; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; +} + +export function isValid() { + return this._isValid; +} + +export function createInvalid() { + return createDuration(NaN); +} diff --git a/node_modules/moment/src/lib/format/format.js b/node_modules/moment/src/lib/format/format.js new file mode 100644 index 0000000..7abe260 --- /dev/null +++ b/node_modules/moment/src/lib/format/format.js @@ -0,0 +1,104 @@ +import zeroFill from '../utils/zero-fill'; +import isFunction from '../utils/is-function'; + +var formattingTokens = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + formatFunctions = {}, + formatTokenFunctions = {}; + +export { formattingTokens, formatTokenFunctions }; + +// token: 'M' +// padded: ['MM', 2] +// ordinal: 'Mo' +// callback: function () { this.month() + 1 } +export function addFormatToken(token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal( + func.apply(this, arguments), + token + ); + }; + } +} + +function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); +} + +function makeFormatFunction(format) { + var array = format.match(formattingTokens), + i, + length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', + i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) + ? array[i].call(mom, format) + : array[i]; + } + return output; + }; +} + +// format date using native date object +export function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = + formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); +} + +export function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace( + localFormattingTokens, + replaceLongDateFormatTokens + ); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; +} diff --git a/node_modules/moment/src/lib/locale/base-config.js b/node_modules/moment/src/lib/locale/base-config.js new file mode 100644 index 0000000..5f8c403 --- /dev/null +++ b/node_modules/moment/src/lib/locale/base-config.js @@ -0,0 +1,41 @@ +import { defaultCalendar } from './calendar'; +import { defaultLongDateFormat } from './formats'; +import { defaultInvalidDate } from './invalid'; +import { defaultOrdinal, defaultDayOfMonthOrdinalParse } from './ordinal'; +import { defaultRelativeTime } from './relative'; + +// months +import { defaultLocaleMonths, defaultLocaleMonthsShort } from '../units/month'; + +// week +import { defaultLocaleWeek } from '../units/week'; + +// weekdays +import { + defaultLocaleWeekdays, + defaultLocaleWeekdaysMin, + defaultLocaleWeekdaysShort, +} from '../units/day-of-week'; + +// meridiem +import { defaultLocaleMeridiemParse } from '../units/hour'; + +export var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse, +}; diff --git a/node_modules/moment/src/lib/locale/calendar.js b/node_modules/moment/src/lib/locale/calendar.js new file mode 100644 index 0000000..52c6ba5 --- /dev/null +++ b/node_modules/moment/src/lib/locale/calendar.js @@ -0,0 +1,15 @@ +export var defaultCalendar = { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', +}; + +import isFunction from '../utils/is-function'; + +export function calendar(key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; +} diff --git a/node_modules/moment/src/lib/locale/constructor.js b/node_modules/moment/src/lib/locale/constructor.js new file mode 100644 index 0000000..c32b73e --- /dev/null +++ b/node_modules/moment/src/lib/locale/constructor.js @@ -0,0 +1,5 @@ +export function Locale(config) { + if (config != null) { + this.set(config); + } +} diff --git a/node_modules/moment/src/lib/locale/en.js b/node_modules/moment/src/lib/locale/en.js new file mode 100644 index 0000000..470bd27 --- /dev/null +++ b/node_modules/moment/src/lib/locale/en.js @@ -0,0 +1,39 @@ +import './prototype'; +import { getSetGlobalLocale } from './locales'; +import toInt from '../utils/to-int'; + +getSetGlobalLocale('en', { + eras: [ + { + since: '0001-01-01', + until: +Infinity, + offset: 1, + name: 'Anno Domini', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: 'Before Christ', + narrow: 'BC', + abbr: 'BC', + }, + ], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + toInt((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/lib/locale/formats.js b/node_modules/moment/src/lib/locale/formats.js new file mode 100644 index 0000000..ea74837 --- /dev/null +++ b/node_modules/moment/src/lib/locale/formats.js @@ -0,0 +1,36 @@ +import { formattingTokens } from '../format/format'; + +export var defaultLongDateFormat = { + LTS: 'h:mm:ss A', + LT: 'h:mm A', + L: 'MM/DD/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', +}; + +export function longDateFormat(key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper + .match(formattingTokens) + .map(function (tok) { + if ( + tok === 'MMMM' || + tok === 'MM' || + tok === 'DD' || + tok === 'dddd' + ) { + return tok.slice(1); + } + return tok; + }) + .join(''); + + return this._longDateFormat[key]; +} diff --git a/node_modules/moment/src/lib/locale/invalid.js b/node_modules/moment/src/lib/locale/invalid.js new file mode 100644 index 0000000..baf1a86 --- /dev/null +++ b/node_modules/moment/src/lib/locale/invalid.js @@ -0,0 +1,5 @@ +export var defaultInvalidDate = 'Invalid date'; + +export function invalidDate() { + return this._invalidDate; +} diff --git a/node_modules/moment/src/lib/locale/lists.js b/node_modules/moment/src/lib/locale/lists.js new file mode 100644 index 0000000..9470d07 --- /dev/null +++ b/node_modules/moment/src/lib/locale/lists.js @@ -0,0 +1,93 @@ +import isNumber from '../utils/is-number'; +import { getLocale } from './locales'; +import { createUTC } from '../create/utc'; + +function get(format, index, field, setter) { + var locale = getLocale(), + utc = createUTC().set(setter, index); + return locale[field](utc, format); +} + +function listMonthsImpl(format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get(format, index, field, 'month'); + } + + var i, + out = []; + for (i = 0; i < 12; i++) { + out[i] = get(format, i, field, 'month'); + } + return out; +} + +// () +// (5) +// (fmt, 5) +// (fmt) +// (true) +// (true, 5) +// (true, fmt, 5) +// (true, fmt) +function listWeekdaysImpl(localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0, + i, + out = []; + + if (index != null) { + return get(format, (index + shift) % 7, field, 'day'); + } + + for (i = 0; i < 7; i++) { + out[i] = get(format, (i + shift) % 7, field, 'day'); + } + return out; +} + +export function listMonths(format, index) { + return listMonthsImpl(format, index, 'months'); +} + +export function listMonthsShort(format, index) { + return listMonthsImpl(format, index, 'monthsShort'); +} + +export function listWeekdays(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); +} + +export function listWeekdaysShort(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); +} + +export function listWeekdaysMin(localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); +} diff --git a/node_modules/moment/src/lib/locale/locale.js b/node_modules/moment/src/lib/locale/locale.js new file mode 100644 index 0000000..522e36d --- /dev/null +++ b/node_modules/moment/src/lib/locale/locale.js @@ -0,0 +1,45 @@ +// Side effect imports +import './prototype'; + +import { + getSetGlobalLocale, + defineLocale, + updateLocale, + getLocale, + listLocales, +} from './locales'; + +import { + listMonths, + listMonthsShort, + listWeekdays, + listWeekdaysShort, + listWeekdaysMin, +} from './lists'; + +export { + getSetGlobalLocale, + defineLocale, + updateLocale, + getLocale, + listLocales, + listMonths, + listMonthsShort, + listWeekdays, + listWeekdaysShort, + listWeekdaysMin, +}; + +import { deprecate } from '../utils/deprecate'; +import { hooks } from '../utils/hooks'; + +hooks.lang = deprecate( + 'moment.lang is deprecated. Use moment.locale instead.', + getSetGlobalLocale +); +hooks.langData = deprecate( + 'moment.langData is deprecated. Use moment.localeData instead.', + getLocale +); + +import './en'; diff --git a/node_modules/moment/src/lib/locale/locales.js b/node_modules/moment/src/lib/locale/locales.js new file mode 100644 index 0000000..b329b83 --- /dev/null +++ b/node_modules/moment/src/lib/locale/locales.js @@ -0,0 +1,248 @@ +import isArray from '../utils/is-array'; +import isUndefined from '../utils/is-undefined'; +import { deprecateSimple } from '../utils/deprecate'; +import { mergeConfigs } from './set'; +import { Locale } from './constructor'; +import keys from '../utils/keys'; + +import { baseConfig } from './base-config'; + +// internal storage for locale config files +var locales = {}, + localeFamilies = {}, + globalLocale; + +function commonPrefix(arr1, arr2) { + var i, + minl = Math.min(arr1.length, arr2.length); + for (i = 0; i < minl; i += 1) { + if (arr1[i] !== arr2[i]) { + return i; + } + } + return minl; +} + +function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; +} + +// pick the locale from the array +// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each +// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root +function chooseLocale(names) { + var i = 0, + j, + next, + locale, + split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if ( + next && + next.length >= j && + commonPrefix(split, next) >= j - 1 + ) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; +} + +function isLocaleNameSane(name) { + // Prevent names that look like filesystem paths, i.e contain '/' or '\' + return name.match('^[^/\\\\]*$') != null; +} + +function loadLocale(name) { + var oldLocale = null, + aliasedRequire; + // TODO: Find a better way to register and load all the locales in Node + if ( + locales[name] === undefined && + typeof module !== 'undefined' && + module && + module.exports && + isLocaleNameSane(name) + ) { + try { + oldLocale = globalLocale._abbr; + aliasedRequire = require; + aliasedRequire('./locale/' + name); + getSetGlobalLocale(oldLocale); + } catch (e) { + // mark as not found to avoid repeating expensive file require call causing high CPU + // when trying to find en-US, en_US, en-us for every format call + locales[name] = null; // null means not found + } + } + return locales[name]; +} + +// This function will load locale and then set the global locale. If +// no arguments are passed in, it will simply return the current global +// locale key. +export function getSetGlobalLocale(key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } else { + if (typeof console !== 'undefined' && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn( + 'Locale ' + key + ' not found. Did you forget to load it?' + ); + } + } + } + + return globalLocale._abbr; +} + +export function defineLocale(name, config) { + if (config !== null) { + var locale, + parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple( + 'defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' + ); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config, + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } +} + +export function updateLocale(name, config) { + if (config != null) { + var locale, + tmpLocale, + parentConfig = baseConfig; + + if (locales[name] != null && locales[name].parentLocale != null) { + // Update existing child locale in-place to avoid memory-leaks + locales[name].set(mergeConfigs(locales[name]._config, config)); + } else { + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + if (tmpLocale == null) { + // updateLocale is called for creating a new locale + // Set abbr so it will have a name (getters return + // undefined otherwise). + config.abbr = name; + } + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + } + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + if (name === getSetGlobalLocale()) { + getSetGlobalLocale(name); + } + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; +} + +// returns locale data +export function getLocale(key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); +} + +export function listLocales() { + return keys(locales); +} diff --git a/node_modules/moment/src/lib/locale/ordinal.js b/node_modules/moment/src/lib/locale/ordinal.js new file mode 100644 index 0000000..db44f33 --- /dev/null +++ b/node_modules/moment/src/lib/locale/ordinal.js @@ -0,0 +1,8 @@ +var defaultOrdinal = '%d', + defaultDayOfMonthOrdinalParse = /\d{1,2}/; + +export { defaultOrdinal, defaultDayOfMonthOrdinalParse }; + +export function ordinal(number) { + return this._ordinal.replace('%d', number); +} diff --git a/node_modules/moment/src/lib/locale/pre-post-format.js b/node_modules/moment/src/lib/locale/pre-post-format.js new file mode 100644 index 0000000..3551dba --- /dev/null +++ b/node_modules/moment/src/lib/locale/pre-post-format.js @@ -0,0 +1,3 @@ +export function preParsePostFormat(string) { + return string; +} diff --git a/node_modules/moment/src/lib/locale/prototype.js b/node_modules/moment/src/lib/locale/prototype.js new file mode 100644 index 0000000..2057f69 --- /dev/null +++ b/node_modules/moment/src/lib/locale/prototype.js @@ -0,0 +1,88 @@ +import { Locale } from './constructor'; + +var proto = Locale.prototype; + +import { calendar } from './calendar'; +import { longDateFormat } from './formats'; +import { invalidDate } from './invalid'; +import { ordinal } from './ordinal'; +import { preParsePostFormat } from './pre-post-format'; +import { relativeTime, pastFuture } from './relative'; +import { set } from './set'; + +proto.calendar = calendar; +proto.longDateFormat = longDateFormat; +proto.invalidDate = invalidDate; +proto.ordinal = ordinal; +proto.preparse = preParsePostFormat; +proto.postformat = preParsePostFormat; +proto.relativeTime = relativeTime; +proto.pastFuture = pastFuture; +proto.set = set; + +// Eras +import { + localeEras, + localeErasParse, + localeErasConvertYear, + erasAbbrRegex, + erasNameRegex, + erasNarrowRegex, +} from '../units/era'; +proto.eras = localeEras; +proto.erasParse = localeErasParse; +proto.erasConvertYear = localeErasConvertYear; +proto.erasAbbrRegex = erasAbbrRegex; +proto.erasNameRegex = erasNameRegex; +proto.erasNarrowRegex = erasNarrowRegex; + +// Month +import { + localeMonthsParse, + localeMonths, + localeMonthsShort, + monthsRegex, + monthsShortRegex, +} from '../units/month'; + +proto.months = localeMonths; +proto.monthsShort = localeMonthsShort; +proto.monthsParse = localeMonthsParse; +proto.monthsRegex = monthsRegex; +proto.monthsShortRegex = monthsShortRegex; + +// Week +import { + localeWeek, + localeFirstDayOfYear, + localeFirstDayOfWeek, +} from '../units/week'; +proto.week = localeWeek; +proto.firstDayOfYear = localeFirstDayOfYear; +proto.firstDayOfWeek = localeFirstDayOfWeek; + +// Day of Week +import { + localeWeekdaysParse, + localeWeekdays, + localeWeekdaysMin, + localeWeekdaysShort, + weekdaysRegex, + weekdaysShortRegex, + weekdaysMinRegex, +} from '../units/day-of-week'; + +proto.weekdays = localeWeekdays; +proto.weekdaysMin = localeWeekdaysMin; +proto.weekdaysShort = localeWeekdaysShort; +proto.weekdaysParse = localeWeekdaysParse; + +proto.weekdaysRegex = weekdaysRegex; +proto.weekdaysShortRegex = weekdaysShortRegex; +proto.weekdaysMinRegex = weekdaysMinRegex; + +// Hours +import { localeIsPM, localeMeridiem } from '../units/hour'; + +proto.isPM = localeIsPM; +proto.meridiem = localeMeridiem; diff --git a/node_modules/moment/src/lib/locale/relative.js b/node_modules/moment/src/lib/locale/relative.js new file mode 100644 index 0000000..8194045 --- /dev/null +++ b/node_modules/moment/src/lib/locale/relative.js @@ -0,0 +1,32 @@ +export var defaultRelativeTime = { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + w: 'a week', + ww: '%d weeks', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', +}; + +import isFunction from '../utils/is-function'; + +export function relativeTime(number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return isFunction(output) + ? output(number, withoutSuffix, string, isFuture) + : output.replace(/%d/i, number); +} + +export function pastFuture(diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); +} diff --git a/node_modules/moment/src/lib/locale/set.js b/node_modules/moment/src/lib/locale/set.js new file mode 100644 index 0000000..3b069de --- /dev/null +++ b/node_modules/moment/src/lib/locale/set.js @@ -0,0 +1,56 @@ +import isFunction from '../utils/is-function'; +import extend from '../utils/extend'; +import isObject from '../utils/is-object'; +import hasOwnProp from '../utils/has-own-prop'; + +export function set(config) { + var prop, i; + for (i in config) { + if (hasOwnProp(config, i)) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + + /\d{1,2}/.source + ); +} + +export function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), + prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if ( + hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop]) + ) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; +} diff --git a/node_modules/moment/src/lib/moment/add-subtract.js b/node_modules/moment/src/lib/moment/add-subtract.js new file mode 100644 index 0000000..6e7cf22 --- /dev/null +++ b/node_modules/moment/src/lib/moment/add-subtract.js @@ -0,0 +1,61 @@ +import { get, set } from './get-set'; +import { setMonth } from '../units/month'; +import { createDuration } from '../duration/create'; +import { deprecateSimple } from '../utils/deprecate'; +import { hooks } from '../utils/hooks'; +import absRound from '../utils/abs-round'; + +// TODO: remove 'name' arg after deprecation is removed +function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple( + name, + 'moment().' + + name + + '(period, number) is deprecated. Please use moment().' + + name + + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' + ); + tmp = val; + val = period; + period = tmp; + } + + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; +} + +export function addSubtract(mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } +} + +export var add = createAdder(1, 'add'), + subtract = createAdder(-1, 'subtract'); diff --git a/node_modules/moment/src/lib/moment/calendar.js b/node_modules/moment/src/lib/moment/calendar.js new file mode 100644 index 0000000..fdd53dc --- /dev/null +++ b/node_modules/moment/src/lib/moment/calendar.js @@ -0,0 +1,53 @@ +import { createLocal } from '../create/local'; +import { cloneWithOffset } from '../units/offset'; +import isFunction from '../utils/is-function'; +import { hooks } from '../utils/hooks'; +import { isMomentInput } from '../utils/is-moment-input'; +import isCalendarSpec from '../utils/is-calendar-spec'; + +export function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 + ? 'sameElse' + : diff < -1 + ? 'lastWeek' + : diff < 0 + ? 'lastDay' + : diff < 1 + ? 'sameDay' + : diff < 2 + ? 'nextDay' + : diff < 7 + ? 'nextWeek' + : 'sameElse'; +} + +export function calendar(time, formats) { + // Support for single parameter, formats only overload to the calendar function + if (arguments.length === 1) { + if (!arguments[0]) { + time = undefined; + formats = undefined; + } else if (isMomentInput(arguments[0])) { + time = arguments[0]; + formats = undefined; + } else if (isCalendarSpec(arguments[0])) { + formats = arguments[0]; + time = undefined; + } + } + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse', + output = + formats && + (isFunction(formats[format]) + ? formats[format].call(this, now) + : formats[format]); + + return this.format( + output || this.localeData().calendar(format, this, createLocal(now)) + ); +} diff --git a/node_modules/moment/src/lib/moment/clone.js b/node_modules/moment/src/lib/moment/clone.js new file mode 100644 index 0000000..de77c12 --- /dev/null +++ b/node_modules/moment/src/lib/moment/clone.js @@ -0,0 +1,5 @@ +import { Moment } from './constructor'; + +export function clone() { + return new Moment(this); +} diff --git a/node_modules/moment/src/lib/moment/compare.js b/node_modules/moment/src/lib/moment/compare.js new file mode 100644 index 0000000..3f66d77 --- /dev/null +++ b/node_modules/moment/src/lib/moment/compare.js @@ -0,0 +1,72 @@ +import { isMoment } from './constructor'; +import { normalizeUnits } from '../units/aliases'; +import { createLocal } from '../create/local'; + +export function isAfter(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } +} + +export function isBefore(input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } +} + +export function isBetween(from, to, units, inclusivity) { + var localFrom = isMoment(from) ? from : createLocal(from), + localTo = isMoment(to) ? to : createLocal(to); + if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { + return false; + } + inclusivity = inclusivity || '()'; + return ( + (inclusivity[0] === '(' + ? this.isAfter(localFrom, units) + : !this.isBefore(localFrom, units)) && + (inclusivity[1] === ')' + ? this.isBefore(localTo, units) + : !this.isAfter(localTo, units)) + ); +} + +export function isSame(input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units) || 'millisecond'; + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return ( + this.clone().startOf(units).valueOf() <= inputMs && + inputMs <= this.clone().endOf(units).valueOf() + ); + } +} + +export function isSameOrAfter(input, units) { + return this.isSame(input, units) || this.isAfter(input, units); +} + +export function isSameOrBefore(input, units) { + return this.isSame(input, units) || this.isBefore(input, units); +} diff --git a/node_modules/moment/src/lib/moment/constructor.js b/node_modules/moment/src/lib/moment/constructor.js new file mode 100644 index 0000000..b86de8b --- /dev/null +++ b/node_modules/moment/src/lib/moment/constructor.js @@ -0,0 +1,80 @@ +import { hooks } from '../utils/hooks'; +import isUndefined from '../utils/is-undefined'; +import getParsingFlags from '../create/parsing-flags'; + +// Plugins that add properties should also add the key here (null value), +// so we can properly clone ourselves. +var momentProperties = (hooks.momentProperties = []), + updateInProgress = false; + +export function copyConfig(to, from) { + var i, + prop, + val, + momentPropertiesLen = momentProperties.length; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentPropertiesLen > 0) { + for (i = 0; i < momentPropertiesLen; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; +} + +// Moment prototype object +export function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } +} + +export function isMoment(obj) { + return ( + obj instanceof Moment || (obj != null && obj._isAMomentObject != null) + ); +} diff --git a/node_modules/moment/src/lib/moment/creation-data.js b/node_modules/moment/src/lib/moment/creation-data.js new file mode 100644 index 0000000..6643c44 --- /dev/null +++ b/node_modules/moment/src/lib/moment/creation-data.js @@ -0,0 +1,9 @@ +export function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict, + }; +} diff --git a/node_modules/moment/src/lib/moment/diff.js b/node_modules/moment/src/lib/moment/diff.js new file mode 100644 index 0000000..5157318 --- /dev/null +++ b/node_modules/moment/src/lib/moment/diff.js @@ -0,0 +1,79 @@ +import absFloor from '../utils/abs-floor'; +import { cloneWithOffset } from '../units/offset'; +import { normalizeUnits } from '../units/aliases'; + +export function diff(input, units, asFloat) { + var that, zoneDelta, output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': + output = monthDiff(this, that) / 12; + break; + case 'month': + output = monthDiff(this, that); + break; + case 'quarter': + output = monthDiff(this, that) / 3; + break; + case 'second': + output = (this - that) / 1e3; + break; // 1000 + case 'minute': + output = (this - that) / 6e4; + break; // 1000 * 60 + case 'hour': + output = (this - that) / 36e5; + break; // 1000 * 60 * 60 + case 'day': + output = (this - that - zoneDelta) / 864e5; + break; // 1000 * 60 * 60 * 24, negate dst + case 'week': + output = (this - that - zoneDelta) / 6048e5; + break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: + output = this - that; + } + + return asFloat ? output : absFloor(output); +} + +function monthDiff(a, b) { + if (a.date() < b.date()) { + // end-of-month calculations work correct when the start month has more + // days than the end month. + return -monthDiff(b, a); + } + // difference in months + var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, + adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; +} diff --git a/node_modules/moment/src/lib/moment/format.js b/node_modules/moment/src/lib/moment/format.js new file mode 100644 index 0000000..9a3592a --- /dev/null +++ b/node_modules/moment/src/lib/moment/format.js @@ -0,0 +1,78 @@ +import { formatMoment } from '../format/format'; +import { hooks } from '../utils/hooks'; +import isFunction from '../utils/is-function'; + +hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; +hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + +export function toString() { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); +} + +export function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true, + m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment( + m, + utc + ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' + : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) + .toISOString() + .replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment( + m, + utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' + ); +} + +/** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ +export function inspect() { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment', + zone = '', + prefix, + year, + datetime, + suffix; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + prefix = '[' + func + '("]'; + year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; + datetime = '-MM-DD[T]HH:mm:ss.SSS'; + suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); +} + +export function format(inputString) { + if (!inputString) { + inputString = this.isUtc() + ? hooks.defaultFormatUtc + : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); +} diff --git a/node_modules/moment/src/lib/moment/from.js b/node_modules/moment/src/lib/moment/from.js new file mode 100644 index 0000000..5db72aa --- /dev/null +++ b/node_modules/moment/src/lib/moment/from.js @@ -0,0 +1,20 @@ +import { createDuration } from '../duration/create'; +import { createLocal } from '../create/local'; +import { isMoment } from '../moment/constructor'; + +export function from(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ to: this, from: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +export function fromNow(withoutSuffix) { + return this.from(createLocal(), withoutSuffix); +} diff --git a/node_modules/moment/src/lib/moment/get-set.js b/node_modules/moment/src/lib/moment/get-set.js new file mode 100644 index 0000000..cbdd455 --- /dev/null +++ b/node_modules/moment/src/lib/moment/get-set.js @@ -0,0 +1,73 @@ +import { normalizeUnits, normalizeObjectUnits } from '../units/aliases'; +import { getPrioritizedUnits } from '../units/priorities'; +import { hooks } from '../utils/hooks'; +import isFunction from '../utils/is-function'; +import { daysInMonth } from '../units/month'; +import { isLeapYear } from '../utils/is-leap-year'; +import toInt from '../utils/to-int'; + +export function makeGetSet(unit, keepTime) { + return function (value) { + if (value != null) { + set(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; +} + +export function get(mom, unit) { + return mom.isValid() + ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() + : NaN; +} + +export function set(mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if ( + unit === 'FullYear' && + isLeapYear(mom.year()) && + mom.month() === 1 && + mom.date() === 29 + ) { + value = toInt(value); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( + value, + mom.month(), + daysInMonth(value, mom.month()) + ); + } else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } +} + +// MOMENTS + +export function stringGet(units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; +} + +export function stringSet(units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units), + i, + prioritizedLen = prioritized.length; + for (i = 0; i < prioritizedLen; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; +} diff --git a/node_modules/moment/src/lib/moment/locale.js b/node_modules/moment/src/lib/moment/locale.js new file mode 100644 index 0000000..3c62113 --- /dev/null +++ b/node_modules/moment/src/lib/moment/locale.js @@ -0,0 +1,34 @@ +import { getLocale } from '../locale/locales'; +import { deprecate } from '../utils/deprecate'; + +// If passed a locale key, it will set the locale for this +// instance. Otherwise, it will return the locale configuration +// variables for this instance. +export function locale(key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } +} + +export var lang = deprecate( + '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(); + } else { + return this.locale(key); + } + } +); + +export function localeData() { + return this._locale; +} diff --git a/node_modules/moment/src/lib/moment/min-max.js b/node_modules/moment/src/lib/moment/min-max.js new file mode 100644 index 0000000..2ea8955 --- /dev/null +++ b/node_modules/moment/src/lib/moment/min-max.js @@ -0,0 +1,62 @@ +import { deprecate } from '../utils/deprecate'; +import isArray from '../utils/is-array'; +import { createLocal } from '../create/local'; +import { createInvalid } from '../create/valid'; + +export var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ), + prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + +// Pick a moment m from moments so that m[fn](other) is true for all +// other. This relies on the function fn to be transitive. +// +// moments should either be an array of moment objects or an array, whose +// first element is an array of moment objects. +function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; +} + +// TODO: Use [].sort instead? +export function min() { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); +} + +export function max() { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); +} diff --git a/node_modules/moment/src/lib/moment/moment.js b/node_modules/moment/src/lib/moment/moment.js new file mode 100644 index 0000000..f369d08 --- /dev/null +++ b/node_modules/moment/src/lib/moment/moment.js @@ -0,0 +1,28 @@ +import { createLocal } from '../create/local'; +import { createUTC } from '../create/utc'; +import { createInvalid } from '../create/valid'; +import { isMoment } from './constructor'; +import { min, max } from './min-max'; +import { now } from './now'; +import momentPrototype from './prototype'; + +function createUnix(input) { + return createLocal(input * 1000); +} + +function createInZone() { + return createLocal.apply(null, arguments).parseZone(); +} + +export { + now, + min, + max, + isMoment, + createUTC, + createUnix, + createLocal, + createInZone, + createInvalid, + momentPrototype, +}; diff --git a/node_modules/moment/src/lib/moment/now.js b/node_modules/moment/src/lib/moment/now.js new file mode 100644 index 0000000..9bef276 --- /dev/null +++ b/node_modules/moment/src/lib/moment/now.js @@ -0,0 +1,3 @@ +export var now = function () { + return Date.now ? Date.now() : +new Date(); +}; diff --git a/node_modules/moment/src/lib/moment/prototype.js b/node_modules/moment/src/lib/moment/prototype.js new file mode 100644 index 0000000..b4565ab --- /dev/null +++ b/node_modules/moment/src/lib/moment/prototype.js @@ -0,0 +1,197 @@ +import { Moment } from './constructor'; + +var proto = Moment.prototype; + +import { add, subtract } from './add-subtract'; +import { calendar } from './calendar'; +import { clone } from './clone'; +import { + isBefore, + isBetween, + isSame, + isAfter, + isSameOrAfter, + isSameOrBefore, +} from './compare'; +import { diff } from './diff'; +import { format, toString, toISOString, inspect } from './format'; +import { from, fromNow } from './from'; +import { to, toNow } from './to'; +import { stringGet, stringSet } from './get-set'; +import { locale, localeData, lang } from './locale'; +import { prototypeMin, prototypeMax } from './min-max'; +import { startOf, endOf } from './start-end-of'; +import { valueOf, toDate, toArray, toObject, toJSON, unix } from './to-type'; +import { isValid, parsingFlags, invalidAt } from './valid'; +import { creationData } from './creation-data'; + +proto.add = add; +proto.calendar = calendar; +proto.clone = clone; +proto.diff = diff; +proto.endOf = endOf; +proto.format = format; +proto.from = from; +proto.fromNow = fromNow; +proto.to = to; +proto.toNow = toNow; +proto.get = stringGet; +proto.invalidAt = invalidAt; +proto.isAfter = isAfter; +proto.isBefore = isBefore; +proto.isBetween = isBetween; +proto.isSame = isSame; +proto.isSameOrAfter = isSameOrAfter; +proto.isSameOrBefore = isSameOrBefore; +proto.isValid = isValid; +proto.lang = lang; +proto.locale = locale; +proto.localeData = localeData; +proto.max = prototypeMax; +proto.min = prototypeMin; +proto.parsingFlags = parsingFlags; +proto.set = stringSet; +proto.startOf = startOf; +proto.subtract = subtract; +proto.toArray = toArray; +proto.toObject = toObject; +proto.toDate = toDate; +proto.toISOString = toISOString; +proto.inspect = inspect; +if (typeof Symbol !== 'undefined' && Symbol.for != null) { + proto[Symbol.for('nodejs.util.inspect.custom')] = function () { + return 'Moment<' + this.format() + '>'; + }; +} +proto.toJSON = toJSON; +proto.toString = toString; +proto.unix = unix; +proto.valueOf = valueOf; +proto.creationData = creationData; + +// Era +import { getEraName, getEraNarrow, getEraAbbr, getEraYear } from '../units/era'; +proto.eraName = getEraName; +proto.eraNarrow = getEraNarrow; +proto.eraAbbr = getEraAbbr; +proto.eraYear = getEraYear; + +// Year +import { getSetYear, getIsLeapYear } from '../units/year'; +proto.year = getSetYear; +proto.isLeapYear = getIsLeapYear; + +// Week Year +import { + getSetWeekYear, + getSetISOWeekYear, + getWeeksInYear, + getWeeksInWeekYear, + getISOWeeksInYear, + getISOWeeksInISOWeekYear, +} from '../units/week-year'; +proto.weekYear = getSetWeekYear; +proto.isoWeekYear = getSetISOWeekYear; + +// Quarter +import { getSetQuarter } from '../units/quarter'; +proto.quarter = proto.quarters = getSetQuarter; + +// Month +import { getSetMonth, getDaysInMonth } from '../units/month'; +proto.month = getSetMonth; +proto.daysInMonth = getDaysInMonth; + +// Week +import { getSetWeek, getSetISOWeek } from '../units/week'; +proto.week = proto.weeks = getSetWeek; +proto.isoWeek = proto.isoWeeks = getSetISOWeek; +proto.weeksInYear = getWeeksInYear; +proto.weeksInWeekYear = getWeeksInWeekYear; +proto.isoWeeksInYear = getISOWeeksInYear; +proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; + +// Day +import { getSetDayOfMonth } from '../units/day-of-month'; +import { + getSetDayOfWeek, + getSetISODayOfWeek, + getSetLocaleDayOfWeek, +} from '../units/day-of-week'; +import { getSetDayOfYear } from '../units/day-of-year'; +proto.date = getSetDayOfMonth; +proto.day = proto.days = getSetDayOfWeek; +proto.weekday = getSetLocaleDayOfWeek; +proto.isoWeekday = getSetISODayOfWeek; +proto.dayOfYear = getSetDayOfYear; + +// Hour +import { getSetHour } from '../units/hour'; +proto.hour = proto.hours = getSetHour; + +// Minute +import { getSetMinute } from '../units/minute'; +proto.minute = proto.minutes = getSetMinute; + +// Second +import { getSetSecond } from '../units/second'; +proto.second = proto.seconds = getSetSecond; + +// Millisecond +import { getSetMillisecond } from '../units/millisecond'; +proto.millisecond = proto.milliseconds = getSetMillisecond; + +// Offset +import { + getSetOffset, + setOffsetToUTC, + setOffsetToLocal, + setOffsetToParsedOffset, + hasAlignedHourOffset, + isDaylightSavingTime, + isDaylightSavingTimeShifted, + getSetZone, + isLocal, + isUtcOffset, + isUtc, +} from '../units/offset'; +proto.utcOffset = getSetOffset; +proto.utc = setOffsetToUTC; +proto.local = setOffsetToLocal; +proto.parseZone = setOffsetToParsedOffset; +proto.hasAlignedHourOffset = hasAlignedHourOffset; +proto.isDST = isDaylightSavingTime; +proto.isLocal = isLocal; +proto.isUtcOffset = isUtcOffset; +proto.isUtc = isUtc; +proto.isUTC = isUtc; + +// Timezone +import { getZoneAbbr, getZoneName } from '../units/timezone'; +proto.zoneAbbr = getZoneAbbr; +proto.zoneName = getZoneName; + +// Deprecations +import { deprecate } from '../utils/deprecate'; +proto.dates = deprecate( + 'dates accessor is deprecated. Use date instead.', + getSetDayOfMonth +); +proto.months = deprecate( + 'months accessor is deprecated. Use month instead', + getSetMonth +); +proto.years = deprecate( + 'years accessor is deprecated. Use year instead', + getSetYear +); +proto.zone = deprecate( + 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', + getSetZone +); +proto.isDSTShifted = deprecate( + 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', + isDaylightSavingTimeShifted +); + +export default proto; diff --git a/node_modules/moment/src/lib/moment/start-end-of.js b/node_modules/moment/src/lib/moment/start-end-of.js new file mode 100644 index 0000000..cbb301f --- /dev/null +++ b/node_modules/moment/src/lib/moment/start-end-of.js @@ -0,0 +1,164 @@ +import { normalizeUnits } from '../units/aliases'; +import { hooks } from '../utils/hooks'; + +var MS_PER_SECOND = 1000, + MS_PER_MINUTE = 60 * MS_PER_SECOND, + MS_PER_HOUR = 60 * MS_PER_MINUTE, + MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; + +// actual modulo - handles negative numbers (for dates before 1970): +function mod(dividend, divisor) { + return ((dividend % divisor) + divisor) % divisor; +} + +function localStartOfDate(y, m, d) { + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return new Date(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return new Date(y, m, d).valueOf(); + } +} + +function utcStartOfDate(y, m, d) { + // Date.UTC remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0) { + // preserve leap years using a full 400 year cycle, then reset + return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; + } else { + return Date.UTC(y, m, d); + } +} + +export function startOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year(), 0, 1); + break; + case 'quarter': + time = startOfDate( + this.year(), + this.month() - (this.month() % 3), + 1 + ); + break; + case 'month': + time = startOfDate(this.year(), this.month(), 1); + break; + case 'week': + time = startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + ); + break; + case 'isoWeek': + time = startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + ); + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date()); + break; + case 'hour': + time = this._d.valueOf(); + time -= mod( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ); + break; + case 'minute': + time = this._d.valueOf(); + time -= mod(time, MS_PER_MINUTE); + break; + case 'second': + time = this._d.valueOf(); + time -= mod(time, MS_PER_SECOND); + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} + +export function endOf(units) { + var time, startOfDate; + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond' || !this.isValid()) { + return this; + } + + startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; + + switch (units) { + case 'year': + time = startOfDate(this.year() + 1, 0, 1) - 1; + break; + case 'quarter': + time = + startOfDate( + this.year(), + this.month() - (this.month() % 3) + 3, + 1 + ) - 1; + break; + case 'month': + time = startOfDate(this.year(), this.month() + 1, 1) - 1; + break; + case 'week': + time = + startOfDate( + this.year(), + this.month(), + this.date() - this.weekday() + 7 + ) - 1; + break; + case 'isoWeek': + time = + startOfDate( + this.year(), + this.month(), + this.date() - (this.isoWeekday() - 1) + 7 + ) - 1; + break; + case 'day': + case 'date': + time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; + break; + case 'hour': + time = this._d.valueOf(); + time += + MS_PER_HOUR - + mod( + time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), + MS_PER_HOUR + ) - + 1; + break; + case 'minute': + time = this._d.valueOf(); + time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1; + break; + case 'second': + time = this._d.valueOf(); + time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1; + break; + } + + this._d.setTime(time); + hooks.updateOffset(this, true); + return this; +} diff --git a/node_modules/moment/src/lib/moment/to-type.js b/node_modules/moment/src/lib/moment/to-type.js new file mode 100644 index 0000000..1eef5c8 --- /dev/null +++ b/node_modules/moment/src/lib/moment/to-type.js @@ -0,0 +1,42 @@ +export function valueOf() { + return this._d.valueOf() - (this._offset || 0) * 60000; +} + +export function unix() { + return Math.floor(this.valueOf() / 1000); +} + +export function toDate() { + return new Date(this.valueOf()); +} + +export function toArray() { + var m = this; + return [ + m.year(), + m.month(), + m.date(), + m.hour(), + m.minute(), + m.second(), + m.millisecond(), + ]; +} + +export function toObject() { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds(), + }; +} + +export function toJSON() { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; +} diff --git a/node_modules/moment/src/lib/moment/to.js b/node_modules/moment/src/lib/moment/to.js new file mode 100644 index 0000000..073a3d1 --- /dev/null +++ b/node_modules/moment/src/lib/moment/to.js @@ -0,0 +1,20 @@ +import { createDuration } from '../duration/create'; +import { createLocal } from '../create/local'; +import { isMoment } from '../moment/constructor'; + +export function to(time, withoutSuffix) { + if ( + this.isValid() && + ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) + ) { + return createDuration({ from: this, to: time }) + .locale(this.locale()) + .humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } +} + +export function toNow(withoutSuffix) { + return this.to(createLocal(), withoutSuffix); +} diff --git a/node_modules/moment/src/lib/moment/valid.js b/node_modules/moment/src/lib/moment/valid.js new file mode 100644 index 0000000..7a7e1b9 --- /dev/null +++ b/node_modules/moment/src/lib/moment/valid.js @@ -0,0 +1,15 @@ +import { isValid as _isValid } from '../create/valid'; +import extend from '../utils/extend'; +import getParsingFlags from '../create/parsing-flags'; + +export function isValid() { + return _isValid(this); +} + +export function parsingFlags() { + return extend({}, getParsingFlags(this)); +} + +export function invalidAt() { + return getParsingFlags(this).overflow; +} diff --git a/node_modules/moment/src/lib/parse/regex.js b/node_modules/moment/src/lib/parse/regex.js new file mode 100644 index 0000000..9576d01 --- /dev/null +++ b/node_modules/moment/src/lib/parse/regex.js @@ -0,0 +1,80 @@ +var match1 = /\d/, // 0 - 9 + match2 = /\d\d/, // 00 - 99 + match3 = /\d{3}/, // 000 - 999 + match4 = /\d{4}/, // 0000 - 9999 + match6 = /[+-]?\d{6}/, // -999999 - 999999 + match1to2 = /\d\d?/, // 0 - 99 + match3to4 = /\d\d\d\d?/, // 999 - 9999 + match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 + match1to3 = /\d{1,3}/, // 0 - 999 + match1to4 = /\d{1,4}/, // 0 - 9999 + match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 + matchUnsigned = /\d+/, // 0 - inf + matchSigned = /[+-]?\d+/, // -inf - inf + matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z + matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z + matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + matchWord = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, + regexes; + +export { + match1, + match2, + match3, + match4, + match6, + match1to2, + match3to4, + match5to6, + match1to3, + match1to4, + match1to6, + matchUnsigned, + matchSigned, + matchOffset, + matchShortOffset, + matchTimestamp, + matchWord, +}; + +import hasOwnProp from '../utils/has-own-prop'; +import isFunction from '../utils/is-function'; + +regexes = {}; + +export function addRegexToken(token, regex, strictRegex) { + regexes[token] = isFunction(regex) + ? regex + : function (isStrict, localeData) { + return isStrict && strictRegex ? strictRegex : regex; + }; +} + +export function getParseRegexForToken(token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); +} + +// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript +function unescapeFormat(s) { + return regexEscape( + s + .replace('\\', '') + .replace( + /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, + function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + } + ) + ); +} + +export function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); +} diff --git a/node_modules/moment/src/lib/parse/token.js b/node_modules/moment/src/lib/parse/token.js new file mode 100644 index 0000000..ede3578 --- /dev/null +++ b/node_modules/moment/src/lib/parse/token.js @@ -0,0 +1,36 @@ +import hasOwnProp from '../utils/has-own-prop'; +import isNumber from '../utils/is-number'; +import toInt from '../utils/to-int'; + +var tokens = {}; + +export function addParseToken(token, callback) { + var i, + func = callback, + tokenLen; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + tokenLen = token.length; + for (i = 0; i < tokenLen; i++) { + tokens[token[i]] = func; + } +} + +export function addWeekParseToken(token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); +} + +export function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } +} diff --git a/node_modules/moment/src/lib/units/aliases.js b/node_modules/moment/src/lib/units/aliases.js new file mode 100644 index 0000000..8127b68 --- /dev/null +++ b/node_modules/moment/src/lib/units/aliases.js @@ -0,0 +1,31 @@ +import hasOwnProp from '../utils/has-own-prop'; + +var aliases = {}; + +export function addUnitAlias(unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; +} + +export function normalizeUnits(units) { + return typeof units === 'string' + ? aliases[units] || aliases[units.toLowerCase()] + : undefined; +} + +export function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; +} diff --git a/node_modules/moment/src/lib/units/constants.js b/node_modules/moment/src/lib/units/constants.js new file mode 100644 index 0000000..da36dbd --- /dev/null +++ b/node_modules/moment/src/lib/units/constants.js @@ -0,0 +1,9 @@ +export var YEAR = 0, + MONTH = 1, + DATE = 2, + HOUR = 3, + MINUTE = 4, + SECOND = 5, + MILLISECOND = 6, + WEEK = 7, + WEEKDAY = 8; diff --git a/node_modules/moment/src/lib/units/day-of-month.js b/node_modules/moment/src/lib/units/day-of-month.js new file mode 100644 index 0000000..42a8b3f --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-month.js @@ -0,0 +1,39 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match1to2, match2 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { DATE } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('D', ['DD', 2], 'Do', 'date'); + +// ALIASES + +addUnitAlias('date', 'D'); + +// PRIORITY +addUnitPriority('date', 9); + +// PARSING + +addRegexToken('D', match1to2); +addRegexToken('DD', match1to2, match2); +addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict + ? locale._dayOfMonthOrdinalParse || locale._ordinalParse + : locale._dayOfMonthOrdinalParseLenient; +}); + +addParseToken(['D', 'DD'], DATE); +addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); +}); + +// MOMENTS + +export var getSetDayOfMonth = makeGetSet('Date', true); diff --git a/node_modules/moment/src/lib/units/day-of-week.js b/node_modules/moment/src/lib/units/day-of-week.js new file mode 100644 index 0000000..b2d5ce2 --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-week.js @@ -0,0 +1,443 @@ +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1to2, + matchWord, + regexEscape, +} from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; +import isArray from '../utils/is-array'; +import indexOf from '../utils/index-of'; +import hasOwnProp from '../utils/has-own-prop'; +import { createUTC } from '../create/utc'; +import getParsingFlags from '../create/parsing-flags'; + +// FORMATTING + +addFormatToken('d', 0, 'do', 'day'); + +addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); +}); + +addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); +}); + +addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); +}); + +addFormatToken('e', 0, 0, 'weekday'); +addFormatToken('E', 0, 0, 'isoWeekday'); + +// ALIASES + +addUnitAlias('day', 'd'); +addUnitAlias('weekday', 'e'); +addUnitAlias('isoWeekday', 'E'); + +// PRIORITY +addUnitPriority('day', 11); +addUnitPriority('weekday', 11); +addUnitPriority('isoWeekday', 11); + +// PARSING + +addRegexToken('d', match1to2); +addRegexToken('e', match1to2); +addRegexToken('E', match1to2); +addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); +}); +addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); +}); +addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); +}); + +addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } +}); + +addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); +}); + +// HELPERS + +function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; +} + +function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; +} + +// LOCALES +function shiftWeekdays(ws, n) { + return ws.slice(n, 7).concat(ws.slice(0, n)); +} + +var defaultLocaleWeekdays = + 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + defaultWeekdaysRegex = matchWord, + defaultWeekdaysShortRegex = matchWord, + defaultWeekdaysMinRegex = matchWord; + +export { + defaultLocaleWeekdays, + defaultLocaleWeekdaysShort, + defaultLocaleWeekdaysMin, +}; + +export function localeWeekdays(m, format) { + var weekdays = isArray(this._weekdays) + ? this._weekdays + : this._weekdays[ + m && m !== true && this._weekdays.isFormat.test(format) + ? 'format' + : 'standalone' + ]; + return m === true + ? shiftWeekdays(weekdays, this._week.dow) + : m + ? weekdays[m.day()] + : weekdays; +} + +export function localeWeekdaysShort(m) { + return m === true + ? shiftWeekdays(this._weekdaysShort, this._week.dow) + : m + ? this._weekdaysShort[m.day()] + : this._weekdaysShort; +} + +export function localeWeekdaysMin(m) { + return m === true + ? shiftWeekdays(this._weekdaysMin, this._week.dow) + : m + ? this._weekdaysMin[m.day()] + : this._weekdaysMin; +} + +function handleStrictParse(weekdayName, format, strict) { + var i, + ii, + mom, + llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin( + mom, + '' + ).toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort( + mom, + '' + ).toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +export function localeWeekdaysParse(weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp( + '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._shortWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + this._minWeekdaysParse[i] = new RegExp( + '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', + 'i' + ); + } + if (!this._weekdaysParse[i]) { + regex = + '^' + + this.weekdays(mom, '') + + '|^' + + this.weekdaysShort(mom, '') + + '|^' + + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if ( + strict && + format === 'dddd' && + this._fullWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'ddd' && + this._shortWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if ( + strict && + format === 'dd' && + this._minWeekdaysParse[i].test(weekdayName) + ) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } +} + +// MOMENTS + +export function getSetDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } +} + +export function getSetLocaleDayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); +} + +export function getSetISODayOfWeek(input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } +} + +export function weekdaysRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict + ? this._weekdaysStrictRegex + : this._weekdaysRegex; + } +} + +export function weekdaysShortRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict + ? this._weekdaysShortStrictRegex + : this._weekdaysShortRegex; + } +} + +export function weekdaysMinRegex(isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict + ? this._weekdaysMinStrictRegex + : this._weekdaysMinRegex; + } +} + +function computeWeekdaysParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], + shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom, + minp, + shortp, + longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = regexEscape(this.weekdaysMin(mom, '')); + shortp = regexEscape(this.weekdaysShort(mom, '')); + longp = regexEscape(this.weekdays(mom, '')); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._weekdaysShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); + this._weekdaysMinStrictRegex = new RegExp( + '^(' + minPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/day-of-year.js b/node_modules/moment/src/lib/units/day-of-year.js new file mode 100644 index 0000000..9aecb5b --- /dev/null +++ b/node_modules/moment/src/lib/units/day-of-year.js @@ -0,0 +1,37 @@ +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match3, match1to3 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + +// ALIASES + +addUnitAlias('dayOfYear', 'DDD'); + +// PRIORITY +addUnitPriority('dayOfYear', 4); + +// PARSING + +addRegexToken('DDD', match1to3); +addRegexToken('DDDD', match3); +addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); +}); + +// HELPERS + +// MOMENTS + +export function getSetDayOfYear(input) { + var dayOfYear = + Math.round( + (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 + ) + 1; + return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); +} diff --git a/node_modules/moment/src/lib/units/era.js b/node_modules/moment/src/lib/units/era.js new file mode 100644 index 0000000..1d2c9f2 --- /dev/null +++ b/node_modules/moment/src/lib/units/era.js @@ -0,0 +1,287 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchUnsigned, regexEscape } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { YEAR } from './constants'; +import { hooks as moment } from '../utils/hooks'; +import { getLocale } from '../locale/locales'; +import getParsingFlags from '../create/parsing-flags'; +import hasOwnProp from '../utils/has-own-prop'; + +addFormatToken('N', 0, 0, 'eraAbbr'); +addFormatToken('NN', 0, 0, 'eraAbbr'); +addFormatToken('NNN', 0, 0, 'eraAbbr'); +addFormatToken('NNNN', 0, 0, 'eraName'); +addFormatToken('NNNNN', 0, 0, 'eraNarrow'); + +addFormatToken('y', ['y', 1], 'yo', 'eraYear'); +addFormatToken('y', ['yy', 2], 0, 'eraYear'); +addFormatToken('y', ['yyy', 3], 0, 'eraYear'); +addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); + +addRegexToken('N', matchEraAbbr); +addRegexToken('NN', matchEraAbbr); +addRegexToken('NNN', matchEraAbbr); +addRegexToken('NNNN', matchEraName); +addRegexToken('NNNNN', matchEraNarrow); + +addParseToken( + ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], + function (input, array, config, token) { + var era = config._locale.erasParse(input, token, config._strict); + if (era) { + getParsingFlags(config).era = era; + } else { + getParsingFlags(config).invalidEra = input; + } + } +); + +addRegexToken('y', matchUnsigned); +addRegexToken('yy', matchUnsigned); +addRegexToken('yyy', matchUnsigned); +addRegexToken('yyyy', matchUnsigned); +addRegexToken('yo', matchEraYearOrdinal); + +addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); +addParseToken(['yo'], function (input, array, config, token) { + var match; + if (config._locale._eraYearOrdinalRegex) { + match = input.match(config._locale._eraYearOrdinalRegex); + } + + if (config._locale.eraYearOrdinalParse) { + array[YEAR] = config._locale.eraYearOrdinalParse(input, match); + } else { + array[YEAR] = parseInt(input, 10); + } +}); + +export function localeEras(m, format) { + var i, + l, + date, + eras = this._eras || getLocale('en')._eras; + for (i = 0, l = eras.length; i < l; ++i) { + switch (typeof eras[i].since) { + case 'string': + // truncate time + date = moment(eras[i].since).startOf('day'); + eras[i].since = date.valueOf(); + break; + } + + switch (typeof eras[i].until) { + case 'undefined': + eras[i].until = +Infinity; + break; + case 'string': + // truncate time + date = moment(eras[i].until).startOf('day').valueOf(); + eras[i].until = date.valueOf(); + break; + } + } + return eras; +} + +export function localeErasParse(eraName, format, strict) { + var i, + l, + eras = this.eras(), + name, + abbr, + narrow; + eraName = eraName.toUpperCase(); + + for (i = 0, l = eras.length; i < l; ++i) { + name = eras[i].name.toUpperCase(); + abbr = eras[i].abbr.toUpperCase(); + narrow = eras[i].narrow.toUpperCase(); + + if (strict) { + switch (format) { + case 'N': + case 'NN': + case 'NNN': + if (abbr === eraName) { + return eras[i]; + } + break; + + case 'NNNN': + if (name === eraName) { + return eras[i]; + } + break; + + case 'NNNNN': + if (narrow === eraName) { + return eras[i]; + } + break; + } + } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { + return eras[i]; + } + } +} + +export function localeErasConvertYear(era, year) { + var dir = era.since <= era.until ? +1 : -1; + if (year === undefined) { + return moment(era.since).year(); + } else { + return moment(era.since).year() + (year - era.offset) * dir; + } +} + +export function getEraName() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].name; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].name; + } + } + + return ''; +} + +export function getEraNarrow() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].narrow; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].narrow; + } + } + + return ''; +} + +export function getEraAbbr() { + var i, + l, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + // truncate time + val = this.clone().startOf('day').valueOf(); + + if (eras[i].since <= val && val <= eras[i].until) { + return eras[i].abbr; + } + if (eras[i].until <= val && val <= eras[i].since) { + return eras[i].abbr; + } + } + + return ''; +} + +export function getEraYear() { + var i, + l, + dir, + val, + eras = this.localeData().eras(); + for (i = 0, l = eras.length; i < l; ++i) { + dir = eras[i].since <= eras[i].until ? +1 : -1; + + // truncate time + val = this.clone().startOf('day').valueOf(); + + if ( + (eras[i].since <= val && val <= eras[i].until) || + (eras[i].until <= val && val <= eras[i].since) + ) { + return ( + (this.year() - moment(eras[i].since).year()) * dir + + eras[i].offset + ); + } + } + + return this.year(); +} + +export function erasNameRegex(isStrict) { + if (!hasOwnProp(this, '_erasNameRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNameRegex : this._erasRegex; +} + +export function erasAbbrRegex(isStrict) { + if (!hasOwnProp(this, '_erasAbbrRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasAbbrRegex : this._erasRegex; +} + +export function erasNarrowRegex(isStrict) { + if (!hasOwnProp(this, '_erasNarrowRegex')) { + computeErasParse.call(this); + } + return isStrict ? this._erasNarrowRegex : this._erasRegex; +} + +function matchEraAbbr(isStrict, locale) { + return locale.erasAbbrRegex(isStrict); +} + +function matchEraName(isStrict, locale) { + return locale.erasNameRegex(isStrict); +} + +function matchEraNarrow(isStrict, locale) { + return locale.erasNarrowRegex(isStrict); +} + +function matchEraYearOrdinal(isStrict, locale) { + return locale._eraYearOrdinalRegex || matchUnsigned; +} + +function computeErasParse() { + var abbrPieces = [], + namePieces = [], + narrowPieces = [], + mixedPieces = [], + i, + l, + eras = this.eras(); + + for (i = 0, l = eras.length; i < l; ++i) { + namePieces.push(regexEscape(eras[i].name)); + abbrPieces.push(regexEscape(eras[i].abbr)); + narrowPieces.push(regexEscape(eras[i].narrow)); + + mixedPieces.push(regexEscape(eras[i].name)); + mixedPieces.push(regexEscape(eras[i].abbr)); + mixedPieces.push(regexEscape(eras[i].narrow)); + } + + this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); + this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); + this._erasNarrowRegex = new RegExp( + '^(' + narrowPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/hour.js b/node_modules/moment/src/lib/units/hour.js new file mode 100644 index 0000000..431121f --- /dev/null +++ b/node_modules/moment/src/lib/units/hour.js @@ -0,0 +1,159 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1to2, + match2, + match3to4, + match5to6, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { HOUR, MINUTE, SECOND } from './constants'; +import toInt from '../utils/to-int'; +import zeroFill from '../utils/zero-fill'; +import getParsingFlags from '../create/parsing-flags'; + +// FORMATTING + +function hFormat() { + return this.hours() % 12 || 12; +} + +function kFormat() { + return this.hours() || 24; +} + +addFormatToken('H', ['HH', 2], 0, 'hour'); +addFormatToken('h', ['hh', 2], 0, hFormat); +addFormatToken('k', ['kk', 2], 0, kFormat); + +addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); +}); + +addFormatToken('hmmss', 0, 0, function () { + return ( + '' + + hFormat.apply(this) + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); +}); + +addFormatToken('Hmmss', 0, 0, function () { + return ( + '' + + this.hours() + + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2) + ); +}); + +function meridiem(token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem( + this.hours(), + this.minutes(), + lowercase + ); + }); +} + +meridiem('a', true); +meridiem('A', false); + +// ALIASES + +addUnitAlias('hour', 'h'); + +// PRIORITY +addUnitPriority('hour', 13); + +// PARSING + +function matchMeridiem(isStrict, locale) { + return locale._meridiemParse; +} + +addRegexToken('a', matchMeridiem); +addRegexToken('A', matchMeridiem); +addRegexToken('H', match1to2); +addRegexToken('h', match1to2); +addRegexToken('k', match1to2); +addRegexToken('HH', match1to2, match2); +addRegexToken('hh', match1to2, match2); +addRegexToken('kk', match1to2, match2); + +addRegexToken('hmm', match3to4); +addRegexToken('hmmss', match5to6); +addRegexToken('Hmm', match3to4); +addRegexToken('Hmmss', match5to6); + +addParseToken(['H', 'HH'], HOUR); +addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; +}); +addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; +}); +addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; +}); +addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); +}); +addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4, + pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); +}); + +// LOCALES + +export function localeIsPM(input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return (input + '').toLowerCase().charAt(0) === 'p'; +} + +export var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + getSetHour = makeGetSet('Hours', true); + +export function localeMeridiem(hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } +} diff --git a/node_modules/moment/src/lib/units/millisecond.js b/node_modules/moment/src/lib/units/millisecond.js new file mode 100644 index 0000000..b60e89a --- /dev/null +++ b/node_modules/moment/src/lib/units/millisecond.js @@ -0,0 +1,76 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1, + match2, + match3, + match1to3, + matchUnsigned, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MILLISECOND } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); +}); + +addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); +}); + +addFormatToken(0, ['SSS', 3], 0, 'millisecond'); +addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; +}); +addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; +}); +addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; +}); +addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; +}); +addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; +}); +addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; +}); + +// ALIASES + +addUnitAlias('millisecond', 'ms'); + +// PRIORITY + +addUnitPriority('millisecond', 16); + +// PARSING + +addRegexToken('S', match1to3, match1); +addRegexToken('SS', match1to3, match2); +addRegexToken('SSS', match1to3, match3); + +var token, getSetMillisecond; +for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); +} + +function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); +} + +for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); +} + +getSetMillisecond = makeGetSet('Milliseconds', false); + +export { getSetMillisecond }; diff --git a/node_modules/moment/src/lib/units/minute.js b/node_modules/moment/src/lib/units/minute.js new file mode 100644 index 0000000..036d738 --- /dev/null +++ b/node_modules/moment/src/lib/units/minute.js @@ -0,0 +1,29 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match1to2, match2 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MINUTE } from './constants'; + +// FORMATTING + +addFormatToken('m', ['mm', 2], 0, 'minute'); + +// ALIASES + +addUnitAlias('minute', 'm'); + +// PRIORITY + +addUnitPriority('minute', 14); + +// PARSING + +addRegexToken('m', match1to2); +addRegexToken('mm', match1to2, match2); +addParseToken(['m', 'mm'], MINUTE); + +// MOMENTS + +export var getSetMinute = makeGetSet('Minutes', false); diff --git a/node_modules/moment/src/lib/units/month.js b/node_modules/moment/src/lib/units/month.js new file mode 100644 index 0000000..a11d46b --- /dev/null +++ b/node_modules/moment/src/lib/units/month.js @@ -0,0 +1,349 @@ +import { get } from '../moment/get-set'; +import hasOwnProp from '../utils/has-own-prop'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1to2, + match2, + matchWord, + regexEscape, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { hooks } from '../utils/hooks'; +import { MONTH } from './constants'; +import toInt from '../utils/to-int'; +import isArray from '../utils/is-array'; +import isNumber from '../utils/is-number'; +import mod from '../utils/mod'; +import indexOf from '../utils/index-of'; +import { createUTC } from '../create/utc'; +import getParsingFlags from '../create/parsing-flags'; +import { isLeapYear } from '../utils/is-leap-year'; + +export function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 + ? isLeapYear(year) + ? 29 + : 28 + : 31 - ((modMonth % 7) % 2); +} + +// FORMATTING + +addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; +}); + +addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); +}); + +addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); +}); + +// ALIASES + +addUnitAlias('month', 'M'); + +// PRIORITY + +addUnitPriority('month', 8); + +// PARSING + +addRegexToken('M', match1to2); +addRegexToken('MM', match1to2, match2); +addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); +}); +addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); +}); + +addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; +}); + +addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } +}); + +// LOCALES + +var defaultLocaleMonths = + 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + defaultLocaleMonthsShort = + 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + defaultMonthsShortRegex = matchWord, + defaultMonthsRegex = matchWord; + +export { defaultLocaleMonths, defaultLocaleMonthsShort }; + +export function localeMonths(m, format) { + if (!m) { + return isArray(this._months) + ? this._months + : this._months['standalone']; + } + return isArray(this._months) + ? this._months[m.month()] + : this._months[ + (this._months.isFormat || MONTHS_IN_FORMAT).test(format) + ? 'format' + : 'standalone' + ][m.month()]; +} + +export function localeMonthsShort(m, format) { + if (!m) { + return isArray(this._monthsShort) + ? this._monthsShort + : this._monthsShort['standalone']; + } + return isArray(this._monthsShort) + ? this._monthsShort[m.month()] + : this._monthsShort[ + MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' + ][m.month()]; +} + +function handleStrictParse(monthName, format, strict) { + var i, + ii, + mom, + llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort( + mom, + '' + ).toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } +} + +export function localeMonthsParse(monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([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 ( + 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; + } + } +} + +// MOMENTS + +export function setMonth(mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; +} + +export function getSetMonth(value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } +} + +export function getDaysInMonth() { + return daysInMonth(this.year(), this.month()); +} + +export function monthsShortRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict + ? this._monthsShortStrictRegex + : this._monthsShortRegex; + } +} + +export function monthsRegex(isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict + ? this._monthsStrictRegex + : this._monthsRegex; + } +} + +function computeMonthsParse() { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], + longPieces = [], + mixedPieces = [], + i, + mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp( + '^(' + longPieces.join('|') + ')', + 'i' + ); + this._monthsShortStrictRegex = new RegExp( + '^(' + shortPieces.join('|') + ')', + 'i' + ); +} diff --git a/node_modules/moment/src/lib/units/offset.js b/node_modules/moment/src/lib/units/offset.js new file mode 100644 index 0000000..668ebb9 --- /dev/null +++ b/node_modules/moment/src/lib/units/offset.js @@ -0,0 +1,249 @@ +import zeroFill from '../utils/zero-fill'; +import { createDuration } from '../duration/create'; +import { addSubtract } from '../moment/add-subtract'; +import { isMoment, copyConfig } from '../moment/constructor'; +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { createLocal } from '../create/local'; +import { prepareConfig } from '../create/from-anything'; +import { createUTC } from '../create/utc'; +import isDate from '../utils/is-date'; +import toInt from '../utils/to-int'; +import isUndefined from '../utils/is-undefined'; +import compareArrays from '../utils/compare-arrays'; +import { hooks } from '../utils/hooks'; + +// FORMATTING + +function offset(token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(), + sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return ( + sign + + zeroFill(~~(offset / 60), 2) + + separator + + zeroFill(~~offset % 60, 2) + ); + }); +} + +offset('Z', ':'); +offset('ZZ', ''); + +// PARSING + +addRegexToken('Z', matchShortOffset); +addRegexToken('ZZ', matchShortOffset); +addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); +}); + +// HELPERS + +// timezone chunker +// '+10:00' > ['10', '00'] +// '-1530' > ['-15', '30'] +var chunkOffset = /([\+\-]|\d\d)/gi; + +function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher), + chunk, + parts, + minutes; + + if (matches === null) { + return null; + } + + chunk = matches[matches.length - 1] || []; + parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; +} + +// Return a moment from input, that is local/utc/zone equivalent to model. +export function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = + (isMoment(input) || isDate(input) + ? input.valueOf() + : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } +} + +function getDateOffset(m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset()); +} + +// HOOKS + +// This function will be called whenever a moment is mutated. +// It is intended to keep the offset in sync with the timezone. +hooks.updateOffset = function () {}; + +// MOMENTS + +// keepLocalTime = true means only change the timezone, without +// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> +// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset +// +0200, so we adjust the time as needed, to be valid. +// +// Keeping the time actually adds/subtracts (one hour) +// from the actual represented time. That is why we call updateOffset +// a second time. In case it wants us to change the offset again +// _changeInProgress == true case, then we have to adjust, because +// there is no such time in the given timezone. +export function getSetOffset(input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract( + this, + createDuration(input - offset, 'm'), + 1, + false + ); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } +} + +export function getSetZone(input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } +} + +export function setOffsetToUTC(keepLocalTime) { + return this.utcOffset(0, keepLocalTime); +} + +export function setOffsetToLocal(keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; +} + +export function setOffsetToParsedOffset() { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } else { + this.utcOffset(0, true); + } + } + return this; +} + +export function hasAlignedHourOffset(input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; +} + +export function isDaylightSavingTime() { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); +} + +export function isDaylightSavingTimeShifted() { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}, + other; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = + this.isValid() && compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; +} + +export function isLocal() { + return this.isValid() ? !this._isUTC : false; +} + +export function isUtcOffset() { + return this.isValid() ? this._isUTC : false; +} + +export function isUtc() { + return this.isValid() ? this._isUTC && this._offset === 0 : false; +} diff --git a/node_modules/moment/src/lib/units/priorities.js b/node_modules/moment/src/lib/units/priorities.js new file mode 100644 index 0000000..b0b732a --- /dev/null +++ b/node_modules/moment/src/lib/units/priorities.js @@ -0,0 +1,21 @@ +import hasOwnProp from '../utils/has-own-prop'; + +var priorities = {}; + +export function addUnitPriority(unit, priority) { + priorities[unit] = priority; +} + +export function getPrioritizedUnits(unitsObj) { + var units = [], + u; + for (u in unitsObj) { + if (hasOwnProp(unitsObj, u)) { + units.push({ unit: u, priority: priorities[u] }); + } + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; +} diff --git a/node_modules/moment/src/lib/units/quarter.js b/node_modules/moment/src/lib/units/quarter.js new file mode 100644 index 0000000..907b579 --- /dev/null +++ b/node_modules/moment/src/lib/units/quarter.js @@ -0,0 +1,34 @@ +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match1 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { MONTH } from './constants'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('Q', 0, 'Qo', 'quarter'); + +// ALIASES + +addUnitAlias('quarter', 'Q'); + +// PRIORITY + +addUnitPriority('quarter', 7); + +// PARSING + +addRegexToken('Q', match1); +addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; +}); + +// MOMENTS + +export function getSetQuarter(input) { + return input == null + ? Math.ceil((this.month() + 1) / 3) + : this.month((input - 1) * 3 + (this.month() % 3)); +} diff --git a/node_modules/moment/src/lib/units/second.js b/node_modules/moment/src/lib/units/second.js new file mode 100644 index 0000000..eedbfc9 --- /dev/null +++ b/node_modules/moment/src/lib/units/second.js @@ -0,0 +1,29 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match1to2, match2 } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { SECOND } from './constants'; + +// FORMATTING + +addFormatToken('s', ['ss', 2], 0, 'second'); + +// ALIASES + +addUnitAlias('second', 's'); + +// PRIORITY + +addUnitPriority('second', 15); + +// PARSING + +addRegexToken('s', match1to2); +addRegexToken('ss', match1to2, match2); +addParseToken(['s', 'ss'], SECOND); + +// MOMENTS + +export var getSetSecond = makeGetSet('Seconds', false); diff --git a/node_modules/moment/src/lib/units/timestamp.js b/node_modules/moment/src/lib/units/timestamp.js new file mode 100644 index 0000000..50c6b87 --- /dev/null +++ b/node_modules/moment/src/lib/units/timestamp.js @@ -0,0 +1,20 @@ +import { addFormatToken } from '../format/format'; +import { addRegexToken, matchTimestamp, matchSigned } from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; + +// FORMATTING + +addFormatToken('X', 0, 0, 'unix'); +addFormatToken('x', 0, 0, 'valueOf'); + +// PARSING + +addRegexToken('x', matchSigned); +addRegexToken('X', matchTimestamp); +addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input) * 1000); +}); +addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); +}); diff --git a/node_modules/moment/src/lib/units/timezone.js b/node_modules/moment/src/lib/units/timezone.js new file mode 100644 index 0000000..3831fd3 --- /dev/null +++ b/node_modules/moment/src/lib/units/timezone.js @@ -0,0 +1,16 @@ +import { addFormatToken } from '../format/format'; + +// FORMATTING + +addFormatToken('z', 0, 0, 'zoneAbbr'); +addFormatToken('zz', 0, 0, 'zoneName'); + +// MOMENTS + +export function getZoneAbbr() { + return this._isUTC ? 'UTC' : ''; +} + +export function getZoneName() { + return this._isUTC ? 'Coordinated Universal Time' : ''; +} diff --git a/node_modules/moment/src/lib/units/units.js b/node_modules/moment/src/lib/units/units.js new file mode 100644 index 0000000..6f45f1c --- /dev/null +++ b/node_modules/moment/src/lib/units/units.js @@ -0,0 +1,20 @@ +// Side effect imports +import './day-of-month'; +import './day-of-week'; +import './day-of-year'; +import './hour'; +import './millisecond'; +import './minute'; +import './month'; +import './offset'; +import './quarter'; +import './second'; +import './timestamp'; +import './timezone'; +import './week-year'; +import './week'; +import './year'; + +import { normalizeUnits } from './aliases'; + +export { normalizeUnits }; diff --git a/node_modules/moment/src/lib/units/week-calendar-utils.js b/node_modules/moment/src/lib/units/week-calendar-utils.js new file mode 100644 index 0000000..be67184 --- /dev/null +++ b/node_modules/moment/src/lib/units/week-calendar-utils.js @@ -0,0 +1,66 @@ +import { daysInYear } from './year'; +import { createUTCDate } from '../create/date-from-array'; + +// start-of-first-week - start-of-year +function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; +} + +// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday +export function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, + resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear, + }; +} + +export function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, + resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear, + }; +} + +export function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; +} diff --git a/node_modules/moment/src/lib/units/week-year.js b/node_modules/moment/src/lib/units/week-year.js new file mode 100644 index 0000000..960c345 --- /dev/null +++ b/node_modules/moment/src/lib/units/week-year.js @@ -0,0 +1,138 @@ +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1to2, + match1to4, + match1to6, + match2, + match4, + match6, + matchSigned, +} from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import { + weekOfYear, + weeksInYear, + dayOfYearFromWeeks, +} from './week-calendar-utils'; +import toInt from '../utils/to-int'; +import { hooks } from '../utils/hooks'; +import { createUTCDate } from '../create/date-from-array'; + +// FORMATTING + +addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; +}); + +addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; +}); + +function addWeekYearFormatToken(token, getter) { + addFormatToken(0, [token, token.length], 0, getter); +} + +addWeekYearFormatToken('gggg', 'weekYear'); +addWeekYearFormatToken('ggggg', 'weekYear'); +addWeekYearFormatToken('GGGG', 'isoWeekYear'); +addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + +// ALIASES + +addUnitAlias('weekYear', 'gg'); +addUnitAlias('isoWeekYear', 'GG'); + +// PRIORITY + +addUnitPriority('weekYear', 1); +addUnitPriority('isoWeekYear', 1); + +// PARSING + +addRegexToken('G', matchSigned); +addRegexToken('g', matchSigned); +addRegexToken('GG', match1to2, match2); +addRegexToken('gg', match1to2, match2); +addRegexToken('GGGG', match1to4, match4); +addRegexToken('gggg', match1to4, match4); +addRegexToken('GGGGG', match1to6, match6); +addRegexToken('ggggg', match1to6, match6); + +addWeekParseToken( + ['gggg', 'ggggg', 'GGGG', 'GGGGG'], + function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + } +); + +addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); +}); + +// MOMENTS + +export function getSetWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy + ); +} + +export function getSetISOWeekYear(input) { + return getSetWeekYearHelper.call( + this, + input, + this.isoWeek(), + this.isoWeekday(), + 1, + 4 + ); +} + +export function getISOWeeksInYear() { + return weeksInYear(this.year(), 1, 4); +} + +export function getISOWeeksInISOWeekYear() { + return weeksInYear(this.isoWeekYear(), 1, 4); +} + +export function getWeeksInYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); +} + +export function getWeeksInWeekYear() { + var weekInfo = this.localeData()._week; + return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); +} + +function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } +} + +function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; +} diff --git a/node_modules/moment/src/lib/units/week.js b/node_modules/moment/src/lib/units/week.js new file mode 100644 index 0000000..e6b7b55 --- /dev/null +++ b/node_modules/moment/src/lib/units/week.js @@ -0,0 +1,69 @@ +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { addRegexToken, match1to2, match2 } from '../parse/regex'; +import { addWeekParseToken } from '../parse/token'; +import toInt from '../utils/to-int'; +import { weekOfYear } from './week-calendar-utils'; + +// FORMATTING + +addFormatToken('w', ['ww', 2], 'wo', 'week'); +addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + +// ALIASES + +addUnitAlias('week', 'w'); +addUnitAlias('isoWeek', 'W'); + +// PRIORITIES + +addUnitPriority('week', 5); +addUnitPriority('isoWeek', 5); + +// PARSING + +addRegexToken('w', match1to2); +addRegexToken('ww', match1to2, match2); +addRegexToken('W', match1to2); +addRegexToken('WW', match1to2, match2); + +addWeekParseToken( + ['w', 'ww', 'W', 'WW'], + function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + } +); + +// HELPERS + +// LOCALES + +export function localeWeek(mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; +} + +export var defaultLocaleWeek = { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. +}; + +export function localeFirstDayOfWeek() { + return this._week.dow; +} + +export function localeFirstDayOfYear() { + return this._week.doy; +} + +// MOMENTS + +export function getSetWeek(input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); +} + +export function getSetISOWeek(input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); +} diff --git a/node_modules/moment/src/lib/units/year.js b/node_modules/moment/src/lib/units/year.js new file mode 100644 index 0000000..027d6bf --- /dev/null +++ b/node_modules/moment/src/lib/units/year.js @@ -0,0 +1,85 @@ +import { makeGetSet } from '../moment/get-set'; +import { addFormatToken } from '../format/format'; +import { addUnitAlias } from './aliases'; +import { addUnitPriority } from './priorities'; +import { + addRegexToken, + match1to2, + match1to4, + match1to6, + match2, + match4, + match6, + matchSigned, +} from '../parse/regex'; +import { addParseToken } from '../parse/token'; +import { isLeapYear } from '../utils/is-leap-year'; +import { hooks } from '../utils/hooks'; +import { YEAR } from './constants'; +import toInt from '../utils/to-int'; +import zeroFill from '../utils/zero-fill'; + +// FORMATTING + +addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? zeroFill(y, 4) : '+' + y; +}); + +addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; +}); + +addFormatToken(0, ['YYYY', 4], 0, 'year'); +addFormatToken(0, ['YYYYY', 5], 0, 'year'); +addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + +// ALIASES + +addUnitAlias('year', 'y'); + +// PRIORITIES + +addUnitPriority('year', 1); + +// PARSING + +addRegexToken('Y', matchSigned); +addRegexToken('YY', match1to2, match2); +addRegexToken('YYYY', match1to4, match4); +addRegexToken('YYYYY', match1to6, match6); +addRegexToken('YYYYYY', match1to6, match6); + +addParseToken(['YYYYY', 'YYYYYY'], YEAR); +addParseToken('YYYY', function (input, array) { + array[YEAR] = + input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); +}); +addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); +}); +addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); +}); + +// HELPERS + +export function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; +} + +export { isLeapYear }; + +// HOOKS + +hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); +}; + +// MOMENTS + +export var getSetYear = makeGetSet('FullYear', true); + +export function getIsLeapYear() { + return isLeapYear(this.year()); +} diff --git a/node_modules/moment/src/lib/utils/abs-ceil.js b/node_modules/moment/src/lib/utils/abs-ceil.js new file mode 100644 index 0000000..e4c7bc2 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-ceil.js @@ -0,0 +1,7 @@ +export default function absCeil(number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } +} diff --git a/node_modules/moment/src/lib/utils/abs-floor.js b/node_modules/moment/src/lib/utils/abs-floor.js new file mode 100644 index 0000000..7c2ed24 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-floor.js @@ -0,0 +1,8 @@ +export default function absFloor(number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } +} diff --git a/node_modules/moment/src/lib/utils/abs-round.js b/node_modules/moment/src/lib/utils/abs-round.js new file mode 100644 index 0000000..175fea2 --- /dev/null +++ b/node_modules/moment/src/lib/utils/abs-round.js @@ -0,0 +1,7 @@ +export default function absRound(number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } +} diff --git a/node_modules/moment/src/lib/utils/compare-arrays.js b/node_modules/moment/src/lib/utils/compare-arrays.js new file mode 100644 index 0000000..3e37b53 --- /dev/null +++ b/node_modules/moment/src/lib/utils/compare-arrays.js @@ -0,0 +1,18 @@ +import toInt from './to-int'; + +// compare two arrays, return the number of differences +export default function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ( + (dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) + ) { + diffs++; + } + } + return diffs + lengthDiff; +} diff --git a/node_modules/moment/src/lib/utils/defaults.js b/node_modules/moment/src/lib/utils/defaults.js new file mode 100644 index 0000000..45c5e87 --- /dev/null +++ b/node_modules/moment/src/lib/utils/defaults.js @@ -0,0 +1,10 @@ +// Pick the first defined of two or three arguments. +export default function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; +} diff --git a/node_modules/moment/src/lib/utils/deprecate.js b/node_modules/moment/src/lib/utils/deprecate.js new file mode 100644 index 0000000..6f28236 --- /dev/null +++ b/node_modules/moment/src/lib/utils/deprecate.js @@ -0,0 +1,69 @@ +import extend from './extend'; +import { hooks } from './hooks'; +import hasOwnProp from './has-own-prop'; + +function warn(msg) { + if ( + hooks.suppressDeprecationWarnings === false && + typeof console !== 'undefined' && + console.warn + ) { + console.warn('Deprecation warning: ' + msg); + } +} + +export function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = [], + arg, + i, + key, + argLen = arguments.length; + for (i = 0; i < argLen; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (key in arguments[0]) { + if (hasOwnProp(arguments[0], key)) { + arg += key + ': ' + arguments[0][key] + ', '; + } + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn( + msg + + '\nArguments: ' + + Array.prototype.slice.call(args).join('') + + '\n' + + new Error().stack + ); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); +} + +var deprecations = {}; + +export function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } +} + +hooks.suppressDeprecationWarnings = false; +hooks.deprecationHandler = null; diff --git a/node_modules/moment/src/lib/utils/extend.js b/node_modules/moment/src/lib/utils/extend.js new file mode 100644 index 0000000..ba74a0b --- /dev/null +++ b/node_modules/moment/src/lib/utils/extend.js @@ -0,0 +1,19 @@ +import hasOwnProp from './has-own-prop'; + +export default function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; +} diff --git a/node_modules/moment/src/lib/utils/has-own-prop.js b/node_modules/moment/src/lib/utils/has-own-prop.js new file mode 100644 index 0000000..4d2403c --- /dev/null +++ b/node_modules/moment/src/lib/utils/has-own-prop.js @@ -0,0 +1,3 @@ +export default function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); +} diff --git a/node_modules/moment/src/lib/utils/hooks.js b/node_modules/moment/src/lib/utils/hooks.js new file mode 100644 index 0000000..2e86836 --- /dev/null +++ b/node_modules/moment/src/lib/utils/hooks.js @@ -0,0 +1,13 @@ +export { hooks, setHookCallback }; + +var hookCallback; + +function hooks() { + return hookCallback.apply(null, arguments); +} + +// This is done to register the method called with moment() +// without creating circular dependencies. +function setHookCallback(callback) { + hookCallback = callback; +} diff --git a/node_modules/moment/src/lib/utils/index-of.js b/node_modules/moment/src/lib/utils/index-of.js new file mode 100644 index 0000000..92298cf --- /dev/null +++ b/node_modules/moment/src/lib/utils/index-of.js @@ -0,0 +1,18 @@ +var indexOf; + +if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; +} else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; +} + +export { indexOf as default }; diff --git a/node_modules/moment/src/lib/utils/is-array.js b/node_modules/moment/src/lib/utils/is-array.js new file mode 100644 index 0000000..d57c875 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-array.js @@ -0,0 +1,6 @@ +export default function isArray(input) { + return ( + input instanceof Array || + Object.prototype.toString.call(input) === '[object Array]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-calendar-spec.js b/node_modules/moment/src/lib/utils/is-calendar-spec.js new file mode 100644 index 0000000..e8b6d38 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-calendar-spec.js @@ -0,0 +1,25 @@ +import isObjectEmpty from './is-object-empty'; +import hasOwnProp from './has-own-prop'; +import isObject from './is-object'; + +export default function isCalendarSpec(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'sameDay', + 'nextDay', + 'lastDay', + 'nextWeek', + 'lastWeek', + 'sameElse', + ], + i, + property; + + for (i = 0; i < properties.length; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} diff --git a/node_modules/moment/src/lib/utils/is-date.js b/node_modules/moment/src/lib/utils/is-date.js new file mode 100644 index 0000000..378924b --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-date.js @@ -0,0 +1,6 @@ +export default function isDate(input) { + return ( + input instanceof Date || + Object.prototype.toString.call(input) === '[object Date]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-function.js b/node_modules/moment/src/lib/utils/is-function.js new file mode 100644 index 0000000..4549686 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-function.js @@ -0,0 +1,6 @@ +export default function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-leap-year.js b/node_modules/moment/src/lib/utils/is-leap-year.js new file mode 100644 index 0000000..e399d93 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-leap-year.js @@ -0,0 +1,3 @@ +export function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +} diff --git a/node_modules/moment/src/lib/utils/is-moment-input.js b/node_modules/moment/src/lib/utils/is-moment-input.js new file mode 100644 index 0000000..7543bde --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-moment-input.js @@ -0,0 +1,75 @@ +import isObjectEmpty from './is-object-empty'; +import hasOwnProp from './has-own-prop'; +import isObject from './is-object'; +import isDate from './is-date'; +import isNumber from './is-number'; +import isString from './is-string'; +import { isMoment } from '../moment/constructor'; +import isArray from './is-array'; + +// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined +export function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); +} + +export function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; +} diff --git a/node_modules/moment/src/lib/utils/is-number.js b/node_modules/moment/src/lib/utils/is-number.js new file mode 100644 index 0000000..4a73753 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-number.js @@ -0,0 +1,6 @@ +export default function isNumber(input) { + return ( + typeof input === 'number' || + Object.prototype.toString.call(input) === '[object Number]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-object-empty.js b/node_modules/moment/src/lib/utils/is-object-empty.js new file mode 100644 index 0000000..62f4e69 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-object-empty.js @@ -0,0 +1,15 @@ +import hasOwnProp from './has-own-prop'; + +export default function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return Object.getOwnPropertyNames(obj).length === 0; + } else { + var k; + for (k in obj) { + if (hasOwnProp(obj, k)) { + return false; + } + } + return true; + } +} diff --git a/node_modules/moment/src/lib/utils/is-object.js b/node_modules/moment/src/lib/utils/is-object.js new file mode 100644 index 0000000..a1b2d42 --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-object.js @@ -0,0 +1,8 @@ +export default function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return ( + input != null && + Object.prototype.toString.call(input) === '[object Object]' + ); +} diff --git a/node_modules/moment/src/lib/utils/is-string.js b/node_modules/moment/src/lib/utils/is-string.js new file mode 100644 index 0000000..34b8dcc --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-string.js @@ -0,0 +1,3 @@ +export default function isString(input) { + return typeof input === 'string' || input instanceof String; +} diff --git a/node_modules/moment/src/lib/utils/is-undefined.js b/node_modules/moment/src/lib/utils/is-undefined.js new file mode 100644 index 0000000..de57a8b --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-undefined.js @@ -0,0 +1,3 @@ +export default function isUndefined(input) { + return input === void 0; +} diff --git a/node_modules/moment/src/lib/utils/keys.js b/node_modules/moment/src/lib/utils/keys.js new file mode 100644 index 0000000..1996e64 --- /dev/null +++ b/node_modules/moment/src/lib/utils/keys.js @@ -0,0 +1,20 @@ +import hasOwnProp from './has-own-prop'; + +var keys; + +if (Object.keys) { + keys = Object.keys; +} else { + keys = function (obj) { + var i, + res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; +} + +export { keys as default }; diff --git a/node_modules/moment/src/lib/utils/map.js b/node_modules/moment/src/lib/utils/map.js new file mode 100644 index 0000000..14245fe --- /dev/null +++ b/node_modules/moment/src/lib/utils/map.js @@ -0,0 +1,9 @@ +export default function map(arr, fn) { + var res = [], + i, + arrLen = arr.length; + for (i = 0; i < arrLen; ++i) { + res.push(fn(arr[i], i)); + } + return res; +} diff --git a/node_modules/moment/src/lib/utils/mod.js b/node_modules/moment/src/lib/utils/mod.js new file mode 100644 index 0000000..8046cda --- /dev/null +++ b/node_modules/moment/src/lib/utils/mod.js @@ -0,0 +1,3 @@ +export default function mod(n, x) { + return ((n % x) + x) % x; +} diff --git a/node_modules/moment/src/lib/utils/some.js b/node_modules/moment/src/lib/utils/some.js new file mode 100644 index 0000000..7c0dd39 --- /dev/null +++ b/node_modules/moment/src/lib/utils/some.js @@ -0,0 +1,20 @@ +var some; +if (Array.prototype.some) { + some = Array.prototype.some; +} else { + some = function (fun) { + var t = Object(this), + len = t.length >>> 0, + i; + + for (i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; +} + +export { some as default }; diff --git a/node_modules/moment/src/lib/utils/to-int.js b/node_modules/moment/src/lib/utils/to-int.js new file mode 100644 index 0000000..fb48941 --- /dev/null +++ b/node_modules/moment/src/lib/utils/to-int.js @@ -0,0 +1,12 @@ +import absFloor from './abs-floor'; + +export default function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; +} diff --git a/node_modules/moment/src/lib/utils/zero-fill.js b/node_modules/moment/src/lib/utils/zero-fill.js new file mode 100644 index 0000000..e2d2f6e --- /dev/null +++ b/node_modules/moment/src/lib/utils/zero-fill.js @@ -0,0 +1,10 @@ +export default function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return ( + (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + + absNumber + ); +} diff --git a/node_modules/moment/src/locale/af.js b/node_modules/moment/src/locale/af.js new file mode 100644 index 0000000..374d853 --- /dev/null +++ b/node_modules/moment/src/locale/af.js @@ -0,0 +1,71 @@ +//! moment.js locale configuration +//! locale : Afrikaans [af] +//! author : Werner Mollentze : https://github.com/wernerm + +import moment from '../moment'; + +export default moment.defineLocale('af', { + months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split( + '_' + ), + weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM: function (input) { + return /^nm$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Vandag om] LT', + nextDay: '[M么re om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[Gister om] LT', + lastWeek: '[Laas] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oor %s', + past: '%s gelede', + s: "'n paar sekondes", + ss: '%d sekondes', + m: "'n minuut", + mm: '%d minute', + h: "'n uur", + hh: '%d ure', + d: "'n dag", + dd: '%d dae', + M: "'n maand", + MM: '%d maande', + y: "'n jaar", + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\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 + }, + week: { + dow: 1, // Maandag is die eerste dag van die week. + doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + }, +}); diff --git a/node_modules/moment/src/locale/ar-dz.js b/node_modules/moment/src/locale/ar-dz.js new file mode 100644 index 0000000..12687a6 --- /dev/null +++ b/node_modules/moment/src/locale/ar-dz.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Arabic (Algeria) [ar-dz] +//! author : Amine Roukh: https://github.com/Amine27 +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi +//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem + +import moment from '../moment'; + +var pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '噩丕賳賮賷', + '賮賷賮乇賷', + '賲丕乇爻', + '兀賮乇賷賱', + '賲丕賷', + '噩賵丕賳', + '噩賵賷賱賷丞', + '兀賵鬲', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar-dz', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday 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/node_modules/moment/src/locale/ar-kw.js b/node_modules/moment/src/locale/ar-kw.js new file mode 100644 index 0000000..c2b0f87 --- /dev/null +++ b/node_modules/moment/src/locale/ar-kw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Kuwait) [ar-kw] +//! author : Nusret Parlak: https://github.com/nusretparlak + +import moment from '../moment'; + +export default moment.defineLocale('ar-kw', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿鬲賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕鬲賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-ly.js b/node_modules/moment/src/locale/ar-ly.js new file mode 100644 index 0000000..a8d4056 --- /dev/null +++ b/node_modules/moment/src/locale/ar-ly.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Arabic (Libya) [ar-ly] +//! author : Ali Hmer: https://github.com/kikoanis + +import moment from '../moment'; + +var symbolMap = { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 0: '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar-ly', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-ma.js b/node_modules/moment/src/locale/ar-ma.js new file mode 100644 index 0000000..4010aa0 --- /dev/null +++ b/node_modules/moment/src/locale/ar-ma.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Arabic (Morocco) [ar-ma] +//! author : ElFadili Yassine : https://github.com/ElFadiliY +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('ar-ma', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷_賷賵賳賷賵_賷賵賱賷賵夭_睾卮鬲_卮鬲賳亘乇_兀賰鬲賵亘乇_賳賵賳亘乇_丿噩賳亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '丕丨丿_丕孬賳賷賳_孬賱丕孬丕亍_丕乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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/node_modules/moment/src/locale/ar-sa.js b/node_modules/moment/src/locale/ar-sa.js new file mode 100644 index 0000000..4505ea1 --- /dev/null +++ b/node_modules/moment/src/locale/ar-sa.js @@ -0,0 +1,105 @@ +//! moment.js locale configuration +//! locale : Arabic (Saudi Arabia) [ar-sa] +//! author : Suhail Alkowaileet : https://github.com/xsoh + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }; + +export default moment.defineLocale('ar-sa', { + months: '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '賷賳丕賷乇_賮亘乇丕賷乇_賲丕乇爻_兀亘乇賷賱_賲丕賷賵_賷賵賳賷賵_賷賵賱賷賵_兀睾爻胤爻_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ar-tn.js b/node_modules/moment/src/locale/ar-tn.js new file mode 100644 index 0000000..0f416ae --- /dev/null +++ b/node_modules/moment/src/locale/ar-tn.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Arabic (Tunisia) [ar-tn] +//! author : Nader Toukabri : https://github.com/naderio + +import moment from '../moment'; + +export default moment.defineLocale('ar-tn', { + months: '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + monthsShort: + '噩丕賳賮賷_賮賷賮乇賷_賲丕乇爻_兀賮乇賷賱_賲丕賷_噩賵丕賳_噩賵賷賱賷丞_兀賵鬲_爻亘鬲賲亘乇_兀賰鬲賵亘乇_賳賵賮賲亘乇_丿賷爻賲亘乇'.split( + '_' + ), + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賱賶 丕賱爻丕毓丞] LT', + nextDay: '[睾丿丕 毓賱賶 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賱賶 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賱賶 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賮賷 %s', + past: '賲賳匕 %s', + s: '孬賵丕賳', + ss: '%d 孬丕賳賷丞', + m: '丿賯賷賯丞', + mm: '%d 丿賯丕卅賯', + h: '爻丕毓丞', + hh: '%d 爻丕毓丕鬲', + d: '賷賵賲', + dd: '%d 兀賷丕賲', + M: '卮賴乇', + MM: '%d 兀卮賴乇', + y: '爻賳丞', + yy: '%d 爻賳賵丕鬲', + }, + 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/node_modules/moment/src/locale/ar.js b/node_modules/moment/src/locale/ar.js new file mode 100644 index 0000000..fb430b9 --- /dev/null +++ b/node_modules/moment/src/locale/ar.js @@ -0,0 +1,189 @@ +//! moment.js locale configuration +//! locale : Arabic [ar] +//! author : Abdel Said: https://github.com/abdelsaid +//! author : Ahmed Elkhatib +//! author : forabi https://github.com/forabi + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + pluralForm = function (n) { + return n === 0 + ? 0 + : n === 1 + ? 1 + : n === 2 + ? 2 + : n % 100 >= 3 && n % 100 <= 10 + ? 3 + : n % 100 >= 11 + ? 4 + : 5; + }, + plurals = { + s: [ + '兀賯賱 賲賳 孬丕賳賷丞', + '孬丕賳賷丞 賵丕丨丿丞', + ['孬丕賳賷鬲丕賳', '孬丕賳賷鬲賷賳'], + '%d 孬賵丕賳', + '%d 孬丕賳賷丞', + '%d 孬丕賳賷丞', + ], + m: [ + '兀賯賱 賲賳 丿賯賷賯丞', + '丿賯賷賯丞 賵丕丨丿丞', + ['丿賯賷賯鬲丕賳', '丿賯賷賯鬲賷賳'], + '%d 丿賯丕卅賯', + '%d 丿賯賷賯丞', + '%d 丿賯賷賯丞', + ], + h: [ + '兀賯賱 賲賳 爻丕毓丞', + '爻丕毓丞 賵丕丨丿丞', + ['爻丕毓鬲丕賳', '爻丕毓鬲賷賳'], + '%d 爻丕毓丕鬲', + '%d 爻丕毓丞', + '%d 爻丕毓丞', + ], + d: [ + '兀賯賱 賲賳 賷賵賲', + '賷賵賲 賵丕丨丿', + ['賷賵賲丕賳', '賷賵賲賷賳'], + '%d 兀賷丕賲', + '%d 賷賵賲賸丕', + '%d 賷賵賲', + ], + M: [ + '兀賯賱 賲賳 卮賴乇', + '卮賴乇 賵丕丨丿', + ['卮賴乇丕賳', '卮賴乇賷賳'], + '%d 兀卮賴乇', + '%d 卮賴乇丕', + '%d 卮賴乇', + ], + y: [ + '兀賯賱 賲賳 毓丕賲', + '毓丕賲 賵丕丨丿', + ['毓丕賲丕賳', '毓丕賲賷賳'], + '%d 兀毓賵丕賲', + '%d 毓丕賲賸丕', + '%d 毓丕賲', + ], + }, + pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, + months = [ + '賷賳丕賷乇', + '賮亘乇丕賷乇', + '賲丕乇爻', + '兀亘乇賷賱', + '賲丕賷賵', + '賷賵賳賷賵', + '賷賵賱賷賵', + '兀睾爻胤爻', + '爻亘鬲賲亘乇', + '兀賰鬲賵亘乇', + '賳賵賮賲亘乇', + '丿賷爻賲亘乇', + ]; + +export default moment.defineLocale('ar', { + months: months, + monthsShort: months, + weekdays: '丕賱兀丨丿_丕賱廿孬賳賷賳_丕賱孬賱丕孬丕亍_丕賱兀乇亘毓丕亍_丕賱禺賲賷爻_丕賱噩賲毓丞_丕賱爻亘鬲'.split('_'), + weekdaysShort: '兀丨丿_廿孬賳賷賳_孬賱丕孬丕亍_兀乇亘毓丕亍_禺賲賷爻_噩賲毓丞_爻亘鬲'.split('_'), + weekdaysMin: '丨_賳_孬_乇_禺_噩_爻'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/\u200FM/\u200FYYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /氐|賲/, + isPM: function (input) { + return '賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐'; + } else { + return '賲'; + } + }, + calendar: { + sameDay: '[丕賱賷賵賲 毓賳丿 丕賱爻丕毓丞] LT', + nextDay: '[睾丿賸丕 毓賳丿 丕賱爻丕毓丞] LT', + nextWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + lastDay: '[兀賲爻 毓賳丿 丕賱爻丕毓丞] LT', + lastWeek: 'dddd [毓賳丿 丕賱爻丕毓丞] LT', + sameElse: 'L', + }, + relativeTime: { + future: '亘毓丿 %s', + past: '賲賳匕 %s', + s: pluralize('s'), + ss: pluralize('s'), + m: pluralize('m'), + mm: pluralize('m'), + h: pluralize('h'), + hh: pluralize('h'), + d: pluralize('d'), + dd: pluralize('d'), + M: pluralize('M'), + MM: pluralize('M'), + y: pluralize('y'), + yy: pluralize('y'), + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/az.js b/node_modules/moment/src/locale/az.js new file mode 100644 index 0000000..2e06aa1 --- /dev/null +++ b/node_modules/moment/src/locale/az.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Azerbaijani [az] +//! author : topchiyev : https://github.com/topchiyev + +import moment from '../moment'; + +var suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-眉nc眉', + 4: '-眉nc眉', + 100: '-眉nc眉', + 6: '-nc谋', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-谋nc谋', + 90: '-谋nc谋', +}; + +export default moment.defineLocale('az', { + months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split( + '_' + ), + monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays: + 'Bazar_Bazar ert蓹si_脟蓹r艧蓹nb蓹 ax艧am谋_脟蓹r艧蓹nb蓹_C眉m蓹 ax艧am谋_C眉m蓹_艦蓹nb蓹'.split( + '_' + ), + weekdaysShort: 'Baz_BzE_脟Ax_脟蓹r_CAx_C眉m_艦蓹n'.split('_'), + weekdaysMin: 'Bz_BE_脟A_脟蓹_CA_C眉_艦蓹'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[sabah saat] LT', + nextWeek: '[g蓹l蓹n h蓹ft蓹] dddd [saat] LT', + lastDay: '[d眉n蓹n] LT', + lastWeek: '[ke莽蓹n h蓹ft蓹] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 蓹vv蓹l', + s: 'bir ne莽蓹 saniy蓹', + ss: '%d saniy蓹', + m: 'bir d蓹qiq蓹', + mm: '%d d蓹qiq蓹', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir ay', + MM: '%d ay', + y: 'bir il', + yy: '%d il', + }, + meridiemParse: /gec蓹|s蓹h蓹r|g眉nd眉z|ax艧am/, + isPM: function (input) { + return /^(g眉nd眉z|ax艧am)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'gec蓹'; + } else if (hour < 12) { + return 's蓹h蓹r'; + } else if (hour < 17) { + return 'g眉nd眉z'; + } else { + return 'ax艧am'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(谋nc谋|inci|nci|眉nc眉|nc谋|uncu)/, + ordinal: function (number) { + if (number === 0) { + // special case for zero + return number + '-谋nc谋'; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/be.js b/node_modules/moment/src/locale/be.js new file mode 100644 index 0000000..4b4d1cb --- /dev/null +++ b/node_modules/moment/src/locale/be.js @@ -0,0 +1,142 @@ +//! moment.js locale configuration +//! locale : Belarusian [be] +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elens煤le : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁褨谢褨薪邪_褏胁褨谢褨薪褘_褏胁褨谢褨薪' : '褏胁褨谢褨薪褍_褏胁褨谢褨薪褘_褏胁褨谢褨薪', + hh: withoutSuffix ? '谐邪写蟹褨薪邪_谐邪写蟹褨薪褘_谐邪写蟹褨薪' : '谐邪写蟹褨薪褍_谐邪写蟹褨薪褘_谐邪写蟹褨薪', + dd: '写蟹械薪褜_写薪褨_写蟹褢薪', + MM: '屑械褋褟褑_屑械褋褟褑褘_屑械褋褟褑邪褳', + yy: '谐芯写_谐邪写褘_谐邪写芯褳', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁褨谢褨薪邪' : '褏胁褨谢褨薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐邪写蟹褨薪邪' : '谐邪写蟹褨薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} + +export default moment.defineLocale('be', { + months: { + format: '褋褌褍写蟹械薪褟_谢褞褌邪谐邪_褋邪泻邪胁褨泻邪_泻褉邪褋邪胁褨泻邪_褌褉邪褳薪褟_褔褝褉胁械薪褟_谢褨锌械薪褟_卸薪褨褳薪褟_胁械褉邪褋薪褟_泻邪褋褌褉褘褔薪褨泻邪_谢褨褋褌邪锌邪写邪_褋薪械卸薪褟'.split( + '_' + ), + standalone: + '褋褌褍写蟹械薪褜_谢褞褌褘_褋邪泻邪胁褨泻_泻褉邪褋邪胁褨泻_褌褉邪胁械薪褜_褔褝褉胁械薪褜_谢褨锌械薪褜_卸薪褨胁械薪褜_胁械褉邪褋械薪褜_泻邪褋褌褉褘褔薪褨泻_谢褨褋褌邪锌邪写_褋薪械卸邪薪褜'.split( + '_' + ), + }, + monthsShort: + '褋褌褍写_谢褞褌_褋邪泻_泻褉邪褋_褌褉邪胁_褔褝褉胁_谢褨锌_卸薪褨胁_胁械褉_泻邪褋褌_谢褨褋褌_褋薪械卸'.split('_'), + weekdays: { + format: '薪褟写蟹械谢褞_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写褍_褔邪褑胁械褉_锌褟褌薪褨褑褍_褋褍斜芯褌褍'.split( + '_' + ), + standalone: + '薪褟写蟹械谢褟_锌邪薪褟写蟹械谢邪泻_邪褳褌芯褉邪泻_褋械褉邪写邪_褔邪褑胁械褉_锌褟褌薪褨褑邪_褋褍斜芯褌邪'.split( + '_' + ), + isFormat: /\[ ?[校褍褳] ?(?:屑褨薪褍谢褍褞|薪邪褋褌褍锌薪褍褞)? ?\] ?dddd/, + }, + weekdaysShort: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_邪褌_褋褉_褔褑_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., HH:mm', + LLLL: 'dddd, D MMMM YYYY 谐., HH:mm', + }, + calendar: { + sameDay: '[小褢薪薪褟 褳] LT', + nextDay: '[袟邪褳褌褉邪 褳] LT', + lastDay: '[校褔芯褉邪 褳] LT', + nextWeek: function () { + return '[校] dddd [褳] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[校 屑褨薪褍谢褍褞] dddd [褳] LT'; + case 1: + case 2: + case 4: + return '[校 屑褨薪褍谢褘] dddd [褳] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '锌褉邪蟹 %s', + past: '%s 褌邪屑褍', + s: '薪械泻邪谢褜泻褨 褋械泻褍薪写', + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: relativeTimeWithPlural, + hh: relativeTimeWithPlural, + d: '写蟹械薪褜', + dd: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔褘|褉邪薪褨褑褘|写薪褟|胁械褔邪褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔邪褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褘'; + } else if (hour < 12) { + return '褉邪薪褨褑褘'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔邪褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褨|褘|谐邪)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && + number % 100 !== 12 && + number % 100 !== 13 + ? number + '-褨' + : number + '-褘'; + case 'D': + return number + '-谐邪'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bg.js b/node_modules/moment/src/locale/bg.js new file mode 100644 index 0000000..e8b060f --- /dev/null +++ b/node_modules/moment/src/locale/bg.js @@ -0,0 +1,87 @@ +//! moment.js locale configuration +//! locale : Bulgarian [bg] +//! author : Krasen Borisov : https://github.com/kraz + +import moment from '../moment'; + +export default moment.defineLocale('bg', { + months: '褟薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪泄_褞薪懈_褞谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褟薪褍_褎械胁_屑邪褉_邪锌褉_屑邪泄_褞薪懈_褞谢懈_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢褟_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉褟写邪_褔械褌胁褗褉褌褗泻_锌械褌褗泻_褋褗斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉褟_褔械褌_锌械褌_褋褗斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛薪械褋 胁] LT', + nextDay: '[校褌褉械 胁] LT', + nextWeek: 'dddd [胁] LT', + lastDay: '[袙褔械褉邪 胁] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袦懈薪邪谢邪褌邪] dddd [胁] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袦懈薪邪谢懈褟] dddd [胁] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '褋谢械写 %s', + past: '锌褉械写懈 %s', + s: '薪褟泻芯谢泻芯 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '褔邪褋', + hh: '%d 褔邪褋邪', + d: '写械薪', + dd: '%d 写械薪邪', + w: '褋械写屑懈褑邪', + ww: '%d 褋械写屑懈褑懈', + M: '屑械褋械褑', + MM: '%d 屑械褋械褑邪', + y: '谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bm.js b/node_modules/moment/src/locale/bm.js new file mode 100644 index 0000000..037d018 --- /dev/null +++ b/node_modules/moment/src/locale/bm.js @@ -0,0 +1,52 @@ +//! moment.js locale configuration +//! locale : Bambara [bm] +//! author : Estelle Comment : https://github.com/estellecomment +// Language contact person : Abdoufata Kane : https://github.com/abdoufata + +import moment from '../moment'; + +export default moment.defineLocale('bm', { + months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M蓻kalo_Zuw蓻nkalo_Zuluyekalo_Utikalo_S蓻tanburukalo_蓴kut蓴burukalo_Nowanburukalo_Desanburukalo'.split( + '_' + ), + monthsShort: 'Zan_Few_Mar_Awi_M蓻_Zuw_Zul_Uti_S蓻t_蓴ku_Now_Des'.split('_'), + weekdays: 'Kari_Nt蓻n蓻n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'), + weekdaysShort: 'Kar_Nt蓻_Tar_Ara_Ala_Jum_Sib'.split('_'), + weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'MMMM [tile] D [san] YYYY', + LLL: 'MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + LLLL: 'dddd MMMM [tile] D [san] YYYY [l蓻r蓻] HH:mm', + }, + calendar: { + sameDay: '[Bi l蓻r蓻] LT', + nextDay: '[Sini l蓻r蓻] LT', + nextWeek: 'dddd [don l蓻r蓻] LT', + lastDay: '[Kunu l蓻r蓻] LT', + lastWeek: 'dddd [t蓻m蓻nen l蓻r蓻] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s k蓴n蓴', + past: 'a b蓻 %s b蓴', + s: 'sanga dama dama', + ss: 'sekondi %d', + m: 'miniti kelen', + mm: 'miniti %d', + h: 'l蓻r蓻 kelen', + hh: 'l蓻r蓻 %d', + d: 'tile kelen', + dd: 'tile %d', + M: 'kalo kelen', + MM: 'kalo %d', + y: 'san kelen', + yy: 'san %d', + }, + 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/node_modules/moment/src/locale/bn-bd.js b/node_modules/moment/src/locale/bn-bd.js new file mode 100644 index 0000000..054f44f --- /dev/null +++ b/node_modules/moment/src/locale/bn-bd.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Bengali (Bangladesh) [bn-bd] +//! author : Asraf Hossain Patoary : https://github.com/ashwoolford + +import moment from '../moment'; + +var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + +export default moment.defineLocale('bn-bd', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + + meridiemParse: /唳班唳唳唳皘唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳膏Θ唰嵿Η唰嵿Ο唳緗唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '唳班唳') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '唳唳') { + return hour; + } else if (meridiem === '唳膏唳距Σ') { + return hour; + } else if (meridiem === '唳︵唳唳') { + return hour >= 3 ? hour : hour + 12; + } else if (meridiem === '唳唳曕唳') { + return hour + 12; + } else if (meridiem === '唳膏Θ唰嵿Η唰嵿Ο唳') { + return hour + 12; + } + }, + + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 6) { + return '唳唳'; + } else if (hour < 12) { + return '唳膏唳距Σ'; + } else if (hour < 15) { + return '唳︵唳唳'; + } else if (hour < 18) { + return '唳唳曕唳'; + } else if (hour < 20) { + return '唳膏Θ唰嵿Η唰嵿Ο唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bn.js b/node_modules/moment/src/locale/bn.js new file mode 100644 index 0000000..14ba050 --- /dev/null +++ b/node_modules/moment/src/locale/bn.js @@ -0,0 +1,119 @@ +//! moment.js locale configuration +//! locale : Bengali [bn] +//! author : Kaushik Gandhi : https://github.com/kaushikgandhi + +import moment from '../moment'; + +var symbolMap = { + 1: '唰', + 2: '唰', + 3: '唰', + 4: '唰', + 5: '唰', + 6: '唰', + 7: '唰', + 8: '唰', + 9: '唰', + 0: '唰', + }, + numberMap = { + '唰': '1', + '唰': '2', + '唰': '3', + '唰': '4', + '唰': '5', + '唰': '6', + '唰': '7', + '唰': '8', + '唰': '9', + '唰': '0', + }; + +export default moment.defineLocale('bn', { + months: '唳溹唳ㄠ唰熰唳班_唳唳唳班唰熰唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳熰唳唳Π_唳呧唰嵿唰嬥Μ唳癬唳ㄠΝ唰囙Ξ唰嵿Μ唳癬唳∴唳膏唳唳Π'.split( + '_' + ), + monthsShort: + '唳溹唳ㄠ_唳唳唳班_唳唳班唳歘唳忇Κ唰嵿Π唳苦Σ_唳_唳溹唳╛唳溹唳侧唳嘷唳嗋唳膏唳焈唳膏唳唳焈唳呧唰嵿唰媉唳ㄠΝ唰嘷唳∴唳膏'.split( + '_' + ), + weekdays: '唳班Μ唳苦Μ唳距Π_唳膏唳Μ唳距Π_唳唰嵿唳侧Μ唳距Π_唳唳оΜ唳距Π_唳唳灌Ω唰嵿Κ唳む唳唳癬唳多唳曕唳班Μ唳距Π_唳多Θ唳苦Μ唳距Π'.split( + '_' + ), + weekdaysShort: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳灌Ω唰嵿Κ唳む_唳多唳曕唳癬唳多Θ唳'.split('_'), + weekdaysMin: '唳班Μ唳縚唳膏唳甠唳唰嵿唳瞋唳唳唳唳筥唳多唳曕唳癬唳多Θ唳'.split('_'), + longDateFormat: { + LT: 'A h:mm 唳膏Ξ唰', + LTS: 'A h:mm:ss 唳膏Ξ唰', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 唳膏Ξ唰', + LLLL: 'dddd, D MMMM YYYY, A h:mm 唳膏Ξ唰', + }, + calendar: { + sameDay: '[唳嗋] LT', + nextDay: '[唳嗋唳距Ξ唰唳曕唳瞉 LT', + nextWeek: 'dddd, LT', + lastDay: '[唳椸Δ唳曕唳瞉 LT', + lastWeek: '[唳椸Δ] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 唳Π唰', + past: '%s 唳嗋唰', + s: '唳曕唰囙 唳膏唳曕唳ㄠ唳', + ss: '%d 唳膏唳曕唳ㄠ唳', + m: '唳忇 唳唳ㄠ唳', + mm: '%d 唳唳ㄠ唳', + h: '唳忇 唳樴Θ唰嵿唳', + hh: '%d 唳樴Θ唰嵿唳', + d: '唳忇 唳︵唳', + dd: '%d 唳︵唳', + M: '唳忇 唳唳', + MM: '%d 唳唳', + y: '唳忇 唳唳', + yy: '%d 唳唳', + }, + preparse: function (string) { + return string.replace(/[唰оЖ唰┼И唰К唰М唰Е]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /唳班唳唳膏唳距Σ|唳︵唳唳皘唳唳曕唳瞸唳班唳/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '唳班唳' && hour >= 4) || + (meridiem === '唳︵唳唳' && hour < 5) || + meridiem === '唳唳曕唳' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '唳班唳'; + } else if (hour < 10) { + return '唳膏唳距Σ'; + } else if (hour < 17) { + return '唳︵唳唳'; + } else if (hour < 20) { + return '唳唳曕唳'; + } else { + return '唳班唳'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/bo.js b/node_modules/moment/src/locale/bo.js new file mode 100644 index 0000000..4fbca2e --- /dev/null +++ b/node_modules/moment/src/locale/bo.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Tibetan [bo] +//! author : Thupten N. Chakrishar : https://github.com/vajradog + +import moment from '../moment'; + +var symbolMap = { + 1: '嗉', + 2: '嗉', + 3: '嗉', + 4: '嗉', + 5: '嗉', + 6: '嗉', + 7: '嗉', + 8: '嗉', + 9: '嗉', + 0: '嗉', + }, + numberMap = { + '嗉': '1', + '嗉': '2', + '嗉': '3', + '嗉': '4', + '嗉': '5', + '嗉': '6', + '嗉': '7', + '嗉': '8', + '嗉': '9', + '嗉': '0', + }; + +export default moment.defineLocale('bo', { + months: '嘟熰境嗉嬥綎嗉嬥綉嘟勦紜嘟斷郊_嘟熰境嗉嬥綎嗉嬥絺嘟夃讲嘟︵紜嘟擾嘟熰境嗉嬥綎嗉嬥絺嘟︵酱嘟樴紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟炧讲嗉嬥綌_嘟熰境嗉嬥綎嗉嬥剑嗑斷紜嘟擾嘟熰境嗉嬥綎嗉嬥綉嗑侧酱嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟戉酱嘟撪紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟⑧緬嗑编綉嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綉嘟傕酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥綌_嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟呧讲嘟傕紜嘟擾嘟熰境嗉嬥綎嗉嬥綎嘟呧酱嗉嬥絺嘟夃讲嘟︵紜嘟'.split( + '_' + ), + monthsShort: + '嘟熰境嗉1_嘟熰境嗉2_嘟熰境嗉3_嘟熰境嗉4_嘟熰境嗉5_嘟熰境嗉6_嘟熰境嗉7_嘟熰境嗉8_嘟熰境嗉9_嘟熰境嗉10_嘟熰境嗉11_嘟熰境嗉12'.split( + '_' + ), + monthsShortRegex: /^(嘟熰境嗉媆d{1,2})/, + monthsParseExact: true, + weekdays: + '嘟傕綗嘟犩紜嘟夃讲嗉嬥綐嗉媉嘟傕綗嘟犩紜嘟熰境嗉嬥綎嗉媉嘟傕綗嘟犩紜嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟傕綗嘟犩紜嘟`痉嘟傕紜嘟斷紜_嘟傕綗嘟犩紜嘟曕酱嘟⑧紜嘟栢酱_嘟傕綗嘟犩紜嘟斷紜嘟︵絼嘟︵紜_嘟傕綗嘟犩紜嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysShort: '嘟夃讲嗉嬥綐嗉媉嘟熰境嗉嬥綎嗉媉嘟樴讲嘟傕紜嘟戉綐嘟⑧紜_嘟`痉嘟傕紜嘟斷紜_嘟曕酱嘟⑧紜嘟栢酱_嘟斷紜嘟︵絼嘟︵紜_嘟︵兢嘟亨綋嗉嬥綌嗉'.split( + '_' + ), + weekdaysMin: '嘟夃讲_嘟熰境_嘟樴讲嘟俖嘟`痉嘟俖嘟曕酱嘟嘟︵絼嘟嘟︵兢嘟亨綋'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嘟戉讲嗉嬥舰嘟侧絼] LT', + nextDay: '[嘟︵絼嗉嬥綁嘟侧綋] LT', + nextWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥舰嗑椸胶嘟︵紜嘟榏, LT', + lastDay: '[嘟佮紜嘟︵絼] LT', + lastWeek: '[嘟栢綉嘟脆綋嗉嬥綍嗑侧絺嗉嬥綐嘟愢綘嗉嬥綐] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嘟`紜', + past: '%s 嘟︵緮嘟撪紜嘟', + s: '嘟`綐嗉嬥溅嘟', + ss: '%d 嘟︵緪嘟⑧紜嘟嗋紞', + m: '嘟︵緪嘟⑧紜嘟樴紜嘟傕絽嘟侧絺', + mm: '%d 嘟︵緪嘟⑧紜嘟', + h: '嘟嗋酱嗉嬥綒嘟监綉嗉嬥絺嘟呧讲嘟', + hh: '%d 嘟嗋酱嗉嬥綒嘟监綉', + d: '嘟夃讲嘟撪紜嘟傕絽嘟侧絺', + dd: '%d 嘟夃讲嘟撪紜', + M: '嘟熰境嗉嬥綎嗉嬥絺嘟呧讲嘟', + MM: '%d 嘟熰境嗉嬥綎', + y: '嘟`郊嗉嬥絺嘟呧讲嘟', + yy: '%d 嘟`郊', + }, + preparse: function (string) { + return string.replace(/[嗉∴饥嗉`激嗉ム鸡嗉о绩嗉┼紶]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嘟樴綒嘟撪紜嘟樴郊|嘟炧郊嘟傕溅嗉嬥絸嘟嘟夃讲嘟撪紜嘟傕酱嘟剕嘟戉絺嘟监絼嗉嬥綉嘟倈嘟樴綒嘟撪紜嘟樴郊/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '嘟樴綒嘟撪紜嘟樴郊' && hour >= 4) || + (meridiem === '嘟夃讲嘟撪紜嘟傕酱嘟' && hour < 5) || + meridiem === '嘟戉絺嘟监絼嗉嬥綉嘟' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嘟樴綒嘟撪紜嘟樴郊'; + } else if (hour < 10) { + return '嘟炧郊嘟傕溅嗉嬥絸嘟'; + } else if (hour < 17) { + return '嘟夃讲嘟撪紜嘟傕酱嘟'; + } else if (hour < 20) { + return '嘟戉絺嘟监絼嗉嬥綉嘟'; + } else { + return '嘟樴綒嘟撪紜嘟樴郊'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/br.js b/node_modules/moment/src/locale/br.js new file mode 100644 index 0000000..a7dda49 --- /dev/null +++ b/node_modules/moment/src/locale/br.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Breton [br] +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + +import moment from '../moment'; + +function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + mm: 'munutenn', + MM: 'miz', + dd: 'devezh', + }; + return number + ' ' + mutation(format[key], number); +} +function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } +} +function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; +} +function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; +} +function softMutation(text) { + var mutationTable = { + m: 'v', + b: 'v', + d: 'z', + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); +} + +var monthsParse = [ + /^gen/i, + /^c[始\']hwe/i, + /^meu/i, + /^ebr/i, + /^mae/i, + /^(mez|eve)/i, + /^gou/i, + /^eos/i, + /^gwe/i, + /^her/i, + /^du/i, + /^ker/i, + ], + monthsRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + monthsStrictRegex = + /^(genver|c[始\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, + monthsShortStrictRegex = + /^(gen|c[始\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, + fullWeekdaysParse = [ + /^sul/i, + /^lun/i, + /^meurzh/i, + /^merc[始\']her/i, + /^yaou/i, + /^gwener/i, + /^sadorn/i, + ], + shortWeekdaysParse = [ + /^Sul/i, + /^Lun/i, + /^Meu/i, + /^Mer/i, + /^Yao/i, + /^Gwe/i, + /^Sad/i, + ], + minWeekdaysParse = [ + /^Su/i, + /^Lu/i, + /^Me([^r]|$)/i, + /^Mer/i, + /^Ya/i, + /^Gw/i, + /^Sa/i, + ]; + +export default moment.defineLocale('br', { + months: 'Genver_C始hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split( + '_' + ), + monthsShort: 'Gen_C始hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays: 'Sul_Lun_Meurzh_Merc始her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + weekdaysParse: minWeekdaysParse, + fullWeekdaysParse: fullWeekdaysParse, + shortWeekdaysParse: shortWeekdaysParse, + minWeekdaysParse: minWeekdaysParse, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [a viz] MMMM YYYY', + LLL: 'D [a viz] MMMM YYYY HH:mm', + LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Hiziv da] LT', + nextDay: '[Warc始hoazh da] LT', + nextWeek: 'dddd [da] LT', + lastDay: '[Dec始h da] LT', + lastWeek: 'dddd [paset da] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'a-benn %s', + past: '%s 始zo', + s: 'un nebeud segondenno霉', + ss: '%d eilenn', + m: 'ur vunutenn', + mm: relativeTimeWithMutation, + h: 'un eur', + hh: '%d eur', + d: 'un devezh', + dd: relativeTimeWithMutation, + M: 'ur miz', + MM: relativeTimeWithMutation, + y: 'ur bloaz', + yy: specialMutationForYears, + }, + dayOfMonthOrdinalParse: /\d{1,2}(a帽|vet)/, + ordinal: function (number) { + var output = number === 1 ? 'a帽' : 'vet'; + 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. + }, + meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn + isPM: function (token) { + return token === 'g.m.'; + }, + meridiem: function (hour, minute, isLower) { + return hour < 12 ? 'a.m.' : 'g.m.'; + }, +}); diff --git a/node_modules/moment/src/locale/bs.js b/node_modules/moment/src/locale/bs.js new file mode 100644 index 0000000..3d62945 --- /dev/null +++ b/node_modules/moment/src/locale/bs.js @@ -0,0 +1,150 @@ +//! moment.js locale configuration +//! locale : Bosnian [bs] +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Markovi膰 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('bs', { + 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( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + return '[pro拧lu] dddd [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ca.js b/node_modules/moment/src/locale/ca.js new file mode 100644 index 0000000..0fe9da4 --- /dev/null +++ b/node_modules/moment/src/locale/ca.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Catalan [ca] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('ca', { + months: { + standalone: + 'gener_febrer_mar莽_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split( + '_' + ), + format: "de gener_de febrer_de mar莽_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._maig_juny_jul._ag._set._oct._nov._des.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a les] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: function () { + return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextDay: function () { + return '[dem脿 a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastDay: function () { + return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [passat a ' + + (this.hours() !== 1 ? 'les' : 'la') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'uns segons', + ss: '%d segons', + m: 'un minut', + mm: '%d minuts', + h: 'una hora', + hh: '%d hores', + d: 'un dia', + dd: '%d dies', + M: 'un mes', + MM: '%d mesos', + y: 'un any', + yy: '%d anys', + }, + dayOfMonthOrdinalParse: /\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/node_modules/moment/src/locale/cs.js b/node_modules/moment/src/locale/cs.js new file mode 100644 index 0000000..7a98aba --- /dev/null +++ b/node_modules/moment/src/locale/cs.js @@ -0,0 +1,180 @@ +//! moment.js locale configuration +//! locale : Czech [cs] +//! author : petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = { + format: 'leden_煤nor_b艡ezen_duben_kv臎ten_膷erven_膷ervenec_srpen_z谩艡铆_艡铆jen_listopad_prosinec'.split( + '_' + ), + standalone: + 'ledna_煤nora_b艡ezna_dubna_kv臎tna_膷ervna_膷ervence_srpna_z谩艡铆_艡铆jna_listopadu_prosince'.split( + '_' + ), + }, + monthsShort = 'led_煤no_b艡e_dub_kv臎_膷vn_膷vc_srp_z谩艡_艡铆j_lis_pro'.split('_'), + monthsParse = [ + /^led/i, + /^煤no/i, + /^b艡e/i, + /^dub/i, + /^kv臎/i, + /^(膷vn|膷erven$|膷ervna)/i, + /^(膷vc|膷ervenec|膷ervence)/i, + /^srp/i, + /^z谩艡/i, + /^艡铆j/i, + /^lis/i, + /^pro/i, + ], + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsRegex = + /^(leden|煤nor|b艡ezen|duben|kv臎ten|膷ervenec|膷ervence|膷erven|膷ervna|srpen|z谩艡铆|艡铆jen|listopad|prosinec|led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i; + +function plural(n) { + return n > 1 && n < 5 && ~~(n / 10) !== 1; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sekund' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sekund'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dny' : 'dn铆'); + } else { + return result + 'dny'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'm臎s铆c' : 'm臎s铆cem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'm臎s铆ce' : 'm臎s铆c暖'); + } else { + return result + 'm臎s铆ci'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + } +} + +export default moment.defineLocale('cs', { + months: months, + monthsShort: monthsShort, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + // NOTE: '膷erven' is substring of '膷ervenec'; therefore '膷ervenec' must precede '膷erven' in the regex to be fully matched. + // Otherwise parser matches '1. 膷ervenec' as '1. 膷erven' + 'ec'. + monthsStrictRegex: + /^(leden|ledna|煤nora|煤nor|b艡ezen|b艡ezna|duben|dubna|kv臎ten|kv臎tna|膷ervenec|膷ervence|膷erven|膷ervna|srpen|srpna|z谩艡铆|艡铆jen|艡铆jna|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: + /^(led|煤no|b艡e|dub|kv臎|膷vn|膷vc|srp|z谩艡|艡铆j|lis|pro)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'ned臎le_pond臎l铆_煤ter媒_st艡eda_膷tvrtek_p谩tek_sobota'.split('_'), + weekdaysShort: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + weekdaysMin: 'ne_po_煤t_st_膷t_p谩_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + l: 'D. M. YYYY', + }, + calendar: { + sameDay: '[dnes v] LT', + nextDay: '[z铆tra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v ned臎li v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve st艡edu v] LT'; + case 4: + return '[ve 膷tvrtek v] LT'; + case 5: + return '[v p谩tek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[v膷era v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou ned臎li v] LT'; + case 1: + case 2: + return '[minul茅] dddd [v] LT'; + case 3: + return '[minulou st艡edu v] LT'; + case 4: + case 5: + return '[minul媒] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'p艡ed %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/cv.js b/node_modules/moment/src/locale/cv.js new file mode 100644 index 0000000..f349157 --- /dev/null +++ b/node_modules/moment/src/locale/cv.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Chuvash [cv] +//! author : Anatoly Mironov : https://github.com/mirontoli + +import moment from '../moment'; + +export default moment.defineLocale('cv', { + months: '泻討褉谢邪褔_薪邪褉討褋_锌褍褕_邪泻邪_屑邪泄_耀訔褉褌屑械_褍褌討_耀褍褉谢邪_邪胁討薪_褞锌邪_褔映泻_褉邪褕褌邪胁'.split( + '_' + ), + monthsShort: '泻討褉_薪邪褉_锌褍褕_邪泻邪_屑邪泄_耀訔褉_褍褌討_耀褍褉_邪胁薪_褞锌邪_褔映泻_褉邪褕'.split('_'), + weekdays: + '胁褘褉褋邪褉薪懈泻褍薪_褌褍薪褌懈泻褍薪_褘褌谢邪褉懈泻褍薪_褞薪泻褍薪_泻訔耀薪械褉薪懈泻褍薪_褝褉薪械泻褍薪_褕討屑邪褌泻褍薪'.split( + '_' + ), + weekdaysShort: '胁褘褉_褌褍薪_褘褌谢_褞薪_泻訔耀_褝褉薪_褕討屑'.split('_'), + weekdaysMin: '胁褉_褌薪_褘褌_褞薪_泻耀_褝褉_褕屑'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔]', + LLL: 'YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + LLLL: 'dddd, YYYY [耀褍谢褏懈] MMMM [褍泄討褏訔薪] D[-屑訔褕訔], HH:mm', + }, + calendar: { + sameDay: '[袩邪褟薪] LT [褋械褏械褌褉械]', + nextDay: '[蝎褉邪薪] LT [褋械褏械褌褉械]', + lastDay: '[訓薪械褉] LT [褋械褏械褌褉械]', + nextWeek: '[要懈褌械褋] dddd LT [褋械褏械褌褉械]', + lastWeek: '[袠褉褌薪訔] dddd LT [褋械褏械褌褉械]', + sameElse: 'L', + }, + relativeTime: { + future: function (output) { + var affix = /褋械褏械褌$/i.exec(output) + ? '褉械薪' + : /耀褍谢$/i.exec(output) + ? '褌邪薪' + : '褉邪薪'; + return output + affix; + }, + past: '%s 泻邪褟谢谢邪', + s: '锌訔褉-懈泻 耀械泻泻褍薪褌', + ss: '%d 耀械泻泻褍薪褌', + m: '锌訔褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '锌訔褉 褋械褏械褌', + hh: '%d 褋械褏械褌', + d: '锌訔褉 泻褍薪', + dd: '%d 泻褍薪', + M: '锌訔褉 褍泄討褏', + MM: '%d 褍泄討褏', + y: '锌訔褉 耀褍谢', + yy: '%d 耀褍谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-屑訔褕/, + ordinal: '%d-屑訔褕', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/cy.js b/node_modules/moment/src/locale/cy.js new file mode 100644 index 0000000..e12344a --- /dev/null +++ b/node_modules/moment/src/locale/cy.js @@ -0,0 +1,98 @@ +//! moment.js locale configuration +//! locale : Welsh [cy] +//! author : Robert Allen : https://github.com/robgallen +//! author : https://github.com/ryangreaves + +import moment from '../moment'; + +export default moment.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split( + '_' + ), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split( + '_' + ), + weekdays: + 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split( + '_' + ), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + weekdaysParseExact: true, + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn 么l', + s: 'ychydig eiliadau', + ss: '%d eiliad', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd', + }, + dayOfMonthOrdinalParse: /\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, + output = '', + lookup = [ + '', + 'af', + 'il', + 'ydd', + 'ydd', + 'ed', + 'ed', + 'ed', + 'fed', + 'fed', + 'fed', // 1af to 10fed + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'eg', + 'fed', + 'eg', + 'fed', // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + 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/node_modules/moment/src/locale/da.js b/node_modules/moment/src/locale/da.js new file mode 100644 index 0000000..d1fc181 --- /dev/null +++ b/node_modules/moment/src/locale/da.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Danish [da] +//! author : Ulrik Nielsen : https://github.com/mrbase + +import moment from '../moment'; + +export default moment.defineLocale('da', { + months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶n_man_tir_ons_tor_fre_l酶r'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'p氓 dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[i] dddd[s kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'f氓 sekunder', + ss: '%d sekunder', + m: 'et minut', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dage', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'et 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/de-at.js b/node_modules/moment/src/locale/de-at.js new file mode 100644 index 0000000..8318fec --- /dev/null +++ b/node_modules/moment/src/locale/de-at.js @@ -0,0 +1,79 @@ +//! moment.js locale configuration +//! locale : German (Austria) [de-at] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-at', { + months: 'J盲nner_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'J盲n._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/de-ch.js b/node_modules/moment/src/locale/de-ch.js new file mode 100644 index 0000000..4e67507 --- /dev/null +++ b/node_modules/moment/src/locale/de-ch.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German (Switzerland) [de-ch] +//! author : sschueller : https://github.com/sschueller + +// based on: https://www.bk.admin.ch/dokumentation/sprachen/04915/05016/index.html?lang=de# + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de-ch', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/de.js b/node_modules/moment/src/locale/de.js new file mode 100644 index 0000000..cb9c8d5 --- /dev/null +++ b/node_modules/moment/src/locale/de.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : German [de] +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elens煤le: https://github.com/Oire +//! author : Mikolaj Dadela : https://github.com/mik01aj + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eine Minute', 'einer Minute'], + h: ['eine Stunde', 'einer Stunde'], + d: ['ein Tag', 'einem Tag'], + dd: [number + ' Tage', number + ' Tagen'], + w: ['eine Woche', 'einer Woche'], + M: ['ein Monat', 'einem Monat'], + MM: [number + ' Monate', number + ' Monaten'], + y: ['ein Jahr', 'einem Jahr'], + yy: [number + ' Jahre', number + ' Jahren'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('de', { + months: 'Januar_Februar_M盲rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Feb._M盲rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: + 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split( + '_' + ), + weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY HH:mm', + LLLL: 'dddd, D. MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[heute um] LT [Uhr]', + sameElse: 'L', + 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', + past: 'vor %s', + s: 'ein paar Sekunden', + ss: '%d Sekunden', + m: processRelativeTime, + mm: '%d Minuten', + h: processRelativeTime, + hh: '%d Stunden', + d: processRelativeTime, + dd: processRelativeTime, + w: processRelativeTime, + ww: '%d Wochen', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/dv.js b/node_modules/moment/src/locale/dv.js new file mode 100644 index 0000000..26520d4 --- /dev/null +++ b/node_modules/moment/src/locale/dv.js @@ -0,0 +1,90 @@ +//! moment.js locale configuration +//! locale : Maldivian [dv] +//! author : Jawish Hameed : https://github.com/jawish + +import moment from '../moment'; + +var months = [ + '迻蕃迋蕺迖蕈迌蕞', + '迠蕃迍薨迌蕺迖蕈迌蕞', + '迚蕨迌蕤迼蕺', + '迖蕲迺薨迌蕞迧蕺', + '迚蕲', + '迻瞢迋薨', + '迻蕺迧蕈迖蕤', + '迖薤迬蕈迱薨迵蕺', + '迱蕃迺薨迵蕃迚薨迍蕈迌蕺', + '迖蕻迒薨迵薤迍蕈迌蕺', + '迋蕻迗蕃迚薨迍蕈迌蕺', + '迲蕤迱蕃迚薨迍蕈迌蕺', + ], + weekdays = [ + '迖蕨迡蕤迖薨迣蕈', + '迉薤迚蕈', + '迖蕈迋薨迬蕨迌蕈', + '迍蕺迡蕈', + '迍蕺迌蕨迱薨迠蕈迣蕤', + '迉蕺迒蕺迌蕺', + '迉蕻迋蕤迉蕤迌蕺', + ]; + +export default moment.defineLocale('dv', { + months: months, + monthsShort: months, + weekdays: weekdays, + weekdaysShort: weekdays, + weekdaysMin: '迖蕨迡蕤_迉薤迚蕈_迖蕈迋薨_迍蕺迡蕈_迍蕺迌蕨_迉蕺迒蕺_迉蕻迋蕤'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'D/M/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + meridiemParse: /迚迒|迚迠/, + isPM: function (input) { + return '迚迠' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '迚迒'; + } else { + return '迚迠'; + } + }, + calendar: { + sameDay: '[迚蕤迖蕈迡蕺] LT', + nextDay: '[迚蕨迡蕈迚蕨] LT', + nextWeek: 'dddd LT', + lastDay: '[迖蕤迖薨迶蕃] LT', + lastWeek: '[迠蕨迖蕤迣蕺迗蕤] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '迣蕃迌蕲迬蕈迖蕤 %s', + past: '迒蕺迌蕤迋薨 %s', + s: '迱蕤迒蕺迋薨迣蕺迒蕻迏蕃迖薨', + ss: 'd% 迱蕤迒蕺迋薨迣蕺', + m: '迚蕤迋蕤迵蕃迖薨', + mm: '迚蕤迋蕤迵蕺 %d', + h: '迬蕈迲蕤迖蕤迌蕃迖薨', + hh: '迬蕈迲蕤迖蕤迌蕺 %d', + d: '迡蕺迗蕈迉蕃迖薨', + dd: '迡蕺迗蕈迱薨 %d', + M: '迚蕈迉蕃迖薨', + MM: '迚蕈迱薨 %d', + y: '迖蕈迉蕈迌蕃迖薨', + yy: '迖蕈迉蕈迌蕺 %d', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + dow: 7, // Sunday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/el.js b/node_modules/moment/src/locale/el.js new file mode 100644 index 0000000..8a596f1 --- /dev/null +++ b/node_modules/moment/src/locale/el.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Greek [el] +//! author : Aggelos Karalias : https://github.com/mehiel + +import moment from '../moment'; + +function isFunction(input) { + return ( + (typeof Function !== 'undefined' && input instanceof Function) || + Object.prototype.toString.call(input) === '[object Function]' + ); +} + +export default moment.defineLocale('el', { + monthsNominativeEl: + '螜伪谓慰蠀维蟻喂慰蟼_桅蔚尾蟻慰蠀维蟻喂慰蟼_螠维蟻蟿喂慰蟼_螒蟺蟻委位喂慰蟼_螠维喂慰蟼_螜慰蠉谓喂慰蟼_螜慰蠉位喂慰蟼_螒蠉纬慰蠀蟽蟿慰蟼_危蔚蟺蟿苇渭尾蟻喂慰蟼_螣魏蟿蠋尾蟻喂慰蟼_螡慰苇渭尾蟻喂慰蟼_螖蔚魏苇渭尾蟻喂慰蟼'.split( + '_' + ), + monthsGenitiveEl: + '螜伪谓慰蠀伪蟻委慰蠀_桅蔚尾蟻慰蠀伪蟻委慰蠀_螠伪蟻蟿委慰蠀_螒蟺蟻喂位委慰蠀_螠伪螑慰蠀_螜慰蠀谓委慰蠀_螜慰蠀位委慰蠀_螒蠀纬慰蠉蟽蟿慰蠀_危蔚蟺蟿蔚渭尾蟻委慰蠀_螣魏蟿蠅尾蟻委慰蠀_螡慰蔚渭尾蟻委慰蠀_螖蔚魏蔚渭尾蟻委慰蠀'.split( + '_' + ), + months: function (momentToFormat, format) { + if (!momentToFormat) { + return this._monthsNominativeEl; + } else if ( + typeof format === 'string' && + /D/.test(format.substring(0, format.indexOf('MMMM'))) + ) { + // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort: '螜伪谓_桅蔚尾_螠伪蟻_螒蟺蟻_螠伪蠆_螜慰蠀谓_螜慰蠀位_螒蠀纬_危蔚蟺_螣魏蟿_螡慰蔚_螖蔚魏'.split('_'), + weekdays: '螝蠀蟻喂伪魏萎_螖蔚蠀蟿苇蟻伪_韦蟻委蟿畏_韦蔚蟿维蟻蟿畏_螤苇渭蟺蟿畏_螤伪蟻伪蟽魏蔚蠀萎_危维尾尾伪蟿慰'.split( + '_' + ), + weekdaysShort: '螝蠀蟻_螖蔚蠀_韦蟻喂_韦蔚蟿_螤蔚渭_螤伪蟻_危伪尾'.split('_'), + weekdaysMin: '螝蠀_螖蔚_韦蟻_韦蔚_螤蔚_螤伪_危伪'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '渭渭' : '螠螠'; + } else { + return isLower ? '蟺渭' : '螤螠'; + } + }, + isPM: function (input) { + return (input + '').toLowerCase()[0] === '渭'; + }, + meridiemParse: /[螤螠]\.?螠?\.?/i, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendarEl: { + sameDay: '[危萎渭蔚蟻伪 {}] LT', + nextDay: '[螒蠉蟻喂慰 {}] LT', + nextWeek: 'dddd [{}] LT', + lastDay: '[围胃蔚蟼 {}] LT', + lastWeek: function () { + switch (this.day()) { + case 6: + return '[蟿慰 蟺蟻慰畏纬慰蠉渭蔚谓慰] dddd [{}] LT'; + default: + return '[蟿畏谓 蟺蟻慰畏纬慰蠉渭蔚谓畏] dddd [{}] LT'; + } + }, + sameElse: 'L', + }, + calendar: function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (isFunction(output)) { + output = output.apply(mom); + } + return output.replace('{}', hours % 12 === 1 ? '蟽蟿畏' : '蟽蟿喂蟼'); + }, + relativeTime: { + future: '蟽蔚 %s', + past: '%s 蟺蟻喂谓', + s: '位委纬伪 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + ss: '%d 未蔚蠀蟿蔚蟻蠈位蔚蟺蟿伪', + m: '苇谓伪 位蔚蟺蟿蠈', + mm: '%d 位蔚蟺蟿维', + h: '渭委伪 蠋蟻伪', + hh: '%d 蠋蟻蔚蟼', + d: '渭委伪 渭苇蟻伪', + dd: '%d 渭苇蟻蔚蟼', + M: '苇谓伪蟼 渭萎谓伪蟼', + MM: '%d 渭萎谓蔚蟼', + y: '苇谓伪蟼 蠂蟻蠈谓慰蟼', + yy: '%d 蠂蟻蠈谓喂伪', + }, + dayOfMonthOrdinalParse: /\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/node_modules/moment/src/locale/en-au.js b/node_modules/moment/src/locale/en-au.js new file mode 100644 index 0000000..8ee6197 --- /dev/null +++ b/node_modules/moment/src/locale/en-au.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Australia) [en-au] +//! author : Jared Morse : https://github.com/jarcoal + +import moment from '../moment'; + +export default moment.defineLocale('en-au', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday 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/node_modules/moment/src/locale/en-ca.js b/node_modules/moment/src/locale/en-ca.js new file mode 100644 index 0000000..bc4e9a5 --- /dev/null +++ b/node_modules/moment/src/locale/en-ca.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Canada) [en-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('en-ca', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'YYYY-MM-DD', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY h:mm A', + LLLL: 'dddd, MMMM D, YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/locale/en-gb.js b/node_modules/moment/src/locale/en-gb.js new file mode 100644 index 0000000..9391cc9 --- /dev/null +++ b/node_modules/moment/src/locale/en-gb.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (United Kingdom) [en-gb] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-gb', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/en-ie.js b/node_modules/moment/src/locale/en-ie.js new file mode 100644 index 0000000..8200e55 --- /dev/null +++ b/node_modules/moment/src/locale/en-ie.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Ireland) [en-ie] +//! author : Chris Cartlidge : https://github.com/chriscartlidge + +import moment from '../moment'; + +export default moment.defineLocale('en-ie', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/en-il.js b/node_modules/moment/src/locale/en-il.js new file mode 100644 index 0000000..ba16f10 --- /dev/null +++ b/node_modules/moment/src/locale/en-il.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : English (Israel) [en-il] +//! author : Chris Gedrim : https://github.com/chrisgedrim + +import moment from '../moment'; + +export default moment.defineLocale('en-il', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, +}); diff --git a/node_modules/moment/src/locale/en-in.js b/node_modules/moment/src/locale/en-in.js new file mode 100644 index 0000000..7d940d2 --- /dev/null +++ b/node_modules/moment/src/locale/en-in.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (India) [en-in] +//! author : Jatin Agrawal : https://github.com/jatinag22 + +import moment from '../moment'; + +export default moment.defineLocale('en-in', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + return number + output; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/en-nz.js b/node_modules/moment/src/locale/en-nz.js new file mode 100644 index 0000000..dff324c --- /dev/null +++ b/node_modules/moment/src/locale/en-nz.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (New Zealand) [en-nz] +//! author : Luke McGregor : https://github.com/lukemcgregor + +import moment from '../moment'; + +export default moment.defineLocale('en-nz', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/en-sg.js b/node_modules/moment/src/locale/en-sg.js new file mode 100644 index 0000000..433531e --- /dev/null +++ b/node_modules/moment/src/locale/en-sg.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : English (Singapore) [en-sg] +//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension + +import moment from '../moment'; + +export default moment.defineLocale('en-sg', { + months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( + '_' + ), + weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + 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 HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Today at] LT', + nextDay: '[Tomorrow at] LT', + nextWeek: 'dddd [at] LT', + lastDay: '[Yesterday at] LT', + lastWeek: '[Last] dddd [at] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'in %s', + past: '%s ago', + s: 'a few seconds', + ss: '%d seconds', + m: 'a minute', + mm: '%d minutes', + h: 'an hour', + hh: '%d hours', + d: 'a day', + dd: '%d days', + M: 'a month', + MM: '%d months', + y: 'a year', + yy: '%d years', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/eo.js b/node_modules/moment/src/locale/eo.js new file mode 100644 index 0000000..38d494a --- /dev/null +++ b/node_modules/moment/src/locale/eo.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Esperanto [eo] +//! author : Colin Dean : https://github.com/colindean +//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia +//! comment : miestasmia corrected the translation by colindean +//! comment : Vivakvo corrected the translation by colindean and miestasmia + +import moment from '../moment'; + +export default moment.defineLocale('eo', { + months: 'januaro_februaro_marto_aprilo_majo_junio_julio_a怒gusto_septembro_oktobro_novembro_decembro'.split( + '_' + ), + monthsShort: 'jan_feb_mart_apr_maj_jun_jul_a怒g_sept_okt_nov_dec'.split('_'), + weekdays: 'diman膲o_lundo_mardo_merkredo_牡a怒do_vendredo_sabato'.split('_'), + weekdaysShort: 'dim_lun_mard_merk_牡a怒_ven_sab'.split('_'), + weekdaysMin: 'di_lu_ma_me_牡a_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: '[la] D[-an de] MMMM, YYYY', + LLL: '[la] D[-an de] MMMM, YYYY HH:mm', + LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm', + llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm', + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar: { + sameDay: '[Hodia怒 je] LT', + nextDay: '[Morga怒 je] LT', + nextWeek: 'dddd[n je] LT', + lastDay: '[Hiera怒 je] LT', + lastWeek: '[pasintan] dddd[n je] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'post %s', + past: 'anta怒 %s', + s: 'kelkaj sekundoj', + ss: '%d sekundoj', + m: 'unu minuto', + mm: '%d minutoj', + h: 'unu horo', + hh: '%d horoj', + d: 'unu tago', //ne 'diurno', 膲ar estas uzita por proksimumo + dd: '%d tagoj', + M: 'unu monato', + MM: '%d monatoj', + y: 'unu jaro', + yy: '%d jaroj', + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: '%da', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/es-do.js b/node_modules/moment/src/locale/es-do.js new file mode 100644 index 0000000..8c3ccfd --- /dev/null +++ b/node_modules/moment/src/locale/es-do.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : Spanish (Dominican Republic) [es-do] + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-do', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/es-mx.js b/node_modules/moment/src/locale/es-mx.js new file mode 100644 index 0000000..43dd7cc --- /dev/null +++ b/node_modules/moment/src/locale/es-mx.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (Mexico) [es-mx] +//! author : JC Franco : https://github.com/jcfranco + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-mx', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 4, // The week that contains Jan 4th is the first week of the year. + }, + invalidDate: 'Fecha inv谩lida', +}); diff --git a/node_modules/moment/src/locale/es-us.js b/node_modules/moment/src/locale/es-us.js new file mode 100644 index 0000000..bac8cd8 --- /dev/null +++ b/node_modules/moment/src/locale/es-us.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish (United States) [es-us] +//! author : bustta : https://github.com/bustta +//! author : chrisrodz : https://github.com/chrisrodz + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es-us', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'MM/DD/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY h:mm A', + LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/es.js b/node_modules/moment/src/locale/es.js new file mode 100644 index 0000000..a3428ad --- /dev/null +++ b/node_modules/moment/src/locale/es.js @@ -0,0 +1,110 @@ +//! moment.js locale configuration +//! locale : Spanish [es] +//! author : Julio Napur铆 : https://github.com/julionc + +import moment from '../moment'; + +var monthsShortDot = + 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split( + '_' + ), + monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'), + monthsParse = [ + /^ene/i, + /^feb/i, + /^mar/i, + /^abr/i, + /^may/i, + /^jun/i, + /^jul/i, + /^ago/i, + /^sep/i, + /^oct/i, + /^nov/i, + /^dic/i, + ], + monthsRegex = + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + +export default moment.defineLocale('es', { + months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortDot; + } else if (/-MMM-/.test(format)) { + return monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: + /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'domingo_lunes_martes_mi茅rcoles_jueves_viernes_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._mi茅._jue._vie._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_mi_ju_vi_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextDay: function () { + return '[ma帽ana a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + nextWeek: function () { + return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastDay: function () { + return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT'; + }, + lastWeek: function () { + return ( + '[el] dddd [pasado a la' + + (this.hours() !== 1 ? 's' : '') + + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: 'en %s', + past: 'hace %s', + s: 'unos segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'una hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + w: 'una semana', + ww: '%d semanas', + M: 'un mes', + MM: '%d meses', + y: 'un a帽o', + yy: '%d a帽os', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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. + }, + invalidDate: 'Fecha inv谩lida', +}); diff --git a/node_modules/moment/src/locale/et.js b/node_modules/moment/src/locale/et.js new file mode 100644 index 0000000..5da4ec4 --- /dev/null +++ b/node_modules/moment/src/locale/et.js @@ -0,0 +1,78 @@ +//! moment.js locale configuration +//! locale : Estonian [et] +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['m玫ne sekundi', 'm玫ni sekund', 'paar sekundit'], + ss: [number + 'sekundi', number + 'sekundit'], + m: ['眉he minuti', '眉ks minut'], + mm: [number + ' minuti', number + ' minutit'], + h: ['眉he tunni', 'tund aega', '眉ks tund'], + hh: [number + ' tunni', number + ' tundi'], + d: ['眉he p盲eva', '眉ks p盲ev'], + M: ['kuu aja', 'kuu aega', '眉ks kuu'], + MM: [number + ' kuu', number + ' kuud'], + y: ['眉he aasta', 'aasta', '眉ks aasta'], + yy: [number + ' aasta', number + ' aastat'], + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('et', { + months: 'jaanuar_veebruar_m盲rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split( + '_' + ), + monthsShort: + 'jaan_veebr_m盲rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays: + 'p眉hap盲ev_esmasp盲ev_teisip盲ev_kolmap盲ev_neljap盲ev_reede_laup盲ev'.split( + '_' + ), + weekdaysShort: 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin: 'P_E_T_K_N_R_L'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[T盲na,] LT', + nextDay: '[Homme,] LT', + nextWeek: '[J盲rgmine] dddd LT', + lastDay: '[Eile,] LT', + lastWeek: '[Eelmine] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲rast', + past: '%s tagasi', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: '%d p盲eva', + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/eu.js b/node_modules/moment/src/locale/eu.js new file mode 100644 index 0000000..261a17b --- /dev/null +++ b/node_modules/moment/src/locale/eu.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Basque [eu] +//! author : Eneko Illarramendi : https://github.com/eillarra + +import moment from '../moment'; + +export default moment.defineLocale('eu', { + months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split( + '_' + ), + monthsShort: + 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split( + '_' + ), + weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY[ko] MMMM[ren] D[a]', + LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l: 'YYYY-M-D', + ll: 'YYYY[ko] MMM D[a]', + lll: 'YYYY[ko] MMM D[a] HH:mm', + llll: 'ddd, YYYY[ko] MMM D[a] HH:mm', + }, + calendar: { + sameDay: '[gaur] LT[etan]', + nextDay: '[bihar] LT[etan]', + nextWeek: 'dddd LT[etan]', + lastDay: '[atzo] LT[etan]', + lastWeek: '[aurreko] dddd LT[etan]', + sameElse: 'L', + }, + relativeTime: { + future: '%s barru', + past: 'duela %s', + s: 'segundo batzuk', + ss: '%d segundo', + m: 'minutu bat', + mm: '%d minutu', + h: 'ordu bat', + hh: '%d ordu', + d: 'egun bat', + dd: '%d egun', + M: 'hilabete bat', + MM: '%d hilabete', + y: 'urte bat', + yy: '%d urte', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fa.js b/node_modules/moment/src/locale/fa.js new file mode 100644 index 0000000..52ffb72 --- /dev/null +++ b/node_modules/moment/src/locale/fa.js @@ -0,0 +1,113 @@ +//! moment.js locale configuration +//! locale : Persian [fa] +//! author : Ebrahim Byagowi : https://github.com/ebraminio + +import moment from '../moment'; + +var symbolMap = { + 1: '郾', + 2: '鄄', + 3: '鄢', + 4: '鄞', + 5: '鄣', + 6: '鄱', + 7: '鄯', + 8: '鄹', + 9: '酃', + 0: '郯', + }, + numberMap = { + '郾': '1', + '鄄': '2', + '鄢': '3', + '鄞': '4', + '鄣': '5', + '鄱': '6', + '鄯': '7', + '鄹': '8', + '酃': '9', + '郯': '0', + }; + +export default moment.defineLocale('fa', { + months: '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + monthsShort: + '跇丕賳賵蹖賴_賮賵乇蹖賴_賲丕乇爻_丌賵乇蹖賱_賲賴_跇賵卅賳_跇賵卅蹖賴_丕賵鬲_爻倬鬲丕賲亘乇_丕讴鬲亘乇_賳賵丕賲亘乇_丿爻丕賲亘乇'.split( + '_' + ), + weekdays: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysShort: + '蹖讴\u200c卮賳亘賴_丿賵卮賳亘賴_爻賴\u200c卮賳亘賴_趩賴丕乇卮賳亘賴_倬賳噩\u200c卮賳亘賴_噩賲毓賴_卮賳亘賴'.split( + '_' + ), + weekdaysMin: '蹖_丿_爻_趩_倬_噩_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /賯亘賱 丕夭 馗賴乇|亘毓丿 丕夭 馗賴乇/, + isPM: function (input) { + return /亘毓丿 丕夭 馗賴乇/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '賯亘賱 丕夭 馗賴乇'; + } else { + return '亘毓丿 丕夭 馗賴乇'; + } + }, + calendar: { + sameDay: '[丕賲乇賵夭 爻丕毓鬲] LT', + nextDay: '[賮乇丿丕 爻丕毓鬲] LT', + nextWeek: 'dddd [爻丕毓鬲] LT', + lastDay: '[丿蹖乇賵夭 爻丕毓鬲] LT', + lastWeek: 'dddd [倬蹖卮] [爻丕毓鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '丿乇 %s', + past: '%s 倬蹖卮', + s: '趩賳丿 孬丕賳蹖賴', + ss: '%d 孬丕賳蹖賴', + m: '蹖讴 丿賯蹖賯賴', + mm: '%d 丿賯蹖賯賴', + h: '蹖讴 爻丕毓鬲', + hh: '%d 爻丕毓鬲', + d: '蹖讴 乇賵夭', + dd: '%d 乇賵夭', + M: '蹖讴 賲丕賴', + MM: '%d 賲丕賴', + y: '蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string + .replace(/[郯-酃]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + dayOfMonthOrdinalParse: /\d{1,2}賲/, + ordinal: '%d賲', + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/fi.js b/node_modules/moment/src/locale/fi.js new file mode 100644 index 0000000..2e20bff --- /dev/null +++ b/node_modules/moment/src/locale/fi.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Finnish [fi] +//! author : Tarmo Aidantausta : https://github.com/bleadof + +import moment from '../moment'; + +var numbersPast = + 'nolla yksi kaksi kolme nelj盲 viisi kuusi seitsem盲n kahdeksan yhdeks盲n'.split( + ' ' + ), + numbersFuture = [ + 'nolla', + 'yhden', + 'kahden', + 'kolmen', + 'nelj盲n', + 'viiden', + 'kuuden', + numbersPast[7], + numbersPast[8], + numbersPast[9], + ]; +function translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'ss': + result = isFuture ? 'sekunnin' : 'sekuntia'; + break; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'p盲iv盲n' : 'p盲iv盲'; + case 'dd': + result = isFuture ? 'p盲iv盲n' : 'p盲iv盲盲'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; +} +function verbalNumber(number, isFuture) { + return number < 10 + ? isFuture + ? numbersFuture[number] + : numbersPast[number] + : number; +} + +export default moment.defineLocale('fi', { + months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes盲kuu_hein盲kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split( + '_' + ), + monthsShort: + 'tammi_helmi_maalis_huhti_touko_kes盲_hein盲_elo_syys_loka_marras_joulu'.split( + '_' + ), + weekdays: + 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split( + '_' + ), + weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'), + 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] HH.mm', + LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l: 'D.M.YYYY', + ll: 'Do MMM YYYY', + lll: 'Do MMM YYYY, [klo] HH.mm', + llll: 'ddd, Do MMM YYYY, [klo] HH.mm', + }, + calendar: { + sameDay: '[t盲n盲盲n] [klo] LT', + nextDay: '[huomenna] [klo] LT', + nextWeek: 'dddd [klo] LT', + lastDay: '[eilen] [klo] LT', + lastWeek: '[viime] dddd[na] [klo] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s p盲盲st盲', + past: '%s sitten', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/fil.js b/node_modules/moment/src/locale/fil.js new file mode 100644 index 0000000..e0447aa --- /dev/null +++ b/node_modules/moment/src/locale/fil.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Filipino [fil] +//! author : Dan Hagman : https://github.com/hagmandan +//! author : Matthew Co : https://github.com/matthewdeeco + +import moment from '../moment'; + +export default moment.defineLocale('fil', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/src/locale/fo.js b/node_modules/moment/src/locale/fo.js new file mode 100644 index 0000000..c8fd0bc --- /dev/null +++ b/node_modules/moment/src/locale/fo.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Faroese [fo] +//! author : Ragnar Johannesen : https://github.com/ragnar123 +//! author : Kristian Sakarisson : https://github.com/sakarisson + +import moment from '../moment'; + +export default moment.defineLocale('fo', { + months: 'januar_februar_mars_apr铆l_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays: + 'sunnudagur_m谩nadagur_t媒sdagur_mikudagur_h贸sdagur_fr铆ggjadagur_leygardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_t媒s_mik_h贸s_fr铆_ley'.split('_'), + weekdaysMin: 'su_m谩_t媒_mi_h贸_fr_le'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D. MMMM, YYYY HH:mm', + }, + calendar: { + sameDay: '[脥 dag kl.] LT', + nextDay: '[脥 morgin kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[脥 gj谩r kl.] LT', + lastWeek: '[s铆冒stu] dddd [kl] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'um %s', + past: '%s s铆冒ani', + s: 'f谩 sekund', + ss: '%d sekundir', + m: 'ein minuttur', + mm: '%d minuttir', + h: 'ein t铆mi', + hh: '%d t铆mar', + d: 'ein dagur', + dd: '%d dagar', + M: 'ein m谩na冒ur', + MM: '%d m谩na冒ir', + y: 'eitt 谩r', + yy: '%d 谩r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/fr-ca.js b/node_modules/moment/src/locale/fr-ca.js new file mode 100644 index 0000000..6187291 --- /dev/null +++ b/node_modules/moment/src/locale/fr-ca.js @@ -0,0 +1,70 @@ +//! moment.js locale configuration +//! locale : French (Canada) [fr-ca] +//! author : Jonathan Abourbih : https://github.com/jonbca + +import moment from '../moment'; + +export default moment.defineLocale('fr-ca', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, +}); diff --git a/node_modules/moment/src/locale/fr-ch.js b/node_modules/moment/src/locale/fr-ch.js new file mode 100644 index 0000000..2cc90d8 --- /dev/null +++ b/node_modules/moment/src/locale/fr-ch.js @@ -0,0 +1,74 @@ +//! moment.js locale configuration +//! locale : French (Switzerland) [fr-ch] +//! author : Gaspard Bucher : https://github.com/gaspard + +import moment from '../moment'; + +export default moment.defineLocale('fr-ch', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function (number, period) { + switch (period) { + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'D': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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/node_modules/moment/src/locale/fr.js b/node_modules/moment/src/locale/fr.js new file mode 100644 index 0000000..a3afb4b --- /dev/null +++ b/node_modules/moment/src/locale/fr.js @@ -0,0 +1,108 @@ +//! moment.js locale configuration +//! locale : French [fr] +//! author : John Fischer : https://github.com/jfroffice + +import moment from '../moment'; + +var monthsStrictRegex = + /^(janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsShortStrictRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?)/i, + monthsRegex = + /(janv\.?|f茅vr\.?|mars|avr\.?|mai|juin|juil\.?|ao没t|sept\.?|oct\.?|nov\.?|d茅c\.?|janvier|f茅vrier|mars|avril|mai|juin|juillet|ao没t|septembre|octobre|novembre|d茅cembre)/i, + monthsParse = [ + /^janv/i, + /^f茅vr/i, + /^mars/i, + /^avr/i, + /^mai/i, + /^juin/i, + /^juil/i, + /^ao没t/i, + /^sept/i, + /^oct/i, + /^nov/i, + /^d茅c/i, + ]; + +export default moment.defineLocale('fr', { + months: 'janvier_f茅vrier_mars_avril_mai_juin_juillet_ao没t_septembre_octobre_novembre_d茅cembre'.split( + '_' + ), + monthsShort: + 'janv._f茅vr._mars_avr._mai_juin_juil._ao没t_sept._oct._nov._d茅c.'.split( + '_' + ), + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: monthsStrictRegex, + monthsShortStrictRegex: monthsShortStrictRegex, + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Aujourd鈥檋ui 脿] LT', + nextDay: '[Demain 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[Hier 脿] LT', + lastWeek: 'dddd [dernier 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dans %s', + past: 'il y a %s', + s: 'quelques secondes', + ss: '%d secondes', + m: 'une minute', + mm: '%d minutes', + h: 'une heure', + hh: '%d heures', + d: 'un jour', + dd: '%d jours', + w: 'une semaine', + ww: '%d semaines', + M: 'un mois', + MM: '%d mois', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function (number, period) { + switch (period) { + // TODO: Return 'e' when day of month > 1. Move this case inside + // block for masculine words below. + // See https://github.com/moment/moment/issues/3375 + case 'D': + return number + (number === 1 ? 'er' : ''); + + // Words with masculine grammatical gender: mois, trimestre, jour + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + return number + (number === 1 ? 'er' : 'e'); + + // Words with feminine grammatical gender: semaine + case 'w': + case 'W': + return number + (number === 1 ? 're' : 'e'); + } + }, + 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/node_modules/moment/src/locale/fy.js b/node_modules/moment/src/locale/fy.js new file mode 100644 index 0000000..4844587 --- /dev/null +++ b/node_modules/moment/src/locale/fy.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Frisian [fy] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + +export default moment.defineLocale('fy', { + months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + monthsParseExact: true, + weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split( + '_' + ), + weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[么fr没ne] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'oer %s', + past: '%s lyn', + s: 'in pear sekonden', + ss: '%d sekonden', + m: 'ien min煤t', + mm: '%d minuten', + h: 'ien oere', + hh: '%d oeren', + d: 'ien dei', + dd: '%d dagen', + M: 'ien moanne', + MM: '%d moannen', + y: 'ien jier', + yy: '%d jierren', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/src/locale/ga.js b/node_modules/moment/src/locale/ga.js new file mode 100644 index 0000000..7f36fb6 --- /dev/null +++ b/node_modules/moment/src/locale/ga.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Irish or Irish Gaelic [ga] +//! author : Andr茅 Silva : https://github.com/askpt + +import moment from '../moment'; + +var months = [ + 'Ean谩ir', + 'Feabhra', + 'M谩rta', + 'Aibre谩n', + 'Bealtaine', + 'Meitheamh', + 'I煤il', + 'L煤nasa', + 'Me谩n F贸mhair', + 'Deireadh F贸mhair', + 'Samhain', + 'Nollaig', + ], + monthsShort = [ + 'Ean', + 'Feabh', + 'M谩rt', + 'Aib', + 'Beal', + 'Meith', + 'I煤il', + 'L煤n', + 'M.F.', + 'D.F.', + 'Samh', + 'Noll', + ], + weekdays = [ + 'D茅 Domhnaigh', + 'D茅 Luain', + 'D茅 M谩irt', + 'D茅 C茅adaoin', + 'D茅ardaoin', + 'D茅 hAoine', + 'D茅 Sathairn', + ], + weekdaysShort = ['Domh', 'Luan', 'M谩irt', 'C茅ad', 'D茅ar', 'Aoine', 'Sath'], + weekdaysMin = ['Do', 'Lu', 'M谩', 'C茅', 'D茅', 'A', 'Sa']; + +export default moment.defineLocale('ga', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Inniu ag] LT', + nextDay: '[Am谩rach ag] LT', + nextWeek: 'dddd [ag] LT', + lastDay: '[Inn茅 ag] LT', + lastWeek: 'dddd [seo caite] [ag] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i %s', + past: '%s 贸 shin', + s: 'c煤pla soicind', + ss: '%d soicind', + m: 'n贸im茅ad', + mm: '%d n贸im茅ad', + h: 'uair an chloig', + hh: '%d uair an chloig', + d: 'l谩', + dd: '%d l谩', + M: 'm铆', + MM: '%d m铆onna', + y: 'bliain', + yy: '%d bliain', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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/node_modules/moment/src/locale/gd.js b/node_modules/moment/src/locale/gd.js new file mode 100644 index 0000000..81f735b --- /dev/null +++ b/node_modules/moment/src/locale/gd.js @@ -0,0 +1,95 @@ +//! moment.js locale configuration +//! locale : Scottish Gaelic [gd] +//! author : Jon Ashdown : https://github.com/jonashdown + +import moment from '../moment'; + +var months = [ + 'Am Faoilleach', + 'An Gearran', + 'Am M脿rt', + 'An Giblean', + 'An C猫itean', + 'An t-脪gmhios', + 'An t-Iuchar', + 'An L霉nastal', + 'An t-Sultain', + 'An D脿mhair', + 'An t-Samhain', + 'An D霉bhlachd', + ], + monthsShort = [ + 'Faoi', + 'Gear', + 'M脿rt', + 'Gibl', + 'C猫it', + '脪gmh', + 'Iuch', + 'L霉n', + 'Sult', + 'D脿mh', + 'Samh', + 'D霉bh', + ], + weekdays = [ + 'Did貌mhnaich', + 'Diluain', + 'Dim脿irt', + 'Diciadain', + 'Diardaoin', + 'Dihaoine', + 'Disathairne', + ], + weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'], + weekdaysMin = ['D貌', 'Lu', 'M脿', 'Ci', 'Ar', 'Ha', 'Sa']; + +export default moment.defineLocale('gd', { + months: months, + monthsShort: monthsShort, + monthsParseExact: true, + weekdays: weekdays, + weekdaysShort: weekdaysShort, + weekdaysMin: weekdaysMin, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[An-diugh aig] LT', + nextDay: '[A-m脿ireach aig] LT', + nextWeek: 'dddd [aig] LT', + lastDay: '[An-d猫 aig] LT', + lastWeek: 'dddd [seo chaidh] [aig] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ann an %s', + past: 'bho chionn %s', + s: 'beagan diogan', + ss: '%d diogan', + m: 'mionaid', + mm: '%d mionaidean', + h: 'uair', + hh: '%d uairean', + d: 'latha', + dd: '%d latha', + M: 'm矛os', + MM: '%d m矛osan', + y: 'bliadhna', + yy: '%d bliadhna', + }, + dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, + ordinal: function (number) { + var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh'; + 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/node_modules/moment/src/locale/gl.js b/node_modules/moment/src/locale/gl.js new file mode 100644 index 0000000..980591c --- /dev/null +++ b/node_modules/moment/src/locale/gl.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Galician [gl] +//! author : Juan G. Hurtado : https://github.com/juanghurtado + +import moment from '../moment'; + +export default moment.defineLocale('gl', { + months: 'xaneiro_febreiro_marzo_abril_maio_xu帽o_xullo_agosto_setembro_outubro_novembro_decembro'.split( + '_' + ), + monthsShort: + 'xan._feb._mar._abr._mai._xu帽._xul._ago._set._out._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'domingo_luns_martes_m茅rcores_xoves_venres_s谩bado'.split('_'), + weekdaysShort: 'dom._lun._mar._m茅r._xov._ven._s谩b.'.split('_'), + weekdaysMin: 'do_lu_ma_m茅_xo_ve_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY H:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm', + }, + calendar: { + sameDay: function () { + return '[hoxe ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextDay: function () { + return '[ma帽谩 ' + (this.hours() !== 1 ? '谩s' : '谩') + '] LT'; + }, + nextWeek: function () { + return 'dddd [' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT'; + }, + lastDay: function () { + return '[onte ' + (this.hours() !== 1 ? '谩' : 'a') + '] LT'; + }, + lastWeek: function () { + return ( + '[o] dddd [pasado ' + (this.hours() !== 1 ? '谩s' : 'a') + '] LT' + ); + }, + sameElse: 'L', + }, + relativeTime: { + future: function (str) { + if (str.indexOf('un') === 0) { + return 'n' + str; + } + return 'en ' + str; + }, + past: 'hai %s', + s: 'uns segundos', + ss: '%d segundos', + m: 'un minuto', + mm: '%d minutos', + h: 'unha hora', + hh: '%d horas', + d: 'un d铆a', + dd: '%d d铆as', + M: 'un mes', + MM: '%d meses', + y: 'un ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/gom-deva.js b/node_modules/moment/src/locale/gom-deva.js new file mode 100644 index 0000000..294e358 --- /dev/null +++ b/node_modules/moment/src/locale/gom-deva.js @@ -0,0 +1,126 @@ +//! moment.js locale configuration +//! locale : Konkani Devanagari script [gom-deva] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['啶ム啶∴く啶 啶膏啶曕啶∴ぞ啶傕え啷', '啶ム啶∴ 啶膏啶曕啶'], + ss: [number + ' 啶膏啶曕啶∴ぞ啶傕え啷', number + ' 啶膏啶曕啶'], + m: ['啶忇啶 啶た啶`啶距え', '啶忇 啶た啶ㄠ啶'], + mm: [number + ' 啶た啶`啶距啶ㄠ', number + ' 啶た啶`啶距'], + h: ['啶忇啶 啶掂ぐ啶距え', '啶忇 啶掂ぐ'], + hh: [number + ' 啶掂ぐ啶距啶ㄠ', number + ' 啶掂ぐ啶距'], + d: ['啶忇啶 啶︵た啶膏ぞ啶', '啶忇 啶︵啶'], + dd: [number + ' 啶︵た啶膏ぞ啶傕え啷', number + ' 啶︵啶'], + M: ['啶忇啶 啶啶灌く啶ㄠ啶ぞ啶', '啶忇 啶啶灌く啶ㄠ'], + MM: [number + ' 啶啶灌く啶ㄠ啶ぞ啶ㄠ', number + ' 啶啶灌く啶ㄠ'], + y: ['啶忇啶 啶掂ぐ啷嵿じ啶距え', '啶忇 啶掂ぐ啷嵿じ'], + yy: [number + ' 啶掂ぐ啷嵿じ啶距啶ㄠ', number + ' 啶掂ぐ啷嵿じ啶距'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-deva', { + months: { + standalone: + '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啷啶瞋啶_啶溹啶╛啶溹啶侧く_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + format: '啶溹ぞ啶ㄠ啶掂ぞ啶班啶氞啶ぞ_啶啶啶班啶掂ぞ啶班啶氞啶ぞ_啶ぞ啶班啶氞ぞ啶氞啶ぞ_啶忇お啷嵿ぐ啷啶侧ぞ啶氞啶ぞ_啶啶ぞ啶氞啶ぞ_啶溹啶ㄠぞ啶氞啶ぞ_啶溹啶侧く啶距啷嵿く啶綺啶戉啶膏啶熰ぞ啶氞啶ぞ_啶膏お啷嵿啷囙啶ぐ啶距啷嵿く啶綺啶戉啷嵿啷嬥が啶班ぞ啶氞啶ぞ_啶ㄠ啶掂啶灌啶傕が啶班ぞ啶氞啶ぞ_啶∴た啶膏啶傕が啶班ぞ啶氞啶ぞ'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶歘啶忇お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋く啶むぞ啶癬啶膏啶ぞ啶癬啶啶椸こ啶距ぐ_啶啶оさ啶距ぐ_啶た啶班啶膏啶むぞ啶癬啶膏啶曕啶班ぞ啶癬啶多啶ㄠさ啶距ぐ'.split('_'), + weekdaysShort: '啶嗋く啶._啶膏啶._啶啶椸こ._啶啶._啶啶班啶膏啶._啶膏啶曕啶._啶多啶.'.split('_'), + weekdaysMin: '啶哶啶膏_啶_啶_啶啶班_啶膏_啶多'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [啶掂ぞ啶溹い啶距]', + LTS: 'A h:mm:ss [啶掂ぞ啶溹い啶距]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [啶掂ぞ啶溹い啶距]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + llll: 'ddd, D MMM YYYY, A h:mm [啶掂ぞ啶溹い啶距]', + }, + calendar: { + sameDay: '[啶嗋く啶淽 LT', + nextDay: '[啶ぞ啶侧啶ぞ啶俔 LT', + nextWeek: '[啶啶∴げ啷媇 dddd[,] LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶熰げ啷媇 dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s 啶嗋う啷啶', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(啶掂啶)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal '啶掂啶' only applies to day of the month + case 'D': + return number + '啶掂啶'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /啶班ぞ啶む|啶膏啶距こ啷啶倈啶︵え啶ぞ啶班ぞ啶倈啶膏ぞ啶傕啷/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶む') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶距こ啷啶') { + return hour; + } else if (meridiem === '啶︵え啶ぞ啶班ぞ啶') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶傕啷') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶む'; + } else if (hour < 12) { + return '啶膏啶距こ啷啶'; + } else if (hour < 16) { + return '啶︵え啶ぞ啶班ぞ啶'; + } else if (hour < 20) { + return '啶膏ぞ啶傕啷'; + } else { + return '啶班ぞ啶む'; + } + }, +}); diff --git a/node_modules/moment/src/locale/gom-latn.js b/node_modules/moment/src/locale/gom-latn.js new file mode 100644 index 0000000..d237161 --- /dev/null +++ b/node_modules/moment/src/locale/gom-latn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Konkani Latin script [gom-latn] +//! author : The Discoverer : https://github.com/WikiDiscoverer + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['thoddea sekondamni', 'thodde sekond'], + ss: [number + ' sekondamni', number + ' sekond'], + m: ['eka mintan', 'ek minut'], + mm: [number + ' mintamni', number + ' mintam'], + h: ['eka voran', 'ek vor'], + hh: [number + ' voramni', number + ' voram'], + d: ['eka disan', 'ek dis'], + dd: [number + ' disamni', number + ' dis'], + M: ['eka mhoinean', 'ek mhoino'], + MM: [number + ' mhoineamni', number + ' mhoine'], + y: ['eka vorsan', 'ek voros'], + yy: [number + ' vorsamni', number + ' vorsam'], + }; + return isFuture ? format[key][0] : format[key][1]; +} + +export default moment.defineLocale('gom-latn', { + months: { + standalone: + 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split( + '_' + ), + format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split( + '_' + ), + isFormat: /MMMM(\s)+D[oD]?/, + }, + monthsShort: + 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'), + monthsParseExact: true, + weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'), + weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'), + weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A h:mm [vazta]', + LTS: 'A h:mm:ss [vazta]', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY A h:mm [vazta]', + LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]', + llll: 'ddd, D MMM YYYY, A h:mm [vazta]', + }, + calendar: { + sameDay: '[Aiz] LT', + nextDay: '[Faleam] LT', + nextWeek: '[Fuddlo] dddd[,] LT', + lastDay: '[Kal] LT', + lastWeek: '[Fattlo] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s', + past: '%s adim', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}(er)/, + ordinal: function (number, period) { + switch (period) { + // the ordinal 'er' only applies to day of the month + case 'D': + return number + 'er'; + default: + case 'M': + case 'Q': + case 'DDD': + case 'd': + case 'w': + case 'W': + return number; + } + }, + week: { + dow: 0, // Sunday is the first day of the week + doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4) + }, + meridiemParse: /rati|sokallim|donparam|sanje/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'rati') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'sokallim') { + return hour; + } else if (meridiem === 'donparam') { + return hour > 12 ? hour : hour + 12; + } else if (meridiem === 'sanje') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'rati'; + } else if (hour < 12) { + return 'sokallim'; + } else if (hour < 16) { + return 'donparam'; + } else if (hour < 20) { + return 'sanje'; + } else { + return 'rati'; + } + }, +}); diff --git a/node_modules/moment/src/locale/gu.js b/node_modules/moment/src/locale/gu.js new file mode 100644 index 0000000..d432d2c --- /dev/null +++ b/node_modules/moment/src/locale/gu.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Gujarati [gu] +//! author : Kaushik Thanki : https://github.com/Kaushik1987 + +import moment from '../moment'; + +var symbolMap = { + 1: '喃', + 2: '喃', + 3: '喃', + 4: '喃', + 5: '喃', + 6: '喃', + 7: '喃', + 8: '喃', + 9: '喃', + 0: '喃', + }, + numberMap = { + '喃': '1', + '喃': '2', + '喃': '3', + '喃': '4', + '喃': '5', + '喃': '6', + '喃': '7', + '喃': '8', + '喃': '9', + '喃': '0', + }; + +export default moment.defineLocale('gu', { + months: '嗒溹嗒ㄠ珝嗒珌嗒嗋喃_嗒珖嗒珝嗒班珌嗒嗋喃_嗒嗒班珝嗒歘嗒忇喃嵿嗒苦_嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧嗒坃嗒戉獥嗒膏珝嗒焈嗒膏喃嵿獰喃囙喃嵿嗒癬嗒戉獣喃嵿獰喃嵿嗒癬嗒ㄠ喃囙喃嵿嗒癬嗒∴嗒膏珖嗒珝嗒'.split( + '_' + ), + monthsShort: + '嗒溹嗒ㄠ珝嗒珌._嗒珖嗒珝嗒班珌._嗒嗒班珝嗒歘嗒忇喃嵿嗒._嗒珖_嗒溹珎嗒╛嗒溹珌嗒侧._嗒戉獥._嗒膏喃嵿獰喃._嗒戉獣喃嵿獰喃._嗒ㄠ喃._嗒∴嗒膏珖.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗒班嗒苦嗒距_嗒膏珛嗒嗒距_嗒獋嗒椸嗒掂嗒癬嗒珌嗒о珝嗒掂嗒癬嗒椸珌嗒班珌嗒掂嗒癬嗒多珌嗒曕珝嗒班嗒距_嗒多嗒苦嗒距'.split( + '_' + ), + weekdaysShort: '嗒班嗒縚嗒膏珛嗒甠嗒獋嗒椸_嗒珌嗒о珝_嗒椸珌嗒班珌_嗒多珌嗒曕珝嗒癬嗒多嗒'.split('_'), + weekdaysMin: '嗒癬嗒膏珛_嗒獋_嗒珌_嗒椸珌_嗒多珌_嗒'.split('_'), + longDateFormat: { + LT: 'A h:mm 嗒掂嗒椸珝嗒珖', + LTS: 'A h:mm:ss 嗒掂嗒椸珝嗒珖', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + LLLL: 'dddd, D MMMM YYYY, A h:mm 嗒掂嗒椸珝嗒珖', + }, + calendar: { + sameDay: '[嗒嗋獪] LT', + nextDay: '[嗒曕嗒侧珖] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗒椸獓嗒曕嗒侧珖] LT', + lastWeek: '[嗒嗒涏嗒綸 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗒', + past: '%s 嗒喃囙嗒', + s: '嗒呧喃佮獣 嗒喃', + ss: '%d 嗒膏珖嗒曕獋嗒', + m: '嗒忇獣 嗒嗒ㄠ嗒', + mm: '%d 嗒嗒ㄠ嗒', + h: '嗒忇獣 嗒曕嗒距獣', + hh: '%d 嗒曕嗒距獣', + d: '嗒忇獣 嗒︵嗒掂', + dd: '%d 嗒︵嗒掂', + M: '嗒忇獣 嗒嗒苦喃', + MM: '%d 嗒嗒苦喃', + y: '嗒忇獣 嗒掂喃嵿', + yy: '%d 嗒掂喃嵿', + }, + preparse: function (string) { + return string.replace(/[喃о喃┼喃喃喃]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Gujarati notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati. + meridiemParse: /嗒班嗒嗒喃嬥|嗒膏嗒距|嗒膏嗒傕獪/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗒班嗒') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒距') { + return hour; + } else if (meridiem === '嗒喃嬥') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗒膏嗒傕獪') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗒班嗒'; + } else if (hour < 10) { + return '嗒膏嗒距'; + } else if (hour < 17) { + return '嗒喃嬥'; + } else if (hour < 20) { + return '嗒膏嗒傕獪'; + } else { + return '嗒班嗒'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/he.js b/node_modules/moment/src/locale/he.js new file mode 100644 index 0000000..08add2c --- /dev/null +++ b/node_modules/moment/src/locale/he.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Hebrew [he] +//! author : Tomer Cohen : https://github.com/tomer +//! author : Moshe Simantov : https://github.com/DevelopmentIL +//! author : Tal Ater : https://github.com/TalAter + +import moment from '../moment'; + +export default moment.defineLocale('he', { + months: '讬谞讜讗专_驻讘专讜讗专_诪专抓_讗驻专讬诇_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙讜住讟_住驻讟诪讘专_讗讜拽讟讜讘专_谞讜讘诪讘专_讚爪诪讘专'.split( + '_' + ), + monthsShort: + '讬谞讜壮_驻讘专壮_诪专抓_讗驻专壮_诪讗讬_讬讜谞讬_讬讜诇讬_讗讜讙壮_住驻讟壮_讗讜拽壮_谞讜讘壮_讚爪诪壮'.split('_'), + weekdays: '专讗砖讜谉_砖谞讬_砖诇讬砖讬_专讘讬注讬_讞诪讬砖讬_砖讬砖讬_砖讘转'.split('_'), + weekdaysShort: '讗壮_讘壮_讙壮_讚壮_讛壮_讜壮_砖壮'.split('_'), + weekdaysMin: '讗_讘_讙_讚_讛_讜_砖'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [讘]MMMM YYYY', + LLL: 'D [讘]MMMM YYYY HH:mm', + LLLL: 'dddd, D [讘]MMMM YYYY HH:mm', + l: 'D/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[讛讬讜诐 讘志]LT', + nextDay: '[诪讞专 讘志]LT', + nextWeek: 'dddd [讘砖注讛] LT', + lastDay: '[讗转诪讜诇 讘志]LT', + lastWeek: '[讘讬讜诐] dddd [讛讗讞专讜谉 讘砖注讛] LT', + sameElse: 'L', + }, + relativeTime: { + future: '讘注讜讚 %s', + past: '诇驻谞讬 %s', + s: '诪住驻专 砖谞讬讜转', + ss: '%d 砖谞讬讜转', + m: '讚拽讛', + mm: '%d 讚拽讜转', + h: '砖注讛', + hh: function (number) { + if (number === 2) { + return '砖注转讬讬诐'; + } + return number + ' 砖注讜转'; + }, + d: '讬讜诐', + dd: function (number) { + if (number === 2) { + return '讬讜诪讬讬诐'; + } + return number + ' 讬诪讬诐'; + }, + M: '讞讜讚砖', + MM: function (number) { + if (number === 2) { + return '讞讜讚砖讬讬诐'; + } + return number + ' 讞讜讚砖讬诐'; + }, + y: '砖谞讛', + yy: function (number) { + if (number === 2) { + return '砖谞转讬讬诐'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' 砖谞讛'; + } + return number + ' 砖谞讬诐'; + }, + }, + meridiemParse: + /讗讞讛"爪|诇驻谞讛"爪|讗讞专讬 讛爪讛专讬讬诐|诇驻谞讬 讛爪讛专讬讬诐|诇驻谞讜转 讘讜拽专|讘讘讜拽专|讘注专讘/i, + isPM: function (input) { + return /^(讗讞讛"爪|讗讞专讬 讛爪讛专讬讬诐|讘注专讘)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 5) { + return '诇驻谞讜转 讘讜拽专'; + } else if (hour < 10) { + return '讘讘讜拽专'; + } else if (hour < 12) { + return isLower ? '诇驻谞讛"爪' : '诇驻谞讬 讛爪讛专讬讬诐'; + } else if (hour < 18) { + return isLower ? '讗讞讛"爪' : '讗讞专讬 讛爪讛专讬讬诐'; + } else { + return '讘注专讘'; + } + }, +}); diff --git a/node_modules/moment/src/locale/hi.js b/node_modules/moment/src/locale/hi.js new file mode 100644 index 0000000..2e3a973 --- /dev/null +++ b/node_modules/moment/src/locale/hi.js @@ -0,0 +1,168 @@ +//! moment.js locale configuration +//! locale : Hindi [hi] +//! author : Mayank Singhal : https://github.com/mayanksinghal + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }, + monthsParse = [ + /^啶溹え/i, + /^啶ぜ啶皘啶ぐ/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶む|啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ|啶ㄠさ啶/i, + /^啶︵た啶膏|啶︵た啶/i, + ], + shortMonthsParse = [ + /^啶溹え/i, + /^啶ぜ啶/i, + /^啶ぞ啶班啶/i, + /^啶呧お啷嵿ぐ啷/i, + /^啶/i, + /^啶溹啶/i, + /^啶溹啶/i, + /^啶呧/i, + /^啶膏た啶/i, + /^啶呧啷嵿啷/i, + /^啶ㄠさ/i, + /^啶︵た啶/i, + ]; + +export default moment.defineLocale('hi', { + months: { + format: '啶溹え啶掂ぐ啷_啶ぜ啶班さ啶班_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶むぎ啷嵿が啶癬啶呧啷嵿啷傕が啶癬啶ㄠさ啶啶ぐ_啶︵た啶膏ぎ啷嵿が啶'.split( + '_' + ), + standalone: + '啶溹え啶掂ぐ啷_啶ぐ啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啷堗げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶膏啶啶膏た啶む啶ぐ_啶呧啷嵿啷傕が啶癬啶ㄠさ啶傕が啶癬啶︵た啶膏啶ぐ'.split( + '_' + ), + }, + monthsShort: + '啶溹え._啶ぜ啶._啶ぞ啶班啶歘啶呧お啷嵿ぐ啷._啶_啶溹啶╛啶溹啶._啶呧._啶膏た啶._啶呧啷嵿啷._啶ㄠさ._啶︵た啶.'.split('_'), + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸げ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸げ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶啷', + LTS: 'A h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶啷', + }, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: shortMonthsParse, + + monthsRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsShortRegex: + /^(啶溹え啶掂ぐ啷|啶溹え\.?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶侧ぞ啶坾啶溹啶瞈.?|啶呧啶膏啶啶呧\.?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶皘啶ㄠさ\.?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ|啶︵た啶竆.?)/i, + + monthsStrictRegex: + /^(啶溹え啶掂ぐ啷?|啶ぜ啶班さ啶班|啶ぐ啶掂ぐ啷?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷堗げ?|啶?|啶溹啶?|啶溹啶侧ぞ啶?|啶呧啶膏啶?|啶膏た啶むぎ啷嵿が啶皘啶膏た啶む啶ぐ|啶膏た啶?\.?|啶呧啷嵿啷傕が啶皘啶呧啷嵿啷俓.?|啶ㄠさ啶啶ぐ|啶ㄠさ啶傕が啶?|啶︵た啶膏ぎ啷嵿が啶皘啶︵た啶膏啶ぐ?)/i, + + monthsShortStrictRegex: + /^(啶溹え\.?|啶ぜ啶癨.?|啶ぞ啶班啶?|啶呧お啷嵿ぐ啷圽.?|啶?|啶溹啶?|啶溹啶瞈.?|啶呧\.?|啶膏た啶.?|啶呧啷嵿啷俓.?|啶ㄠさ\.?|啶︵た啶竆.?)/i, + + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶曕げ] LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕げ] LT', + lastWeek: '[啶た啶涏げ啷嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啶啶', + past: '%s 啶す啶侧', + s: '啶曕啶 啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶', + m: '啶忇 啶た啶ㄠ', + mm: '%d 啶た啶ㄠ', + h: '啶忇 啶樴啶熰ぞ', + hh: '%d 啶樴啶熰', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啷啶ㄠ', + MM: '%d 啶す啷啶ㄠ', + y: '啶忇 啶掂ぐ啷嵿し', + yy: '%d 啶掂ぐ啷嵿し', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /啶班ぞ啶啶膏啶す|啶︵啶す啶皘啶多ぞ啶/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶膏啶す') { + return hour; + } else if (meridiem === '啶︵啶す啶') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶多ぞ啶') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啶班ぞ啶'; + } else if (hour < 10) { + return '啶膏啶す'; + } else if (hour < 17) { + return '啶︵啶す啶'; + } else if (hour < 20) { + return '啶多ぞ啶'; + } else { + return '啶班ぞ啶'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/hr.js b/node_modules/moment/src/locale/hr.js new file mode 100644 index 0000000..48c1e9e --- /dev/null +++ b/node_modules/moment/src/locale/hr.js @@ -0,0 +1,156 @@ +//! moment.js locale configuration +//! locale : Croatian [hr] +//! author : Bojan Markovi膰 : https://github.com/bmarkovic + +import moment from '../moment'; + +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + if (number === 1) { + result += 'sekunda'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sekunde'; + } else { + result += 'sekundi'; + } + return result; + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } +} + +export default moment.defineLocale('hr', { + months: { + format: 'sije膷nja_velja膷e_o啪ujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split( + '_' + ), + standalone: + 'sije膷anj_velja膷a_o啪ujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split( + '_' + ), + }, + monthsShort: + 'sij._velj._o啪u._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split( + '_' + ), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'Do MMMM YYYY', + LLL: 'Do MMMM YYYY H:mm', + LLLL: 'dddd, Do MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷er u] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[pro拧lu] [nedjelju] [u] LT'; + case 3: + return '[pro拧lu] [srijedu] [u] LT'; + case 6: + return '[pro拧le] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[pro拧li] dddd [u] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'par sekundi', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: 'dan', + dd: translate, + M: 'mjesec', + MM: translate, + y: 'godinu', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/hu.js b/node_modules/moment/src/locale/hu.js new file mode 100644 index 0000000..f2f5981 --- /dev/null +++ b/node_modules/moment/src/locale/hu.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Hungarian [hu] +//! author : Adam Brunner : https://github.com/adambrunner +//! author : Peter Viszt : https://github.com/passatgt + +import moment from '../moment'; + +var weekEndings = + 'vas谩rnap h茅tf艖n kedden szerd谩n cs眉t枚rt枚k枚n p茅nteken szombaton'.split(' '); +function translate(number, withoutSuffix, key, isFuture) { + var num = number; + switch (key) { + case 's': + return isFuture || withoutSuffix + ? 'n茅h谩ny m谩sodperc' + : 'n茅h谩ny m谩sodperce'; + case 'ss': + return num + (isFuture || withoutSuffix) + ? ' m谩sodperc' + : ' m谩sodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' 贸ra' : ' 贸r谩ja'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' h贸nap' : ' h贸napja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' 茅v' : ' 茅ve'); + } + return ''; +} +function week(isFuture) { + return ( + (isFuture ? '' : '[m煤lt] ') + + '[' + + weekEndings[this.day()] + + '] LT[-kor]' + ); +} + +export default moment.defineLocale('hu', { + months: 'janu谩r_febru谩r_m谩rcius_谩prilis_m谩jus_j煤nius_j煤lius_augusztus_szeptember_okt贸ber_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._m谩rc._谩pr._m谩j._j煤n._j煤l._aug._szept._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'vas谩rnap_h茅tf艖_kedd_szerda_cs眉t枚rt枚k_p茅ntek_szombat'.split('_'), + weekdaysShort: 'vas_h茅t_kedd_sze_cs眉t_p茅n_szo'.split('_'), + weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY. MMMM D.', + LLL: 'YYYY. MMMM D. H:mm', + LLLL: 'YYYY. MMMM D., dddd H:mm', + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar: { + sameDay: '[ma] LT[-kor]', + nextDay: '[holnap] LT[-kor]', + nextWeek: function () { + return week.call(this, true); + }, + lastDay: '[tegnap] LT[-kor]', + lastWeek: function () { + return week.call(this, false); + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s m煤lva', + past: '%s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/hy-am.js b/node_modules/moment/src/locale/hy-am.js new file mode 100644 index 0000000..283cfbd --- /dev/null +++ b/node_modules/moment/src/locale/hy-am.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Armenian [hy-am] +//! author : Armendarabyan : https://github.com/armendarabyan + +import moment from '../moment'; + +export default moment.defineLocale('hy-am', { + months: { + format: '瞻崭謧斩站铡謤斋_謨榨湛謤站铡謤斋_沾铡謤湛斋_铡蘸謤斋宅斋_沾铡盏斋战斋_瞻崭謧斩斋战斋_瞻崭謧宅斋战斋_謪眨崭战湛崭战斋_战榨蘸湛榨沾闸榨謤斋_瞻崭寨湛榨沾闸榨謤斋_斩崭盏榨沾闸榨謤斋_栅榨寨湛榨沾闸榨謤斋'.split( + '_' + ), + standalone: + '瞻崭謧斩站铡謤_謨榨湛謤站铡謤_沾铡謤湛_铡蘸謤斋宅_沾铡盏斋战_瞻崭謧斩斋战_瞻崭謧宅斋战_謪眨崭战湛崭战_战榨蘸湛榨沾闸榨謤_瞻崭寨湛榨沾闸榨謤_斩崭盏榨沾闸榨謤_栅榨寨湛榨沾闸榨謤'.split( + '_' + ), + }, + monthsShort: '瞻斩站_謨湛謤_沾謤湛_铡蘸謤_沾盏战_瞻斩战_瞻宅战_謪眨战_战蘸湛_瞻寨湛_斩沾闸_栅寨湛'.split('_'), + weekdays: + '寨斋謤铡寨斋_榨謤寨崭謧辗铡闸诈斋_榨謤榨謩辗铡闸诈斋_展崭謤榨謩辗铡闸诈斋_瞻斋斩眨辗铡闸诈斋_崭謧謤闸铡诈_辗铡闸铡诈'.split( + '_' + ), + weekdaysShort: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + weekdaysMin: '寨謤寨_榨謤寨_榨謤謩_展謤謩_瞻斩眨_崭謧謤闸_辗闸诈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 诈.', + LLL: 'D MMMM YYYY 诈., HH:mm', + LLLL: 'dddd, D MMMM YYYY 诈., HH:mm', + }, + calendar: { + sameDay: '[铡盏战謪謤] LT', + nextDay: '[站铡詹炸] LT', + lastDay: '[榨謤榨寨] LT', + nextWeek: function () { + return 'dddd [謪謤炸 摘铡沾炸] LT'; + }, + lastWeek: function () { + return '[铡斩謥铡债] dddd [謪謤炸 摘铡沾炸] LT'; + }, + sameElse: 'L', + }, + relativeTime: { + future: '%s 瞻榨湛崭', + past: '%s 铡占铡栈', + s: '沾斋 謩铡斩斋 站铡盏謤寨盏铡斩', + ss: '%d 站铡盏謤寨盏铡斩', + m: '謤崭蘸榨', + mm: '%d 謤崭蘸榨', + h: '摘铡沾', + hh: '%d 摘铡沾', + d: '謪謤', + dd: '%d 謪謤', + M: '铡沾斋战', + MM: '%d 铡沾斋战', + y: '湛铡謤斋', + yy: '%d 湛铡謤斋', + }, + meridiemParse: /眨斋辗榨謤站铡|铡占铡站崭湛站铡|謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩/, + isPM: function (input) { + return /^(謥榨謤榨寨站铡|榨謤榨寨崭盏铡斩)$/.test(input); + }, + meridiem: function (hour) { + if (hour < 4) { + return '眨斋辗榨謤站铡'; + } else if (hour < 12) { + return '铡占铡站崭湛站铡'; + } else if (hour < 17) { + return '謥榨謤榨寨站铡'; + } else { + return '榨謤榨寨崭盏铡斩'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(斋斩|謤栅)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-斋斩'; + } + return number + '-謤栅'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/id.js b/node_modules/moment/src/locale/id.js new file mode 100644 index 0000000..3260e1c --- /dev/null +++ b/node_modules/moment/src/locale/id.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Indonesian [id] +//! author : Mohammad Satrio Utomo : https://github.com/tyok +//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + +import moment from '../moment'; + +export default moment.defineLocale('id', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'), + weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Besok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kemarin pukul] LT', + lastWeek: 'dddd [lalu pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lalu', + s: 'beberapa detik', + ss: '%d detik', + m: 'semenit', + mm: '%d menit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/is.js b/node_modules/moment/src/locale/is.js new file mode 100644 index 0000000..d2c6f47 --- /dev/null +++ b/node_modules/moment/src/locale/is.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Icelandic [is] +//! author : Hinrik 脰rn Sigur冒sson : https://github.com/hinrik + +import moment from '../moment'; + +function plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nokkrar sek煤ndur' + : 'nokkrum sek煤ndum'; + case 'ss': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture ? 'sek煤ndur' : 'sek煤ndum') + ); + } + return result + 'sek煤nda'; + case 'm': + return withoutSuffix ? 'm铆n煤ta' : 'm铆n煤tu'; + case 'mm': + if (plural(number)) { + return ( + result + (withoutSuffix || isFuture ? 'm铆n煤tur' : 'm铆n煤tum') + ); + } else if (withoutSuffix) { + return result + 'm铆n煤ta'; + } + return result + 'm铆n煤tu'; + case 'hh': + if (plural(number)) { + return ( + result + + (withoutSuffix || isFuture + ? 'klukkustundir' + : 'klukkustundum') + ); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'd枚gum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'm谩nu冒ur'; + } + return isFuture ? 'm谩nu冒' : 'm谩nu冒i'; + case 'MM': + if (plural(number)) { + if (withoutSuffix) { + return result + 'm谩nu冒ir'; + } + return result + (isFuture ? 'm谩nu冒i' : 'm谩nu冒um'); + } else if (withoutSuffix) { + return result + 'm谩nu冒ur'; + } + return result + (isFuture ? 'm谩nu冒' : 'm谩nu冒i'); + case 'y': + return withoutSuffix || isFuture ? '谩r' : '谩ri'; + case 'yy': + if (plural(number)) { + return result + (withoutSuffix || isFuture ? '谩r' : '谩rum'); + } + return result + (withoutSuffix || isFuture ? '谩r' : '谩ri'); + } +} + +export default moment.defineLocale('is', { + months: 'jan煤ar_febr煤ar_mars_apr铆l_ma铆_j煤n铆_j煤l铆_谩g煤st_september_okt贸ber_n贸vember_desember'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_ma铆_j煤n_j煤l_谩g煤_sep_okt_n贸v_des'.split('_'), + weekdays: + 'sunnudagur_m谩nudagur_镁ri冒judagur_mi冒vikudagur_fimmtudagur_f枚studagur_laugardagur'.split( + '_' + ), + weekdaysShort: 'sun_m谩n_镁ri_mi冒_fim_f枚s_lau'.split('_'), + weekdaysMin: 'Su_M谩_脼r_Mi_Fi_F枚_La'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm', + }, + calendar: { + sameDay: '[铆 dag kl.] LT', + nextDay: '[谩 morgun kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[铆 g忙r kl.] LT', + lastWeek: '[s铆冒asta] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'eftir %s', + past: 'fyrir %s s铆冒an', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: 'klukkustund', + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/it-ch.js b/node_modules/moment/src/locale/it-ch.js new file mode 100644 index 0000000..3437453 --- /dev/null +++ b/node_modules/moment/src/locale/it-ch.js @@ -0,0 +1,64 @@ +//! moment.js locale configuration +//! locale : Italian (Switzerland) [it-ch] +//! author : xfh : https://github.com/xfh + +import moment from '../moment'; + +export default moment.defineLocale('it-ch', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri 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: { + future: function (s) { + return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s; + }, + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/it.js b/node_modules/moment/src/locale/it.js new file mode 100644 index 0000000..46aaccf --- /dev/null +++ b/node_modules/moment/src/locale/it.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Italian [it] +//! author : Lorenzo : https://github.com/aliem +//! author: Mattia Larentis: https://github.com/nostalgiaz +//! author: Marco : https://github.com/Manfre98 + +import moment from '../moment'; + +export default moment.defineLocale('it', { + months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split( + '_' + ), + monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays: 'domenica_luned矛_marted矛_mercoled矛_gioved矛_venerd矛_sabato'.split( + '_' + ), + weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'), + weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: function () { + return ( + '[Oggi a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextDay: function () { + return ( + '[Domani a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + nextWeek: function () { + return ( + 'dddd [a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastDay: function () { + return ( + '[Ieri a' + + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") + + ']LT' + ); + }, + lastWeek: function () { + switch (this.day()) { + case 0: + return ( + '[La scorsa] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + default: + return ( + '[Lo scorso] dddd [a' + + (this.hours() > 1 + ? 'lle ' + : this.hours() === 0 + ? ' ' + : "ll'") + + ']LT' + ); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'tra %s', + past: '%s fa', + s: 'alcuni secondi', + ss: '%d secondi', + m: 'un minuto', + mm: '%d minuti', + h: "un'ora", + hh: '%d ore', + d: 'un giorno', + dd: '%d giorni', + w: 'una settimana', + ww: '%d settimane', + M: 'un mese', + MM: '%d mesi', + y: 'un anno', + yy: '%d anni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/ja.js b/node_modules/moment/src/locale/ja.js new file mode 100644 index 0000000..abe921a --- /dev/null +++ b/node_modules/moment/src/locale/ja.js @@ -0,0 +1,148 @@ +//! moment.js locale configuration +//! locale : Japanese [ja] +//! author : LI Long : https://github.com/baryon + +import moment from '../moment'; + +export default moment.defineLocale('ja', { + eras: [ + { + since: '2019-05-01', + offset: 1, + name: '浠ゅ拰', + narrow: '銒', + abbr: 'R', + }, + { + since: '1989-01-08', + until: '2019-04-30', + offset: 1, + name: '骞虫垚', + narrow: '銔', + abbr: 'H', + }, + { + since: '1926-12-25', + until: '1989-01-07', + offset: 1, + name: '鏄拰', + narrow: '銔', + abbr: 'S', + }, + { + since: '1912-07-30', + until: '1926-12-24', + offset: 1, + name: '澶ф', + narrow: '銔', + abbr: 'T', + }, + { + since: '1873-01-01', + until: '1912-07-29', + offset: 6, + name: '鏄庢不', + narrow: '銔', + abbr: 'M', + }, + { + since: '0001-01-01', + until: '1873-12-31', + offset: 1, + name: '瑗挎殾', + narrow: 'AD', + abbr: 'AD', + }, + { + since: '0000-12-31', + until: -Infinity, + offset: 1, + name: '绱鍏冨墠', + narrow: 'BC', + abbr: 'BC', + }, + ], + eraYearOrdinalRegex: /(鍏億\d+)骞/, + eraYearOrdinalParse: function (input, match) { + return match[1] === '鍏' ? 1 : parseInt(match[1] || input, 10); + }, + months: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split('_'), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏃ユ洔鏃鏈堟洔鏃鐏洔鏃姘存洔鏃鏈ㄦ洔鏃閲戞洔鏃鍦熸洔鏃'.split('_'), + weekdaysShort: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + weekdaysMin: '鏃鏈坃鐏玙姘確鏈╛閲慱鍦'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃 dddd HH:mm', + l: 'YYYY/MM/DD', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃(ddd) HH:mm', + }, + meridiemParse: /鍗堝墠|鍗堝緦/i, + isPM: function (input) { + return input === '鍗堝緦'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '鍗堝墠'; + } else { + return '鍗堝緦'; + } + }, + calendar: { + sameDay: '[浠婃棩] LT', + nextDay: '[鏄庢棩] LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[鏉ラ盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + lastDay: '[鏄ㄦ棩] LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[鍏堥盷dddd LT'; + } else { + return 'dddd LT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}鏃/, + ordinal: function (number, period) { + switch (period) { + case 'y': + return number === 1 ? '鍏冨勾' : number + '骞'; + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '鏁扮', + ss: '%d绉', + m: '1鍒', + mm: '%d鍒', + h: '1鏅傞枔', + hh: '%d鏅傞枔', + d: '1鏃', + dd: '%d鏃', + M: '1銉舵湀', + MM: '%d銉舵湀', + y: '1骞', + yy: '%d骞', + }, +}); diff --git a/node_modules/moment/src/locale/jv.js b/node_modules/moment/src/locale/jv.js new file mode 100644 index 0000000..b52f48d --- /dev/null +++ b/node_modules/moment/src/locale/jv.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Javanese [jv] +//! author : Rony Lantip : https://github.com/lantip +//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + +import moment from '../moment'; + +export default moment.defineLocale('jv', { + months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar: { + sameDay: '[Dinten puniko pukul] LT', + nextDay: '[Mbenjang pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kala wingi pukul] LT', + lastWeek: 'dddd [kepengker pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'wonten ing %s', + past: '%s ingkang kepengker', + s: 'sawetawis detik', + ss: '%d detik', + m: 'setunggal menit', + mm: '%d menit', + h: 'setunggal jam', + hh: '%d jam', + d: 'sedinten', + dd: '%d dinten', + M: 'sewulan', + MM: '%d wulan', + y: 'setaun', + yy: '%d taun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ka.js b/node_modules/moment/src/locale/ka.js new file mode 100644 index 0000000..15b6ead --- /dev/null +++ b/node_modules/moment/src/locale/ka.js @@ -0,0 +1,92 @@ +//! moment.js locale configuration +//! locale : Georgian [ka] +//! author : Irakli Janiashvili : https://github.com/IrakliJani + +import moment from '../moment'; + +export default moment.defineLocale('ka', { + months: '醿樶儛醿溼儠醿愥儬醿榑醿椺償醿戓償醿犪儠醿愥儦醿榑醿涐儛醿犪儮醿榑醿愥優醿犪儤醿氠儤_醿涐儛醿樶儭醿榑醿樶儠醿溼儤醿♂儤_醿樶儠醿氠儤醿♂儤_醿愥儝醿曖儤醿♂儮醿漘醿♂償醿メ儮醿斸儧醿戓償醿犪儤_醿濁儱醿⑨儩醿涐儜醿斸儬醿榑醿溼儩醿斸儧醿戓償醿犪儤_醿撫償醿欋償醿涐儜醿斸儬醿'.split( + '_' + ), + monthsShort: '醿樶儛醿淿醿椺償醿慱醿涐儛醿燺醿愥優醿燺醿涐儛醿榑醿樶儠醿淿醿樶儠醿歘醿愥儝醿昣醿♂償醿醿濁儱醿醿溼儩醿擾醿撫償醿'.split('_'), + weekdays: { + standalone: + '醿欋儠醿樶儬醿恄醿濁儬醿ㄡ儛醿戓儛醿椺儤_醿♂儛醿涐儴醿愥儜醿愥儣醿榑醿濁儣醿儴醿愥儜醿愥儣醿榑醿儯醿椺儴醿愥儜醿愥儣醿榑醿炨儛醿犪儛醿♂儥醿斸儠醿榑醿ㄡ儛醿戓儛醿椺儤'.split( + '_' + ), + format: '醿欋儠醿樶儬醿愥儭_醿濁儬醿ㄡ儛醿戓儛醿椺儭_醿♂儛醿涐儴醿愥儜醿愥儣醿醿濁儣醿儴醿愥儜醿愥儣醿醿儯醿椺儴醿愥儜醿愥儣醿醿炨儛醿犪儛醿♂儥醿斸儠醿醿ㄡ儛醿戓儛醿椺儭'.split( + '_' + ), + isFormat: /(醿儤醿溼儛|醿ㄡ償醿涐儞醿斸儝)/, + }, + weekdaysShort: '醿欋儠醿榑醿濁儬醿╛醿♂儛醿沖醿濁儣醿甠醿儯醿梍醿炨儛醿燺醿ㄡ儛醿'.split('_'), + weekdaysMin: '醿欋儠_醿濁儬_醿♂儛_醿濁儣_醿儯_醿炨儛_醿ㄡ儛'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醿撫儲醿斸儭] LT[-醿栣償]', + nextDay: '[醿儠醿愥儦] LT[-醿栣償]', + lastDay: '[醿掅儯醿ㄡ儤醿淽 LT[-醿栣償]', + nextWeek: '[醿ㄡ償醿涐儞醿斸儝] dddd LT[-醿栣償]', + lastWeek: '[醿儤醿溼儛] dddd LT-醿栣償', + sameElse: 'L', + }, + relativeTime: { + future: function (s) { + return s.replace( + /(醿儛醿泑醿儯醿梶醿♂儛醿愥儣|醿償醿殀醿撫儲|醿椺儠)(醿榺醿)/, + function ($0, $1, $2) { + return $2 === '醿' ? $1 + '醿ㄡ儤' : $1 + $2 + '醿ㄡ儤'; + } + ); + }, + past: function (s) { + if (/(醿儛醿涐儤|醿儯醿椺儤|醿♂儛醿愥儣醿榺醿撫儲醿攟醿椺儠醿)/.test(s)) { + return s.replace(/(醿榺醿)$/, '醿樶儭 醿儤醿'); + } + if (/醿償醿氠儤/.test(s)) { + return s.replace(/醿償醿氠儤$/, '醿儦醿樶儭 醿儤醿'); + } + return s; + }, + s: '醿犪儛醿涐儞醿斸儨醿樶儧醿 醿儛醿涐儤', + ss: '%d 醿儛醿涐儤', + m: '醿儯醿椺儤', + mm: '%d 醿儯醿椺儤', + h: '醿♂儛醿愥儣醿', + hh: '%d 醿♂儛醿愥儣醿', + d: '醿撫儲醿', + dd: '%d 醿撫儲醿', + M: '醿椺儠醿', + MM: '%d 醿椺儠醿', + y: '醿償醿氠儤', + yy: '%d 醿償醿氠儤', + }, + dayOfMonthOrdinalParse: /0|1-醿氠儤|醿涐償-\d{1,2}|\d{1,2}-醿/, + ordinal: function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-醿氠儤'; + } + if ( + number < 20 || + (number <= 100 && number % 20 === 0) || + number % 100 === 0 + ) { + return '醿涐償-' + number; + } + return number + '-醿'; + }, + week: { + dow: 1, + doy: 7, + }, +}); diff --git a/node_modules/moment/src/locale/kk.js b/node_modules/moment/src/locale/kk.js new file mode 100644 index 0000000..9cab152 --- /dev/null +++ b/node_modules/moment/src/locale/kk.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Kazakh [kk] +//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan + +import moment from '../moment'; + +var suffixes = { + 0: '-褕褨', + 1: '-褕褨', + 2: '-褕褨', + 3: '-褕褨', + 4: '-褕褨', + 5: '-褕褨', + 6: '-褕褘', + 7: '-褕褨', + 8: '-褕褨', + 9: '-褕褘', + 10: '-褕褘', + 20: '-褕褘', + 30: '-褕褘', + 40: '-褕褘', + 50: '-褕褨', + 60: '-褕褘', + 70: '-褕褨', + 80: '-褕褨', + 90: '-褕褘', + 100: '-褕褨', +}; + +export default moment.defineLocale('kk', { + months: '覜邪遥褌邪褉_邪覜锌邪薪_薪邪褍褉褘蟹_褋訖褍褨褉_屑邪屑褘褉_屑邪褍褋褘屑_褕褨谢写械_褌邪屑褘蟹_覜褘褉泻爷泄械泻_覜邪蟹邪薪_覜邪褉邪褕邪_卸械谢褌芯覜褋邪薪'.split( + '_' + ), + monthsShort: '覜邪遥_邪覜锌_薪邪褍_褋訖褍_屑邪屑_屑邪褍_褕褨谢_褌邪屑_覜褘褉_覜邪蟹_覜邪褉_卸械谢'.split('_'), + weekdays: '卸械泻褋械薪斜褨_写爷泄褋械薪斜褨_褋械泄褋械薪斜褨_褋訖褉褋械薪斜褨_斜械泄褋械薪斜褨_卸冶屑邪_褋械薪斜褨'.split( + '_' + ), + weekdaysShort: '卸械泻_写爷泄_褋械泄_褋訖褉_斜械泄_卸冶屑_褋械薪'.split('_'), + weekdaysMin: '卸泻_写泄_褋泄_褋褉_斜泄_卸屑_褋薪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐褨薪 褋邪覔邪褌] LT', + nextDay: '[袝褉褌械遥 褋邪覔邪褌] LT', + nextWeek: 'dddd [褋邪覔邪褌] LT', + lastDay: '[袣械褕械 褋邪覔邪褌] LT', + lastWeek: '[莹褌泻械薪 邪锌褌邪薪褘遥] dddd [褋邪覔邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 褨褕褨薪写械', + past: '%s 斜冶褉褘薪', + s: '斜褨褉薪械褕械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜褨褉 屑懈薪褍褌', + mm: '%d 屑懈薪褍褌', + h: '斜褨褉 褋邪覔邪褌', + hh: '%d 褋邪覔邪褌', + d: '斜褨褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜褨褉 邪泄', + MM: '%d 邪泄', + y: '斜褨褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褕褨|褕褘)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/km.js b/node_modules/moment/src/locale/km.js new file mode 100644 index 0000000..984c4dc --- /dev/null +++ b/node_modules/moment/src/locale/km.js @@ -0,0 +1,103 @@ +//! moment.js locale configuration +//! locale : Cambodian [km] +//! author : Kruy Vanna : https://github.com/kruyvanna + +import moment from '../moment'; + +var symbolMap = { + 1: '釤', + 2: '釤', + 3: '釤', + 4: '釤', + 5: '釤', + 6: '釤', + 7: '釤', + 8: '釤', + 9: '釤', + 0: '釤', + }, + numberMap = { + '釤': '1', + '釤': '2', + '釤': '3', + '釤': '4', + '釤': '5', + '釤': '6', + '釤': '7', + '釤': '8', + '釤': '9', + '釤': '0', + }; + +export default moment.defineLocale('km', { + months: '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + monthsShort: + '釣樶瀫釣氠灦_釣釣会灅釤掅灄釤坃釣樶灨釣撫灦_釣樶焷釣熱灦_釣п灍釣椺灦_釣樶灧釣愥灮釣撫灦_釣釣釤掅瀫釣娽灦_釣熱灨釣犪灦_釣釣夅煉釣夅灦_釣忈灮釣涐灦_釣溼灧釣呩煉釣嗎灧釣釣禵釣掅煉釣撫灱'.split( + '_' + ), + weekdays: '釣⑨灦釣戓灧釣忈煉釣檁釣呩煇釣撫煉釣慱釣⑨瀯釤掅瀭釣夺灇_釣栣灮釣抇釣栣煉釣氠灎釣熱煉釣斸瀼釣丰煃_釣熱灮釣釤掅灇_釣熱焻釣氠煃'.split('_'), + weekdaysShort: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysMin: '釣⑨灦_釣卂釣釣朹釣栣煉釣歘釣熱灮_釣'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /釣栣煉釣氠灩釣|釣涐煉釣勧灦釣/, + isPM: function (input) { + return input === '釣涐煉釣勧灦釣'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '釣栣煉釣氠灩釣'; + } else { + return '釣涐煉釣勧灦釣'; + } + }, + calendar: { + sameDay: '[釣愥煉釣勧焹釣撫焷釤 釣樶焿釤勧瀯] LT', + nextDay: '[釣熱煉釣⑨焸釣 釣樶焿釤勧瀯] LT', + nextWeek: 'dddd [釣樶焿釤勧瀯] LT', + lastDay: '[釣樶煉釣熱灧釣涐灅釣丰瀴 釣樶焿釤勧瀯] LT', + lastWeek: 'dddd [釣熱灁釤掅瀼釣夺灎釤嶀灅釣会灀] [釣樶焿釤勧瀯] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s釣戓焵釣', + past: '%s釣樶灮釣', + s: '釣斸焿釣会灀釤掅灅釣夺灀釣溼灧釣撫灦釣戓灨', + ss: '%d 釣溼灧釣撫灦釣戓灨', + m: '釣樶灲釣欋灀釣夺瀾釣', + mm: '%d 釣撫灦釣戓灨', + h: '釣樶灲釣欋灅釤夅焺釣', + hh: '%d 釣樶焿釤勧瀯', + d: '釣樶灲釣欋瀽釤掅瀯釤', + dd: '%d 釣愥煉釣勧焹', + M: '釣樶灲釣欋瀬釤', + MM: '%d 釣佱焸', + y: '釣樶灲釣欋瀱釤掅灀釣夺焼', + yy: '%d 釣嗎煉釣撫灦釤', + }, + dayOfMonthOrdinalParse: /釣戓灨\d{1,2}/, + ordinal: '釣戓灨%d', + preparse: function (string) { + return string.replace(/[釤♂煝釤a煠釤メ煢釤п煥釤┽煚]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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/node_modules/moment/src/locale/kn.js b/node_modules/moment/src/locale/kn.js new file mode 100644 index 0000000..e7cb354 --- /dev/null +++ b/node_modules/moment/src/locale/kn.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Kannada [kn] +//! author : Rajeev Naik : https://github.com/rajeevnaikte + +import moment from '../moment'; + +var symbolMap = { + 1: '喑', + 2: '喑', + 3: '喑', + 4: '喑', + 5: '喑', + 6: '喑', + 7: '喑', + 8: '喑', + 9: '喑', + 0: '喑', + }, + numberMap = { + '喑': '1', + '喑': '2', + '喑': '3', + '喑': '4', + '喑': '5', + '喑': '6', + '喑': '7', + '喑': '8', + '喑': '9', + '喑': '0', + }; + +export default moment.defineLocale('kn', { + months: '嗖溹波嗖掂舶嗖縚嗖硢嗖硩嗖班驳嗖班部_嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖傕铂嗖班硩_嗖呧矔喑嵿矡喑嗋硞喑曕铂嗖班硩_嗖ㄠ驳喑嗋矀嗖舶喑峗嗖∴部嗖膏硢嗖傕铂嗖班硩'.split( + '_' + ), + monthsShort: + '嗖溹波_嗖硢嗖硩嗖癬嗖簿嗖班硩嗖氞硩_嗖忇勃喑嵿舶嗖苦膊喑峗嗖硢喑昣嗖溹硞嗖ㄠ硩_嗖溹硜嗖侧硢喑朹嗖嗋矖嗖膏硩嗖熰硩_嗖膏硢嗖硩嗖熰硢嗖俖嗖呧矔喑嵿矡喑嗋硞喑昣嗖ㄠ驳喑嗋矀_嗖∴部嗖膏硢嗖'.split( + '_' + ), + monthsParseExact: true, + weekdays: '嗖簿嗖ㄠ硜嗖掂簿嗖癬嗖膏硢喑傕硶嗖驳嗖距舶_嗖矀嗖椸渤嗖掂簿嗖癬嗖硜嗖о驳嗖距舶_嗖椸硜嗖班硜嗖掂簿嗖癬嗖多硜嗖曕硩嗖班驳嗖距舶_嗖多波嗖苦驳嗖距舶'.split( + '_' + ), + weekdaysShort: '嗖簿嗖ㄠ硜_嗖膏硢喑傕硶嗖甠嗖矀嗖椸渤_嗖硜嗖嗖椸硜嗖班硜_嗖多硜嗖曕硩嗖癬嗖多波嗖'.split('_'), + weekdaysMin: '嗖簿_嗖膏硢喑傕硶_嗖矀_嗖硜_嗖椸硜_嗖多硜_嗖'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[嗖囙矀嗖︵硜] LT', + nextDay: '[嗖ㄠ簿嗖赤硢] LT', + nextWeek: 'dddd, LT', + lastDay: '[嗖ㄠ部嗖ㄠ硩嗖ㄠ硢] LT', + lastWeek: '[嗖曕硢喑傕波喑嗋帛] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 嗖ㄠ矀嗖む舶', + past: '%s 嗖灌部嗖傕拨喑', + s: '嗖曕硢嗖侧驳喑 嗖曕硩嗖粪玻嗖椸渤喑', + ss: '%d 嗖膏硢嗖曕硢嗖傕病喑佮矖嗖赤硜', + m: '嗖掄矀嗖︵硜 嗖ㄠ部嗖部嗖', + mm: '%d 嗖ㄠ部嗖部嗖', + h: '嗖掄矀嗖︵硜 嗖椸矀嗖熰硢', + hh: '%d 嗖椸矀嗖熰硢', + d: '嗖掄矀嗖︵硜 嗖︵部嗖', + dd: '%d 嗖︵部嗖', + M: '嗖掄矀嗖︵硜 嗖む部嗖傕矖嗖赤硜', + MM: '%d 嗖む部嗖傕矖嗖赤硜', + y: '嗖掄矀嗖︵硜 嗖掂舶喑嵿卜', + yy: '%d 嗖掂舶喑嵿卜', + }, + preparse: function (string) { + return string.replace(/[喑о敞喑┼唱喑超喑钞喑肠]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /嗖班簿嗖む硩嗖班部|嗖硢嗖赤部嗖椸硩嗖椸硢|嗖钵喑嵿帛嗖距补喑嵿波|嗖膏矀嗖溹硢/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '嗖班簿嗖む硩嗖班部') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '嗖硢嗖赤部嗖椸硩嗖椸硢') { + return hour; + } else if (meridiem === '嗖钵喑嵿帛嗖距补喑嵿波') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '嗖膏矀嗖溹硢') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '嗖班簿嗖む硩嗖班部'; + } else if (hour < 10) { + return '嗖硢嗖赤部嗖椸硩嗖椸硢'; + } else if (hour < 17) { + return '嗖钵喑嵿帛嗖距补喑嵿波'; + } else if (hour < 20) { + return '嗖膏矀嗖溹硢'; + } else { + return '嗖班簿嗖む硩嗖班部'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}(嗖ㄠ硢喑)/, + ordinal: function (number) { + return number + '嗖ㄠ硢喑'; + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ko.js b/node_modules/moment/src/locale/ko.js new file mode 100644 index 0000000..c45f3e3 --- /dev/null +++ b/node_modules/moment/src/locale/ko.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Korean [ko] +//! author : Kyungwook, Park : https://github.com/kyungw00k +//! author : Jeeeyul Lee + +import moment from '../moment'; + +export default moment.defineLocale('ko', { + months: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split('_'), + monthsShort: '1鞗擾2鞗擾3鞗擾4鞗擾5鞗擾6鞗擾7鞗擾8鞗擾9鞗擾10鞗擾11鞗擾12鞗'.split( + '_' + ), + weekdays: '鞚检殧鞚糭鞗旍殧鞚糭頇旍殧鞚糭靾橃殧鞚糭氇╈殧鞚糭旮堨殧鞚糭韱犾殧鞚'.split('_'), + weekdaysShort: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + weekdaysMin: '鞚糭鞗擾頇擾靾榑氇旮坃韱'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'YYYY.MM.DD.', + LL: 'YYYY雲 MMMM D鞚', + LLL: 'YYYY雲 MMMM D鞚 A h:mm', + LLLL: 'YYYY雲 MMMM D鞚 dddd A h:mm', + l: 'YYYY.MM.DD.', + ll: 'YYYY雲 MMMM D鞚', + lll: 'YYYY雲 MMMM D鞚 A h:mm', + llll: 'YYYY雲 MMMM D鞚 dddd A h:mm', + }, + calendar: { + sameDay: '鞓る姌 LT', + nextDay: '雮挫澕 LT', + nextWeek: 'dddd LT', + lastDay: '鞏挫牅 LT', + lastWeek: '歆雮滌< dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 頉', + past: '%s 鞝', + s: '氇 齑', + ss: '%d齑', + m: '1攵', + mm: '%d攵', + h: '頃 鞁滉皠', + hh: '%d鞁滉皠', + d: '頃橂(', + dd: '%d鞚', + M: '頃 雼', + MM: '%d雼', + y: '鞚 雲', + yy: '%d雲', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鞚紎鞗攟欤)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鞚'; + case 'M': + return number + '鞗'; + case 'w': + case 'W': + return number + '欤'; + default: + return number; + } + }, + meridiemParse: /鞓れ爠|鞓ろ泟/, + isPM: function (token) { + return token === '鞓ろ泟'; + }, + meridiem: function (hour, minute, isUpper) { + return hour < 12 ? '鞓れ爠' : '鞓ろ泟'; + }, +}); diff --git a/node_modules/moment/src/locale/ku.js b/node_modules/moment/src/locale/ku.js new file mode 100644 index 0000000..e705f01 --- /dev/null +++ b/node_modules/moment/src/locale/ku.js @@ -0,0 +1,118 @@ +//! moment.js locale configuration +//! locale : Kurdish [ku] +//! author : Shahram Mebashar : https://github.com/ShahramMebashar + +import moment from '../moment'; + +var symbolMap = { + 1: '佟', + 2: '佗', + 3: '伲', + 4: '伽', + 5: '佶', + 6: '佴', + 7: '侑', + 8: '侉', + 9: '侃', + 0: '贍', + }, + numberMap = { + '佟': '1', + '佗': '2', + '伲': '3', + '伽': '4', + '佶': '5', + '佴': '6', + '侑': '7', + '侉': '8', + '侃': '9', + '贍': '0', + }, + months = [ + '讴丕賳賵賳蹖 丿賵賵蹠賲', + '卮賵亘丕鬲', + '卅丕夭丕乇', + '賳蹖爻丕賳', + '卅丕蹖丕乇', + '丨賵夭蹠蹖乇丕賳', + '鬲蹠賲賲賵夭', + '卅丕亘', + '卅蹠蹖賱賵賵賱', + '鬲卮乇蹖賳蹖 蹖蹠賰蹠賲', + '鬲卮乇蹖賳蹖 丿賵賵蹠賲', + '賰丕賳賵賳蹖 蹖蹠讴蹠賲', + ]; + +export default moment.defineLocale('ku', { + months: months, + monthsShort: months, + weekdays: + '蹖賴鈥屬冐促団屬呝呝団宊丿賵賵卮賴鈥屬呝呝団宊爻蹘卮賴鈥屬呝呝団宊趩賵丕乇卮賴鈥屬呝呝団宊倬蹘賳噩卮賴鈥屬呝呝団宊賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split( + '_' + ), + weekdaysShort: + '蹖賴鈥屬冐促団屬卂丿賵賵卮賴鈥屬卂爻蹘卮賴鈥屬卂趩賵丕乇卮賴鈥屬卂倬蹘賳噩卮賴鈥屬卂賴賴鈥屰屬嗃宊卮賴鈥屬呝呝団'.split('_'), + weekdaysMin: '蹖_丿_爻_趩_倬_賴_卮'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + meridiemParse: /卅蹘賵丕乇賴鈥寍亘賴鈥屰屫з嗃/, + isPM: function (input) { + return /卅蹘賵丕乇賴鈥/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '亘賴鈥屰屫з嗃'; + } else { + return '卅蹘賵丕乇賴鈥'; + } + }, + calendar: { + sameDay: '[卅賴鈥屬呚臂 賰丕鬲跇賲蹘乇] LT', + nextDay: '[亘賴鈥屰屫з嗃 賰丕鬲跇賲蹘乇] LT', + nextWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + lastDay: '[丿賵蹘賳蹘 賰丕鬲跇賲蹘乇] LT', + lastWeek: 'dddd [賰丕鬲跇賲蹘乇] LT', + sameElse: 'L', + }, + relativeTime: { + future: '賱賴鈥 %s', + past: '%s', + s: '趩賴鈥屬嗀 趩乇賰賴鈥屰屬団屬', + ss: '趩乇賰賴鈥 %d', + m: '蹖賴鈥屬 禺賵賱賴鈥屬', + mm: '%d 禺賵賱賴鈥屬', + h: '蹖賴鈥屬 賰丕鬲跇賲蹘乇', + hh: '%d 賰丕鬲跇賲蹘乇', + d: '蹖賴鈥屬 跁蹎跇', + dd: '%d 跁蹎跇', + M: '蹖賴鈥屬 賲丕賳诏', + MM: '%d 賲丕賳诏', + y: '蹖賴鈥屬 爻丕诘', + yy: '%d 爻丕诘', + }, + preparse: function (string) { + return string + .replace(/[佟佗伲伽佶佴侑侉侃贍]/g, function (match) { + return numberMap[match]; + }) + .replace(/貙/g, ','); + }, + postformat: function (string) { + return string + .replace(/\d/g, function (match) { + return symbolMap[match]; + }) + .replace(/,/g, '貙'); + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ky.js b/node_modules/moment/src/locale/ky.js new file mode 100644 index 0000000..2108d09 --- /dev/null +++ b/node_modules/moment/src/locale/ky.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : Kyrgyz [ky] +//! author : Chyngyz Arystan uulu : https://github.com/chyngyz + +import moment from '../moment'; + +var suffixes = { + 0: '-褔爷', + 1: '-褔懈', + 2: '-褔懈', + 3: '-褔爷', + 4: '-褔爷', + 5: '-褔懈', + 6: '-褔褘', + 7: '-褔懈', + 8: '-褔懈', + 9: '-褔褍', + 10: '-褔褍', + 20: '-褔褘', + 30: '-褔褍', + 40: '-褔褘', + 50: '-褔爷', + 60: '-褔褘', + 70: '-褔懈', + 80: '-褔懈', + 90: '-褔褍', + 100: '-褔爷', +}; + +export default moment.defineLocale('ky', { + months: '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉褌_邪锌褉_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split( + '_' + ), + weekdays: '袞械泻褕械屑斜懈_袛爷泄褕萤屑斜爷_楔械泄褕械屑斜懈_楔邪褉褕械屑斜懈_袘械泄褕械屑斜懈_袞褍屑邪_袠褕械屑斜懈'.split( + '_' + ), + weekdaysShort: '袞械泻_袛爷泄_楔械泄_楔邪褉_袘械泄_袞褍屑_袠褕械'.split('_'), + weekdaysMin: '袞泻_袛泄_楔泄_楔褉_袘泄_袞屑_袠褕'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袘爷谐爷薪 褋邪邪褌] LT', + nextDay: '[协褉褌械遥 褋邪邪褌] LT', + nextWeek: 'dddd [褋邪邪褌] LT', + lastDay: '[袣械褔褝褝 褋邪邪褌] LT', + lastWeek: '[莹褌泻萤薪 邪锌褌邪薪褘薪] dddd [泻爷薪爷] [褋邪邪褌] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 懈褔懈薪写械', + past: '%s 屑褍褉褍薪', + s: '斜懈褉薪械褔械 褋械泻褍薪写', + ss: '%d 褋械泻褍薪写', + m: '斜懈褉 屑爷薪萤褌', + mm: '%d 屑爷薪萤褌', + h: '斜懈褉 褋邪邪褌', + hh: '%d 褋邪邪褌', + d: '斜懈褉 泻爷薪', + dd: '%d 泻爷薪', + M: '斜懈褉 邪泄', + MM: '%d 邪泄', + y: '斜懈褉 卸褘谢', + yy: '%d 卸褘谢', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褔懈|褔褘|褔爷|褔褍)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/lb.js b/node_modules/moment/src/locale/lb.js new file mode 100644 index 0000000..f01e662 --- /dev/null +++ b/node_modules/moment/src/locale/lb.js @@ -0,0 +1,137 @@ +//! moment.js locale configuration +//! locale : Luxembourgish [lb] +//! author : mweimerskirch : https://github.com/mweimerskirch +//! author : David Raison : https://github.com/kwisatz + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + m: ['eng Minutt', 'enger Minutt'], + h: ['eng Stonn', 'enger Stonn'], + d: ['een Dag', 'engem Dag'], + M: ['ee Mount', 'engem Mount'], + y: ['ee Joer', 'engem Joer'], + }; + return withoutSuffix ? format[key][0] : format[key][1]; +} +function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; +} +function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; +} +/** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ +function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, + firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } +} + +export default moment.defineLocale('lb', { + months: 'Januar_Februar_M盲erz_Abr毛ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split( + '_' + ), + monthsShort: + 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'Sonndeg_M茅indeg_D毛nschdeg_M毛ttwoch_Donneschdeg_Freideg_Samschdeg'.split( + '_' + ), + weekdaysShort: 'So._M茅._D毛._M毛._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_M茅_D毛_M毛_Do_Fr_Sa'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]', + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[G毛schter um] LT', + lastWeek: function () { + // Different date string for 'D毛nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + }, + }, + relativeTime: { + future: processFutureTime, + past: processPastTime, + s: 'e puer Sekonnen', + ss: '%d Sekonnen', + m: processRelativeTime, + mm: '%d Minutten', + h: processRelativeTime, + hh: '%d Stonnen', + d: processRelativeTime, + dd: '%d Deeg', + M: processRelativeTime, + MM: '%d M茅int', + y: processRelativeTime, + yy: '%d Joer', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/lo.js b/node_modules/moment/src/locale/lo.js new file mode 100644 index 0000000..cd6cc20 --- /dev/null +++ b/node_modules/moment/src/locale/lo.js @@ -0,0 +1,66 @@ +//! moment.js locale configuration +//! locale : Lao [lo] +//! author : Ryan Hart : https://github.com/ryanhart2 + +import moment from '../moment'; + +export default moment.defineLocale('lo', { + months: '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + monthsShort: + '嗪∴罕嗪囙簛嗪簷_嗪佮焊嗪∴簽嗪瞋嗪∴旱嗪權翰_嗷嗪∴邯嗪瞋嗪炧憾嗪斷邯嗪班簽嗪瞋嗪∴捍嗪栢焊嗪權翰_嗪佮粛嗪ム喊嗪佮夯嗪擾嗪捍嗪囙韩嗪瞋嗪佮罕嗪權簫嗪瞋嗪曕焊嗪ム翰_嗪炧喊嗪堗捍嗪乢嗪椸罕嗪權骇嗪'.split( + '_' + ), + weekdays: '嗪翰嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysShort: '嗪椸捍嗪擾嗪堗罕嗪檁嗪罕嗪囙簞嗪侧簷_嗪炧焊嗪擾嗪炧喊嗪罕嗪擾嗪焊嗪乢嗷嗪夯嗪'.split('_'), + weekdaysMin: '嗪梍嗪坃嗪簞_嗪瀇嗪炧韩_嗪簛_嗪'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: '嗪о罕嗪檇ddd D MMMM YYYY HH:mm', + }, + meridiemParse: /嗪曕涵嗪權粈嗪娻夯嗷夃翰|嗪曕涵嗪權粊嗪ム簢/, + isPM: function (input) { + return input === '嗪曕涵嗪權粊嗪ム簢'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '嗪曕涵嗪權粈嗪娻夯嗷夃翰'; + } else { + return '嗪曕涵嗪權粊嗪ム簢'; + } + }, + calendar: { + sameDay: '[嗪∴悍嗷夃簷嗪掂粔嗷嗪о亥嗪瞉 LT', + nextDay: '[嗪∴悍嗷夃涵嗪粪粓嗪權粈嗪о亥嗪瞉 LT', + nextWeek: '[嗪о罕嗪橾dddd[嗷溹粔嗪侧粈嗪о亥嗪瞉 LT', + lastDay: '[嗪∴悍嗷夃骇嗪侧簷嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + lastWeek: '[嗪о罕嗪橾dddd[嗷佮亥嗷夃骇嗪權旱嗷夃粈嗪о亥嗪瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '嗪旱嗪 %s', + past: '%s嗪溹粓嗪侧簷嗪∴翰', + s: '嗪氞粛嗷堗粈嗪椸夯嗷堗翰嗷冟簲嗪о捍嗪權翰嗪椸旱', + ss: '%d 嗪о捍嗪權翰嗪椸旱', + m: '1 嗪權翰嗪椸旱', + mm: '%d 嗪權翰嗪椸旱', + h: '1 嗪娻夯嗷堗骇嗷傕骸嗪', + hh: '%d 嗪娻夯嗷堗骇嗷傕骸嗪', + d: '1 嗪∴悍嗷', + dd: '%d 嗪∴悍嗷', + M: '1 嗷嗪斷悍嗪簷', + MM: '%d 嗷嗪斷悍嗪簷', + y: '1 嗪涏旱', + yy: '%d 嗪涏旱', + }, + dayOfMonthOrdinalParse: /(嗪椸旱嗷)\d{1,2}/, + ordinal: function (number) { + return '嗪椸旱嗷' + number; + }, +}); diff --git a/node_modules/moment/src/locale/lt.js b/node_modules/moment/src/locale/lt.js new file mode 100644 index 0000000..f011261 --- /dev/null +++ b/node_modules/moment/src/locale/lt.js @@ -0,0 +1,125 @@ +//! moment.js locale configuration +//! locale : Lithuanian [lt] +//! author : Mindaugas Moz奴ras : https://github.com/mmozuras + +import moment from '../moment'; + +var units = { + ss: 'sekund臈_sekund啪i懦_sekundes', + m: 'minut臈_minut臈s_minut臋', + mm: 'minut臈s_minu膷i懦_minutes', + h: 'valanda_valandos_valand膮', + hh: 'valandos_valand懦_valandas', + d: 'diena_dienos_dien膮', + dd: 'dienos_dien懦_dienas', + M: 'm臈nuo_m臈nesio_m臈nes寞', + MM: 'm臈nesiai_m臈nesi懦_m臈nesius', + y: 'metai_met懦_metus', + yy: 'metai_met懦_metus', +}; +function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekund臈s'; + } else { + return isFuture ? 'keli懦 sekund啪i懦' : 'kelias sekundes'; + } +} +function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix + ? forms(key)[0] + : isFuture + ? forms(key)[1] + : forms(key)[2]; +} +function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); +} +function forms(key) { + return units[key].split('_'); +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return ( + result + translateSingular(number, withoutSuffix, key[0], isFuture) + ); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } +} +export default moment.defineLocale('lt', { + months: { + format: 'sausio_vasario_kovo_baland啪io_gegu啪臈s_bir啪elio_liepos_rugpj奴膷io_rugs臈jo_spalio_lapkri膷io_gruod啪io'.split( + '_' + ), + standalone: + 'sausis_vasaris_kovas_balandis_gegu啪臈_bir啪elis_liepa_rugpj奴tis_rugs臈jis_spalis_lapkritis_gruodis'.split( + '_' + ), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/, + }, + monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays: { + format: 'sekmadien寞_pirmadien寞_antradien寞_tre膷iadien寞_ketvirtadien寞_penktadien寞_拧e拧tadien寞'.split( + '_' + ), + standalone: + 'sekmadienis_pirmadienis_antradienis_tre膷iadienis_ketvirtadienis_penktadienis_拧e拧tadienis'.split( + '_' + ), + isFormat: /dddd HH:mm/, + }, + weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_艩e拧'.split('_'), + weekdaysMin: 'S_P_A_T_K_Pn_艩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY [m.] MMMM D [d.]', + LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l: 'YYYY-MM-DD', + ll: 'YYYY [m.] MMMM D [d.]', + lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]', + }, + calendar: { + sameDay: '[艩iandien] LT', + nextDay: '[Rytoj] LT', + nextWeek: 'dddd LT', + lastDay: '[Vakar] LT', + lastWeek: '[Pra臈jus寞] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: 'po %s', + past: 'prie拧 %s', + s: translateSeconds, + ss: translate, + m: translateSingular, + mm: translate, + h: translateSingular, + hh: translate, + d: translateSingular, + dd: translate, + M: translateSingular, + MM: translate, + y: translateSingular, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function (number) { + return number + '-oji'; + }, + 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/node_modules/moment/src/locale/lv.js b/node_modules/moment/src/locale/lv.js new file mode 100644 index 0000000..3a89653 --- /dev/null +++ b/node_modules/moment/src/locale/lv.js @@ -0,0 +1,94 @@ +//! moment.js locale configuration +//! locale : Latvian [lv] +//! author : Kristaps Karlsons : https://github.com/skakri +//! author : J膩nis Elmeris : https://github.com/JanisE + +import moment from '../moment'; + +var units = { + ss: 'sekundes_sekund膿m_sekunde_sekundes'.split('_'), + m: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + mm: 'min奴tes_min奴t膿m_min奴te_min奴tes'.split('_'), + h: 'stundas_stund膩m_stunda_stundas'.split('_'), + hh: 'stundas_stund膩m_stunda_stundas'.split('_'), + d: 'dienas_dien膩m_diena_dienas'.split('_'), + dd: 'dienas_dien膩m_diena_dienas'.split('_'), + M: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + MM: 'm膿ne拧a_m膿ne拧iem_m膿nesis_m膿ne拧i'.split('_'), + y: 'gada_gadiem_gads_gadi'.split('_'), + yy: 'gada_gadiem_gads_gadi'.split('_'), +}; +/** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ +function format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 min奴te", "3 min奴tes". + return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 min奴tes" as in "p膿c 21 min奴tes". + // E.g. "3 min奴t膿m" as in "p膿c 3 min奴t膿m". + return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1]; + } +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + format(units[key], number, withoutSuffix); +} +function relativeTimeWithSingular(number, withoutSuffix, key) { + return format(units[key], number, withoutSuffix); +} +function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'da啪as sekundes' : 'da啪膩m sekund膿m'; +} + +export default moment.defineLocale('lv', { + months: 'janv膩ris_febru膩ris_marts_apr墨lis_maijs_j奴nijs_j奴lijs_augusts_septembris_oktobris_novembris_decembris'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_mai_j奴n_j奴l_aug_sep_okt_nov_dec'.split('_'), + weekdays: + 'sv膿tdiena_pirmdiena_otrdiena_tre拧diena_ceturtdiena_piektdiena_sestdiena'.split( + '_' + ), + weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY.', + LL: 'YYYY. [gada] D. MMMM', + LLL: 'YYYY. [gada] D. MMMM, HH:mm', + LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm', + }, + calendar: { + sameDay: '[艩odien pulksten] LT', + nextDay: '[R墨t pulksten] LT', + nextWeek: 'dddd [pulksten] LT', + lastDay: '[Vakar pulksten] LT', + lastWeek: '[Pag膩ju拧膩] dddd [pulksten] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'p膿c %s', + past: 'pirms %s', + s: relativeSeconds, + ss: relativeTimeWithPlural, + m: relativeTimeWithSingular, + mm: relativeTimeWithPlural, + h: relativeTimeWithSingular, + hh: relativeTimeWithPlural, + d: relativeTimeWithSingular, + dd: relativeTimeWithPlural, + M: relativeTimeWithSingular, + MM: relativeTimeWithPlural, + y: relativeTimeWithSingular, + yy: relativeTimeWithPlural, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/me.js b/node_modules/moment/src/locale/me.js new file mode 100644 index 0000000..c0986df --- /dev/null +++ b/node_modules/moment/src/locale/me.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Montenegrin [me] +//! author : Miodrag Nika膷 : https://github.com/miodragnikac + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekund', 'sekunda', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 + ? wordKey[0] + : number >= 2 && number <= 4 + ? wordKey[1] + : wordKey[2]; + }, + translate: function (number, withoutSuffix, key) { + var wordKey = translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return ( + number + + ' ' + + translator.correctGrammaticalCase(number, wordKey) + ); + } + }, +}; + +export default moment.defineLocale('me', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + 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('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedjelje] [u] LT', + '[pro拧log] [ponedjeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srijede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'prije %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: 'dan', + dd: translator.translate, + M: 'mjesec', + MM: translator.translate, + y: 'godinu', + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/mi.js b/node_modules/moment/src/locale/mi.js new file mode 100644 index 0000000..635a56a --- /dev/null +++ b/node_modules/moment/src/locale/mi.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Maori [mi] +//! author : John Corrigan : https://github.com/johnideal + +import moment from '../moment'; + +export default moment.defineLocale('mi', { + months: 'Kohi-t膩te_Hui-tanguru_Pout奴-te-rangi_Paenga-wh膩wh膩_Haratua_Pipiri_H艒ngoingoi_Here-turi-k艒k膩_Mahuru_Whiringa-膩-nuku_Whiringa-膩-rangi_Hakihea'.split( + '_' + ), + monthsShort: + 'Kohi_Hui_Pou_Pae_Hara_Pipi_H艒ngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split( + '_' + ), + monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, + monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, + weekdays: 'R膩tapu_Mane_T奴rei_Wenerei_T膩ite_Paraire_H膩tarei'.split('_'), + weekdaysShort: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + weekdaysMin: 'Ta_Ma_T奴_We_T膩i_Pa_H膩'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [i] HH:mm', + LLLL: 'dddd, D MMMM YYYY [i] HH:mm', + }, + calendar: { + sameDay: '[i teie mahana, i] LT', + nextDay: '[apopo i] LT', + nextWeek: 'dddd [i] LT', + lastDay: '[inanahi i] LT', + lastWeek: 'dddd [whakamutunga i] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'i roto i %s', + past: '%s i mua', + s: 'te h膿kona ruarua', + ss: '%d h膿kona', + m: 'he meneti', + mm: '%d meneti', + h: 'te haora', + hh: '%d haora', + d: 'he ra', + dd: '%d ra', + M: 'he marama', + MM: '%d marama', + y: 'he tau', + yy: '%d tau', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/mk.js b/node_modules/moment/src/locale/mk.js new file mode 100644 index 0000000..f3ecad7 --- /dev/null +++ b/node_modules/moment/src/locale/mk.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Macedonian [mk] +//! author : Borislav Mickov : https://github.com/B0k0 +//! author : Sashko Todorov : https://github.com/bkyceh +import moment from '../moment'; + +export default moment.defineLocale('mk', { + months: '褬邪薪褍邪褉懈_褎械胁褉褍邪褉懈_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪懈_褬褍谢懈_邪胁谐褍褋褌_褋械锌褌械屑胁褉懈_芯泻褌芯屑胁褉懈_薪芯械屑胁褉懈_写械泻械屑胁褉懈'.split( + '_' + ), + monthsShort: '褬邪薪_褎械胁_屑邪褉_邪锌褉_屑邪褬_褬褍薪_褬褍谢_邪胁谐_褋械锌_芯泻褌_薪芯械_写械泻'.split('_'), + weekdays: '薪械写械谢邪_锌芯薪械写械谢薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁褉褌芯泻_锌械褌芯泻_褋邪斜芯褌邪'.split( + '_' + ), + weekdaysShort: '薪械写_锌芯薪_胁褌芯_褋褉械_褔械褌_锌械褌_褋邪斜'.split('_'), + weekdaysMin: '薪e_锌o_胁褌_褋褉_褔械_锌械_褋a'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[袛械薪械褋 胁芯] LT', + nextDay: '[校褌褉械 胁芯] LT', + nextWeek: '[袙芯] dddd [胁芯] LT', + lastDay: '[袙褔械褉邪 胁芯] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[袠蟹屑懈薪邪褌邪褌邪] dddd [胁芯] LT'; + case 1: + case 2: + case 4: + case 5: + return '[袠蟹屑懈薪邪褌懈芯褌] dddd [胁芯] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械写 %s', + s: '薪械泻芯谢泻褍 褋械泻褍薪写懈', + ss: '%d 褋械泻褍薪写懈', + m: '械写薪邪 屑懈薪褍褌邪', + mm: '%d 屑懈薪褍褌懈', + h: '械写械薪 褔邪褋', + hh: '%d 褔邪褋邪', + d: '械写械薪 写械薪', + dd: '%d 写械薪邪', + M: '械写械薪 屑械褋械褑', + MM: '%d 屑械褋械褑懈', + y: '械写薪邪 谐芯写懈薪邪', + yy: '%d 谐芯写懈薪懈', + }, + dayOfMonthOrdinalParse: /\d{1,2}-(械胁|械薪|褌懈|胁懈|褉懈|屑懈)/, + ordinal: function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-械胁'; + } else if (last2Digits === 0) { + return number + '-械薪'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-褌懈'; + } else if (lastDigit === 1) { + return number + '-胁懈'; + } else if (lastDigit === 2) { + return number + '-褉懈'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-屑懈'; + } else { + return number + '-褌懈'; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ml.js b/node_modules/moment/src/locale/ml.js new file mode 100644 index 0000000..5df6ae4 --- /dev/null +++ b/node_modules/moment/src/locale/ml.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Malayalam [ml] +//! author : Floyd Pink : https://github.com/floydpink + +import moment from '../moment'; + +export default moment.defineLocale('ml', { + months: '啻溹川嗟佮吹啻班纯_啻祮啻祶啻班祦啻掂窗啻縚啻淳嗟监礆嗟嵿礆嗟峗啻忇椽嗟嵿窗啻苦到_啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱_啻撪礂啻膏祶啻编祶啻编祶_啻膏祮啻祶啻编祶啻编磦啻导_啻掄磿嗟嵿礋嗟嬥船嗟糭啻ㄠ吹啻傕船嗟糭啻∴纯啻膏磦啻导'.split( + '_' + ), + monthsShort: + '啻溹川嗟._啻祮啻祶啻班祦._啻淳嗟._啻忇椽嗟嵿窗啻._啻祰啻祶_啻溹祩嗟篲啻溹祩啻侧祱._啻撪礂._啻膏祮啻祶啻编祶啻._啻掄磿嗟嵿礋嗟._啻ㄠ吹啻._啻∴纯啻膏磦.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '啻炧淳啻幢啻距创嗟嵿礆_啻む纯啻權祶啻曕闯啻距创嗟嵿礆_啻氞祳啻掂祶啻掂淳啻脆祶啻歘啻祦啻о川啻距创嗟嵿礆_啻掂祶啻淳啻脆淳啻脆祶啻歘啻掂祮啻赤祶啻赤纯啻淳啻脆祶啻歘啻多川啻苦疮啻距创嗟嵿礆'.split( + '_' + ), + weekdaysShort: '啻炧淳啻导_啻む纯啻權祶啻曕稻_啻氞祳啻掂祶啻礯啻祦啻о祷_啻掂祶啻淳啻脆磦_啻掂祮啻赤祶啻赤纯_啻多川啻'.split('_'), + weekdaysMin: '啻炧淳_啻む纯_啻氞祳_啻祦_啻掂祶啻淳_啻掂祮_啻'.split('_'), + longDateFormat: { + LT: 'A h:mm -啻ㄠ祦', + LTS: 'A h:mm:ss -啻ㄠ祦', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm -啻ㄠ祦', + LLLL: 'dddd, D MMMM YYYY, A h:mm -啻ㄠ祦', + }, + calendar: { + sameDay: '[啻囙川嗟嵿川嗟峕 LT', + nextDay: '[啻ㄠ淳啻赤祮] LT', + nextWeek: 'dddd, LT', + lastDay: '[啻囙川嗟嵿川啻侧祮] LT', + lastWeek: '[啻曕创啻苦礊嗟嵿礊] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啻曕创啻苦礊嗟嵿礊嗟', + past: '%s 啻祦嗟秽椽嗟', + s: '啻呧到啻 啻ㄠ纯啻纯啻粪礄嗟嵿礄嗟', + ss: '%d 啻膏祮啻曕祶啻曕祷啻∴祶', + m: '啻掄窗嗟 啻纯啻ㄠ纯啻编祶啻编祶', + mm: '%d 啻纯啻ㄠ纯啻编祶啻编祶', + h: '啻掄窗嗟 啻矗啻苦磿嗟嵿磿嗟傕导', + hh: '%d 啻矗啻苦磿嗟嵿磿嗟傕导', + d: '啻掄窗嗟 啻︵纯啻掂锤啻', + dd: '%d 啻︵纯啻掂锤啻', + M: '啻掄窗嗟 啻淳啻膏磦', + MM: '%d 啻淳啻膏磦', + y: '啻掄窗嗟 啻掂导啻粪磦', + yy: '%d 啻掂导啻粪磦', + }, + meridiemParse: /啻班淳啻む祶啻班纯|啻班淳啻掂纯啻侧祮|啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟峾啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦|啻班淳啻む祶啻班纯/i, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + (meridiem === '啻班淳啻む祶啻班纯' && hour >= 4) || + meridiem === '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟' || + meridiem === '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦' + ) { + return hour + 12; + } else { + return hour; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啻班淳啻む祶啻班纯'; + } else if (hour < 12) { + return '啻班淳啻掂纯啻侧祮'; + } else if (hour < 17) { + return '啻夃礆嗟嵿礆 啻曕创啻苦礊嗟嵿礊嗟'; + } else if (hour < 20) { + return '啻掂祱啻曕祦啻ㄠ祶啻ㄠ祰啻班磦'; + } else { + return '啻班淳啻む祶啻班纯'; + } + }, +}); diff --git a/node_modules/moment/src/locale/mn.js b/node_modules/moment/src/locale/mn.js new file mode 100644 index 0000000..36cf69f --- /dev/null +++ b/node_modules/moment/src/locale/mn.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Mongolian [mn] +//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7 + +import moment from '../moment'; + +function translate(number, withoutSuffix, key, isFuture) { + switch (key) { + case 's': + return withoutSuffix ? '褏褝写褏褝薪 褋械泻褍薪写' : '褏褝写褏褝薪 褋械泻褍薪写褘薪'; + case 'ss': + return number + (withoutSuffix ? ' 褋械泻褍薪写' : ' 褋械泻褍薪写褘薪'); + case 'm': + case 'mm': + return number + (withoutSuffix ? ' 屑懈薪褍褌' : ' 屑懈薪褍褌褘薪'); + case 'h': + case 'hh': + return number + (withoutSuffix ? ' 褑邪谐' : ' 褑邪谐懈泄薪'); + case 'd': + case 'dd': + return number + (withoutSuffix ? ' 萤写萤褉' : ' 萤写褉懈泄薪'); + case 'M': + case 'MM': + return number + (withoutSuffix ? ' 褋邪褉' : ' 褋邪褉褘薪'); + case 'y': + case 'yy': + return number + (withoutSuffix ? ' 卸懈谢' : ' 卸懈谢懈泄薪'); + default: + return number; + } +} + +export default moment.defineLocale('mn', { + months: '袧褝谐写爷谐褝褝褉 褋邪褉_啸芯褢褉写褍谐邪邪褉 褋邪褉_袚褍褉邪胁写褍谐邪邪褉 褋邪褉_袛萤褉萤胁写爷谐褝褝褉 褋邪褉_孝邪胁写褍谐邪邪褉 褋邪褉_袟褍褉谐邪写褍谐邪邪褉 褋邪褉_袛芯谢写褍谐邪邪褉 褋邪褉_袧邪泄屑写褍谐邪邪褉 褋邪褉_袝褋写爷谐褝褝褉 褋邪褉_袗褉邪胁写褍谐邪邪褉 褋邪褉_袗褉胁邪薪 薪褝谐写爷谐褝褝褉 褋邪褉_袗褉胁邪薪 褏芯褢褉写褍谐邪邪褉 褋邪褉'.split( + '_' + ), + monthsShort: + '1 褋邪褉_2 褋邪褉_3 褋邪褉_4 褋邪褉_5 褋邪褉_6 褋邪褉_7 褋邪褉_8 褋邪褉_9 褋邪褉_10 褋邪褉_11 褋邪褉_12 褋邪褉'.split( + '_' + ), + monthsParseExact: true, + weekdays: '袧褟屑_袛邪胁邪邪_袦褟谐屑邪褉_袥褏邪谐胁邪_袩爷褉褝胁_袘邪邪褋邪薪_袘褟屑斜邪'.split('_'), + weekdaysShort: '袧褟屑_袛邪胁_袦褟谐_袥褏邪_袩爷褉_袘邪邪_袘褟屑'.split('_'), + weekdaysMin: '袧褟_袛邪_袦褟_袥褏_袩爷_袘邪_袘褟'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY 芯薪褘 MMMM褘薪 D', + LLL: 'YYYY 芯薪褘 MMMM褘薪 D HH:mm', + LLLL: 'dddd, YYYY 芯薪褘 MMMM褘薪 D HH:mm', + }, + meridiemParse: /耶莹|耶啸/i, + isPM: function (input) { + return input === '耶啸'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '耶莹'; + } else { + return '耶啸'; + } + }, + calendar: { + sameDay: '[莹薪萤萤写萤褉] LT', + nextDay: '[袦邪褉谐邪邪褕] LT', + nextWeek: '[袠褉褝褏] dddd LT', + lastDay: '[莹褔懈谐写萤褉] LT', + lastWeek: '[莹薪谐萤褉褋萤薪] dddd LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 写邪褉邪邪', + past: '%s 萤屑薪萤', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2} 萤写萤褉/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + ' 萤写萤褉'; + default: + return number; + } + }, +}); diff --git a/node_modules/moment/src/locale/mr.js b/node_modules/moment/src/locale/mr.js new file mode 100644 index 0000000..d174909 --- /dev/null +++ b/node_modules/moment/src/locale/mr.js @@ -0,0 +1,203 @@ +//! moment.js locale configuration +//! locale : Marathi [mr] +//! author : Harshad Kale : https://github.com/kalehv +//! author : Vivek Athalye : https://github.com/vnathalye + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + +function relativeTimeMr(number, withoutSuffix, string, isFuture) { + var output = ''; + if (withoutSuffix) { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶'; + break; + case 'm': + output = '啶忇 啶た啶ㄠた啶'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰'; + break; + case 'h': + output = '啶忇 啶むぞ啶'; + break; + case 'hh': + output = '%d 啶むぞ啶'; + break; + case 'd': + output = '啶忇 啶︵た啶掂じ'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ'; + break; + case 'M': + output = '啶忇 啶す啶苦え啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷'; + break; + case 'y': + output = '啶忇 啶掂ぐ啷嵿し'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啷'; + break; + } + } else { + switch (string) { + case 's': + output = '啶曕ぞ啶灌 啶膏啶曕啶︵ぞ啶'; + break; + case 'ss': + output = '%d 啶膏啶曕啶︵ぞ啶'; + break; + case 'm': + output = '啶忇啶 啶た啶ㄠた啶熰ぞ'; + break; + case 'mm': + output = '%d 啶た啶ㄠた啶熰ぞ啶'; + break; + case 'h': + output = '啶忇啶 啶むぞ啶膏ぞ'; + break; + case 'hh': + output = '%d 啶むぞ啶膏ぞ啶'; + break; + case 'd': + output = '啶忇啶 啶︵た啶掂じ啶'; + break; + case 'dd': + output = '%d 啶︵た啶掂じ啶距'; + break; + case 'M': + output = '啶忇啶 啶す啶苦え啷嵿く啶'; + break; + case 'MM': + output = '%d 啶す啶苦え啷嵿く啶距'; + break; + case 'y': + output = '啶忇啶 啶掂ぐ啷嵿し啶'; + break; + case 'yy': + output = '%d 啶掂ぐ啷嵿し啶距'; + break; + } + } + return output.replace(/%d/i, number); +} + +export default moment.defineLocale('mr', { + months: '啶溹ぞ啶ㄠ啶掂ぞ啶班_啶啶啶班啶掂ぞ啶班_啶ぞ啶班啶歘啶忇お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧_啶戉啶膏啶焈啶膏お啷嵿啷囙啶ぐ_啶戉啷嵿啷嬥が啶癬啶ㄠ啶掂啶灌啶傕が啶癬啶∴た啶膏啶傕が啶'.split( + '_' + ), + monthsShort: + '啶溹ぞ啶ㄠ._啶啶啶班._啶ぞ啶班啶._啶忇お啷嵿ぐ啶._啶._啶溹啶._啶溹啶侧._啶戉._啶膏お啷嵿啷囙._啶戉啷嵿啷._啶ㄠ啶掂啶灌啶._啶∴た啶膏啶.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶班さ啶苦さ啶距ぐ_啶膏啶さ啶距ぐ_啶啶椸こ啶掂ぞ啶癬啶啶оさ啶距ぐ_啶椸啶班啶掂ぞ啶癬啶多啶曕啶班さ啶距ぐ_啶多え啶苦さ啶距ぐ'.split('_'), + weekdaysShort: '啶班さ啶縚啶膏啶甠啶啶椸こ_啶啶啶椸啶班_啶多啶曕啶癬啶多え啶'.split('_'), + weekdaysMin: '啶癬啶膏_啶_啶_啶椸_啶多_啶'.split('_'), + longDateFormat: { + LT: 'A h:mm 啶掂ぞ啶溹い啶', + LTS: 'A h:mm:ss 啶掂ぞ啶溹い啶', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啶掂ぞ啶溹い啶', + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶夃う啷嵿く啶綸 LT', + nextWeek: 'dddd, LT', + lastDay: '[啶曕ぞ啶瞉 LT', + lastWeek: '[啶ぞ啶椸啶瞉 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぇ啷嵿く啷', + past: '%s啶啶班啶掂', + s: relativeTimeMr, + ss: relativeTimeMr, + m: relativeTimeMr, + mm: relativeTimeMr, + h: relativeTimeMr, + hh: relativeTimeMr, + d: relativeTimeMr, + dd: relativeTimeMr, + M: relativeTimeMr, + MM: relativeTimeMr, + y: relativeTimeMr, + yy: relativeTimeMr, + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶す啶距啷噟啶膏啶距こ啷|啶︵啶ぞ啶班|啶膏ぞ啶啶曕ぞ啶赤|啶班ぞ啶む啶班/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶す啶距啷' || meridiem === '啶膏啶距こ啷') { + return hour; + } else if ( + meridiem === '啶︵啶ぞ啶班' || + meridiem === '啶膏ぞ啶啶曕ぞ啶赤' || + meridiem === '啶班ぞ啶む啶班' + ) { + return hour >= 12 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour >= 0 && hour < 6) { + return '啶す啶距啷'; + } else if (hour < 12) { + return '啶膏啶距こ啷'; + } else if (hour < 17) { + return '啶︵啶ぞ啶班'; + } else if (hour < 20) { + return '啶膏ぞ啶啶曕ぞ啶赤'; + } else { + return '啶班ぞ啶む啶班'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ms-my.js b/node_modules/moment/src/locale/ms-my.js new file mode 100644 index 0000000..f8adf98 --- /dev/null +++ b/node_modules/moment/src/locale/ms-my.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Malay [ms-my] +//! note : DEPRECATED, the correct one is [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms-my', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ms.js b/node_modules/moment/src/locale/ms.js new file mode 100644 index 0000000..335cc90 --- /dev/null +++ b/node_modules/moment/src/locale/ms.js @@ -0,0 +1,75 @@ +//! moment.js locale configuration +//! locale : Malay [ms] +//! author : Weldan Jamili : https://github.com/weldan + +import moment from '../moment'; + +export default moment.defineLocale('ms', { + months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [pukul] HH.mm', + LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm', + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar: { + sameDay: '[Hari ini pukul] LT', + nextDay: '[Esok pukul] LT', + nextWeek: 'dddd [pukul] LT', + lastDay: '[Kelmarin pukul] LT', + lastWeek: 'dddd [lepas pukul] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dalam %s', + past: '%s yang lepas', + s: 'beberapa saat', + ss: '%d saat', + m: 'seminit', + mm: '%d minit', + h: 'sejam', + hh: '%d jam', + d: 'sehari', + dd: '%d hari', + M: 'sebulan', + MM: '%d bulan', + y: 'setahun', + yy: '%d tahun', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/mt.js b/node_modules/moment/src/locale/mt.js new file mode 100644 index 0000000..850cf6a --- /dev/null +++ b/node_modules/moment/src/locale/mt.js @@ -0,0 +1,56 @@ +//! moment.js locale configuration +//! locale : Maltese (Malta) [mt] +//! author : Alessandro Maruccia : https://github.com/alesma + +import moment from '../moment'; + +export default moment.defineLocale('mt', { + months: 'Jannar_Frar_Marzu_April_Mejju_臓unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di膵embru'.split( + '_' + ), + monthsShort: 'Jan_Fra_Mar_Apr_Mej_臓un_Lul_Aww_Set_Ott_Nov_Di膵'.split('_'), + weekdays: + 'Il-摩add_It-Tnejn_It-Tlieta_L-Erbg魔a_Il-摩amis_Il-臓img魔a_Is-Sibt'.split( + '_' + ), + weekdaysShort: '摩ad_Tne_Tli_Erb_摩am_臓im_Sib'.split('_'), + weekdaysMin: '摩a_Tn_Tl_Er_摩a_臓i_Si'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Illum fil-]LT', + nextDay: '[G魔ada fil-]LT', + nextWeek: 'dddd [fil-]LT', + lastDay: '[Il-biera魔 fil-]LT', + lastWeek: 'dddd [li g魔adda] [fil-]LT', + sameElse: 'L', + }, + relativeTime: { + future: 'f鈥 %s', + past: '%s ilu', + s: 'ftit sekondi', + ss: '%d sekondi', + m: 'minuta', + mm: '%d minuti', + h: 'sieg魔a', + hh: '%d sieg魔at', + d: '摹urnata', + dd: '%d 摹ranet', + M: 'xahar', + MM: '%d xhur', + y: 'sena', + yy: '%d sni', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/my.js b/node_modules/moment/src/locale/my.js new file mode 100644 index 0000000..034b221 --- /dev/null +++ b/node_modules/moment/src/locale/my.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Burmese [my] +//! author : Squar team, mysquar.com +//! author : David Rossellat : https://github.com/gholadr +//! author : Tin Aung Lin : https://github.com/thanyawzinmin + +import moment from '../moment'; + +var symbolMap = { + 1: '醽', + 2: '醽', + 3: '醽', + 4: '醽', + 5: '醽', + 6: '醽', + 7: '醽', + 8: '醽', + 9: '醽', + 0: '醽', + }, + numberMap = { + '醽': '1', + '醽': '2', + '醽': '3', + '醽': '4', + '醽': '5', + '醽': '6', + '醽': '7', + '醽': '8', + '醽': '9', + '醽': '0', + }; + +export default moment.defineLocale('my', { + months: '醼囜斸横斸濁涐甠醼栣贬栣贬横濁涐甠醼欋愥篲醼п曖坚甠醼欋盻醼囜结斸篲醼囜搬溼勧篲醼炨坚傖愥篲醼呩醼横愥勧横樶琠醼♂贬醼横愥樶琠醼斸濁勧横樶琠醼掅囜勧横樶'.split( + '_' + ), + monthsShort: '醼囜斸篲醼栣盻醼欋愥篲醼曖坚甠醼欋盻醼囜结斸篲醼溼勧篲醼炨糭醼呩醼篲醼♂贬醼篲醼斸痏醼掅'.split('_'), + weekdays: '醼愥斸勧横贯傖斸结盻醼愥斸勧横贯溼琠醼♂勧横贯傖玙醼椺掅贯撫熱搬竉醼醼坚炨曖愥贬竉醼炨贬醼坚琠醼呩斸'.split( + '_' + ), + weekdaysShort: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + weekdaysMin: '醼斸结盻醼溼琠醼傖玙醼熱搬竉醼醼坚琠醼炨贬琠醼斸'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[醼氠斸.] LT [醼欋踞琞', + nextDay: '[醼欋斸醼横栣坚斸篯 LT [醼欋踞琞', + nextWeek: 'dddd LT [醼欋踞琞', + lastDay: '[醼欋斸.醼] LT [醼欋踞琞', + lastWeek: '[醼曖坚羔佱册丰炨贬琞 dddd LT [醼欋踞琞', + sameElse: 'L', + }, + relativeTime: { + future: '醼溼欋娽横 %s 醼欋踞', + past: '醼溼结斸横佱册丰炨贬 %s 醼', + s: '醼呩醼贯醼斸.醼♂斸娽横羔勧氠', + ss: '%d 醼呩醼贯醼斸丰', + m: '醼愥呩横欋斸呩', + mm: '%d 醼欋斸呩', + h: '醼愥呩横斸涐', + hh: '%d 醼斸涐', + d: '醼愥呩横涐醼', + dd: '%d 醼涐醼', + M: '醼愥呩横', + MM: '%d 醼', + y: '醼愥呩横斸踞呩', + yy: '%d 醼斸踞呩', + }, + preparse: function (string) { + return string.replace(/[醽佱亗醽冡亜醽呩亞醽囜亪醽夅亐]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + 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/node_modules/moment/src/locale/nb.js b/node_modules/moment/src/locale/nb.js new file mode 100644 index 0000000..c218f51 --- /dev/null +++ b/node_modules/moment/src/locale/nb.js @@ -0,0 +1,60 @@ +//! moment.js locale configuration +//! locale : Norwegian Bokm氓l [nb] +//! authors : Espen Hovlandsdal : https://github.com/rexxars +//! Sigurd Gartmann : https://github.com/sigurdga +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nb', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 's酶ndag_mandag_tirsdag_onsdag_torsdag_fredag_l酶rdag'.split('_'), + weekdaysShort: 's酶._ma._ti._on._to._fr._l酶.'.split('_'), + weekdaysMin: 's酶_ma_ti_on_to_fr_l酶'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i g氓r kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s siden', + s: 'noen sekunder', + ss: '%d sekunder', + m: 'ett minutt', + mm: '%d minutter', + h: 'en time', + hh: '%d timer', + d: 'en dag', + dd: '%d dager', + w: 'en uke', + ww: '%d uker', + M: 'en m氓ned', + MM: '%d m氓neder', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/ne.js b/node_modules/moment/src/locale/ne.js new file mode 100644 index 0000000..1f0a0ed --- /dev/null +++ b/node_modules/moment/src/locale/ne.js @@ -0,0 +1,121 @@ +//! moment.js locale configuration +//! locale : Nepalese [ne] +//! author : suvash : https://github.com/suvash + +import moment from '../moment'; + +var symbolMap = { + 1: '啷', + 2: '啷', + 3: '啷', + 4: '啷', + 5: '啷', + 6: '啷', + 7: '啷', + 8: '啷', + 9: '啷', + 0: '啷', + }, + numberMap = { + '啷': '1', + '啷': '2', + '啷': '3', + '啷': '4', + '啷': '5', + '啷': '6', + '啷': '7', + '啷': '8', + '啷': '9', + '啷': '0', + }; + +export default moment.defineLocale('ne', { + months: '啶溹え啶掂ぐ啷_啶啶啶班啶掂ぐ啷_啶ぞ啶班啶歘啶呧お啷嵿ぐ啶苦げ_啶_啶溹啶╛啶溹啶侧ぞ啶坃啶呧啶粪啶焈啶膏啶啶熰啶啶ぐ_啶呧啷嵿啷嬥が啶癬啶ㄠ啶啶啶ぐ_啶∴た啶膏啶啶ぐ'.split( + '_' + ), + monthsShort: + '啶溹え._啶啶啶班._啶ぞ啶班啶歘啶呧お啷嵿ぐ啶._啶_啶溹啶╛啶溹啶侧ぞ啶._啶呧._啶膏啶啶._啶呧啷嵿啷._啶ㄠ啶._啶∴た啶膏.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '啶嗋啶むが啶距ぐ_啶膏啶が啶距ぐ_啶啷嵿啶侧が啶距ぐ_啶啶оが啶距ぐ_啶た啶灌た啶ぞ啶癬啶多啶曕啶班が啶距ぐ_啶多え啶苦が啶距ぐ'.split( + '_' + ), + weekdaysShort: '啶嗋啶._啶膏啶._啶啷嵿啶._啶啶._啶た啶灌た._啶多啶曕啶._啶多え啶.'.split('_'), + weekdaysMin: '啶._啶膏._啶._啶._啶た._啶多._啶.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'A啶曕 h:mm 啶啷', + LTS: 'A啶曕 h:mm:ss 啶啷', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A啶曕 h:mm 啶啷', + LLLL: 'dddd, D MMMM YYYY, A啶曕 h:mm 啶啷', + }, + preparse: function (string) { + return string.replace(/[啷оエ啷┼オ啷ガ啷ギ啷ウ]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + meridiemParse: /啶班ぞ啶むた|啶た啶灌ぞ啶▅啶︵た啶夃啶膏|啶膏ぞ啶佮/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啶班ぞ啶むた') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啶た啶灌ぞ啶') { + return hour; + } else if (meridiem === '啶︵た啶夃啶膏') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啶膏ぞ啶佮') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 3) { + return '啶班ぞ啶むた'; + } else if (hour < 12) { + return '啶た啶灌ぞ啶'; + } else if (hour < 16) { + return '啶︵た啶夃啶膏'; + } else if (hour < 20) { + return '啶膏ぞ啶佮'; + } else { + return '啶班ぞ啶むた'; + } + }, + calendar: { + sameDay: '[啶嗋] LT', + nextDay: '[啶啶侧た] LT', + nextWeek: '[啶嗋啶佮う啷媇 dddd[,] LT', + lastDay: '[啶灌た啶溹] LT', + lastWeek: '[啶椸啶曕] dddd[,] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s啶ぞ', + past: '%s 啶呧啶距ぁ啶', + s: '啶曕啶灌 啶曕啶粪ぃ', + ss: '%d 啶膏啶曕啶`啶', + m: '啶忇 啶た啶ㄠ啶', + mm: '%d 啶た啶ㄠ啶', + h: '啶忇 啶樴ぃ啷嵿啶', + hh: '%d 啶樴ぃ啷嵿啶', + d: '啶忇 啶︵た啶', + dd: '%d 啶︵た啶', + M: '啶忇 啶す啶苦え啶', + MM: '%d 啶す啶苦え啶', + y: '啶忇 啶ぐ啷嵿し', + yy: '%d 啶ぐ啷嵿し', + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/nl-be.js b/node_modules/moment/src/locale/nl-be.js new file mode 100644 index 0000000..a1ab295 --- /dev/null +++ b/node_modules/moment/src/locale/nl-be.js @@ -0,0 +1,102 @@ +//! moment.js locale configuration +//! locale : Dutch (Belgium) [nl-be] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl-be', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/src/locale/nl.js b/node_modules/moment/src/locale/nl.js new file mode 100644 index 0000000..7d07112 --- /dev/null +++ b/node_modules/moment/src/locale/nl.js @@ -0,0 +1,104 @@ +//! moment.js locale configuration +//! locale : Dutch [nl] +//! author : Joris R枚ling : https://github.com/jorisroling +//! author : Jacob Middag : https://github.com/middagj + +import moment from '../moment'; + +var monthsShortWithDots = + 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + monthsShortWithoutDots = + 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'), + monthsParse = [ + /^jan/i, + /^feb/i, + /^maart|mrt.?$/i, + /^apr/i, + /^mei$/i, + /^jun[i.]?$/i, + /^jul[i.]?$/i, + /^aug/i, + /^sep/i, + /^okt/i, + /^nov/i, + /^dec/i, + ], + monthsRegex = + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + +export default moment.defineLocale('nl', { + months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split( + '_' + ), + monthsShort: function (m, format) { + if (!m) { + return monthsShortWithDots; + } else if (/-MMM-/.test(format)) { + return monthsShortWithoutDots[m.month()]; + } else { + return monthsShortWithDots[m.month()]; + } + }, + + monthsRegex: monthsRegex, + monthsShortRegex: monthsRegex, + monthsStrictRegex: + /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: + /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + weekdays: + 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD-MM-YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'over %s', + past: '%s geleden', + s: 'een paar seconden', + ss: '%d seconden', + m: '茅茅n minuut', + mm: '%d minuten', + h: '茅茅n uur', + hh: '%d uur', + d: '茅茅n dag', + dd: '%d dagen', + w: '茅茅n week', + ww: '%d weken', + M: '茅茅n maand', + MM: '%d maanden', + y: '茅茅n jaar', + yy: '%d jaar', + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function (number) { + return ( + number + + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de') + ); + }, + 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/node_modules/moment/src/locale/nn.js b/node_modules/moment/src/locale/nn.js new file mode 100644 index 0000000..0da1150 --- /dev/null +++ b/node_modules/moment/src/locale/nn.js @@ -0,0 +1,59 @@ +//! moment.js locale configuration +//! locale : Nynorsk [nn] +//! authors : https://github.com/mechuwind +//! Stephen Ramthun : https://github.com/stephenramthun + +import moment from '../moment'; + +export default moment.defineLocale('nn', { + months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split( + '_' + ), + monthsShort: + 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'), + monthsParseExact: true, + weekdays: 'sundag_m氓ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort: 'su._m氓._ty._on._to._fr._lau.'.split('_'), + weekdaysMin: 'su_m氓_ty_on_to_fr_la'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY [kl.] H:mm', + LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm', + }, + calendar: { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I g氓r klokka] LT', + lastWeek: '[F酶reg氓ande] dddd [klokka] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: '%s sidan', + s: 'nokre sekund', + ss: '%d sekund', + m: 'eit minutt', + mm: '%d minutt', + h: 'ein time', + hh: '%d timar', + d: 'ein dag', + dd: '%d dagar', + w: 'ei veke', + ww: '%d veker', + M: 'ein m氓nad', + MM: '%d m氓nader', + y: 'eit 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/oc-lnc.js b/node_modules/moment/src/locale/oc-lnc.js new file mode 100644 index 0000000..cc05561 --- /dev/null +++ b/node_modules/moment/src/locale/oc-lnc.js @@ -0,0 +1,85 @@ +//! moment.js locale configuration +//! locale : Occitan, lengadocian dialecte [oc-lnc] +//! author : Quentin PAG脠S : https://github.com/Quenty31 + +import moment from '../moment'; + +export default moment.defineLocale('oc-lnc', { + months: { + standalone: + 'geni猫r_febri猫r_mar莽_abril_mai_junh_julhet_agost_setembre_oct貌bre_novembre_decembre'.split( + '_' + ), + format: "de geni猫r_de febri猫r_de mar莽_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'oct貌bre_de novembre_de decembre".split( + '_' + ), + isFormat: /D[oD]?(\s)+MMMM/, + }, + monthsShort: + 'gen._febr._mar莽_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'dimenge_diluns_dimars_dim猫cres_dij貌us_divendres_dissabte'.split( + '_' + ), + weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'), + weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [de] YYYY', + ll: 'D MMM YYYY', + LLL: 'D MMMM [de] YYYY [a] H:mm', + lll: 'D MMM YYYY, H:mm', + LLLL: 'dddd D MMMM [de] YYYY [a] H:mm', + llll: 'ddd D MMM YYYY, H:mm', + }, + calendar: { + sameDay: '[u猫i a] LT', + nextDay: '[deman a] LT', + nextWeek: 'dddd [a] LT', + lastDay: '[i猫r a] LT', + lastWeek: 'dddd [passat a] LT', + sameElse: 'L', + }, + relativeTime: { + future: "d'aqu铆 %s", + past: 'fa %s', + s: 'unas segondas', + ss: '%d segondas', + m: 'una minuta', + mm: '%d minutas', + h: 'una ora', + hh: '%d oras', + d: 'un jorn', + dd: '%d jorns', + M: 'un mes', + MM: '%d meses', + y: 'un an', + yy: '%d ans', + }, + dayOfMonthOrdinalParse: /\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, + }, +}); diff --git a/node_modules/moment/src/locale/pa-in.js b/node_modules/moment/src/locale/pa-in.js new file mode 100644 index 0000000..e39dbd5 --- /dev/null +++ b/node_modules/moment/src/locale/pa-in.js @@ -0,0 +1,122 @@ +//! moment.js locale configuration +//! locale : Punjabi (India) [pa-in] +//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit + +import moment from '../moment'; + +var symbolMap = { + 1: '喋', + 2: '喋', + 3: '喋', + 4: '喋', + 5: '喋', + 6: '喋', + 7: '喋', + 8: '喋', + 9: '喋', + 0: '喋', + }, + numberMap = { + '喋': '1', + '喋': '2', + '喋': '3', + '喋': '4', + '喋': '5', + '喋': '6', + '喋': '7', + '喋': '8', + '喋': '9', + '喋': '0', + }; + +export default moment.defineLocale('pa-in', { + // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi. + months: '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + monthsShort: + '啜溹è啜掂ò喋_啜啜班ǖ啜班﹢_啜ň啜班_啜呧í喋嵿ò喋堗ú_啜▓_啜溹﹤啜╛啜溹﹣啜侧ň啜坃啜呧啜膏à_啜膏à喋班ì啜癬啜呧〞啜む﹤啜ò_啜ㄠǖ喋班ì啜癬啜︵ǜ喋班ì啜'.split( + '_' + ), + weekdays: '啜愢à啜掂ň啜癬啜膏⿱啜ǖ啜距ò_啜┌啜椸ú啜掂ň啜癬啜﹣啜оǖ啜距ò_啜掂﹢啜班ǖ啜距ò_啜膏喋佮┍啜曕ò啜掂ň啜癬啜膏啜ㄠ﹢啜氞ò啜掂ň啜'.split( + '_' + ), + weekdaysShort: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + weekdaysMin: '啜愢à_啜膏⿱啜甠啜┌啜椸ú_啜﹣啜啜掂﹢啜癬啜膏喋佮〞啜癬啜膏啜ㄠ﹢'.split('_'), + longDateFormat: { + LT: 'A h:mm 啜掂喋', + LTS: 'A h:mm:ss 啜掂喋', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm 啜掂喋', + LLLL: 'dddd, D MMMM YYYY, A h:mm 啜掂喋', + }, + calendar: { + sameDay: '[啜呧] LT', + nextDay: '[啜曕ú] LT', + nextWeek: '[啜呧啜侧ň] dddd, LT', + lastDay: '[啜曕ú] LT', + lastWeek: '[啜ǹ啜涏ú喋嘳 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 啜掂ǹ喋编', + past: '%s 啜ǹ啜涏ú喋', + s: '啜曕﹣啜 啜膏〞啜苦┌啜', + ss: '%d 啜膏〞啜苦┌啜', + m: '啜囙〞 啜ǹ喋班', + mm: '%d 啜ǹ喋班', + h: '啜囙┍啜 啜樴┌啜熰ň', + hh: '%d 啜樴┌啜熰﹪', + d: '啜囙┍啜 啜︵ǹ啜', + dd: '%d 啜︵ǹ啜', + M: '啜囙┍啜 啜ü喋啜ㄠň', + MM: '%d 啜ü喋啜ㄠ﹪', + y: '啜囙┍啜 啜膏ň啜', + yy: '%d 啜膏ň啜', + }, + preparse: function (string) { + return string.replace(/[喋о┄喋┼┆喋┈喋┊喋│]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // Punjabi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi. + meridiemParse: /啜班ň啜啜膏ǖ喋囙ò|啜︵﹣啜ü啜苦ò|啜膏啜距ó/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '啜班ň啜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '啜膏ǖ喋囙ò') { + return hour; + } else if (meridiem === '啜︵﹣啜ü啜苦ò') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '啜膏啜距ó') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '啜班ň啜'; + } else if (hour < 10) { + return '啜膏ǖ喋囙ò'; + } else if (hour < 17) { + return '啜︵﹣啜ü啜苦ò'; + } else if (hour < 20) { + return '啜膏啜距ó'; + } else { + return '啜班ň啜'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/pl.js b/node_modules/moment/src/locale/pl.js new file mode 100644 index 0000000..0608c0d --- /dev/null +++ b/node_modules/moment/src/locale/pl.js @@ -0,0 +1,140 @@ +//! moment.js locale configuration +//! locale : Polish [pl] +//! author : Rafal Hirsz : https://github.com/evoL + +import moment from '../moment'; + +var monthsNominative = + 'stycze艅_luty_marzec_kwiecie艅_maj_czerwiec_lipiec_sierpie艅_wrzesie艅_pa藕dziernik_listopad_grudzie艅'.split( + '_' + ), + monthsSubjective = + 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze艣nia_pa藕dziernika_listopada_grudnia'.split( + '_' + ), + monthsParse = [ + /^sty/i, + /^lut/i, + /^mar/i, + /^kwi/i, + /^maj/i, + /^cze/i, + /^lip/i, + /^sie/i, + /^wrz/i, + /^pa藕/i, + /^lis/i, + /^gru/i, + ]; +function plural(n) { + return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1; +} +function translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'ss': + return result + (plural(number) ? 'sekundy' : 'sekund'); + case 'm': + return withoutSuffix ? 'minuta' : 'minut臋'; + case 'mm': + return result + (plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzin臋'; + case 'hh': + return result + (plural(number) ? 'godziny' : 'godzin'); + case 'ww': + return result + (plural(number) ? 'tygodnie' : 'tygodni'); + case 'MM': + return result + (plural(number) ? 'miesi膮ce' : 'miesi臋cy'); + case 'yy': + return result + (plural(number) ? 'lata' : 'lat'); + } +} + +export default moment.defineLocale('pl', { + months: function (momentToFormat, format) { + if (!momentToFormat) { + return monthsNominative; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa藕_lis_gru'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + weekdays: + 'niedziela_poniedzia艂ek_wtorek_艣roda_czwartek_pi膮tek_sobota'.split('_'), + weekdaysShort: 'ndz_pon_wt_艣r_czw_pt_sob'.split('_'), + weekdaysMin: 'Nd_Pn_Wt_艢r_Cz_Pt_So'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Dzi艣 o] LT', + nextDay: '[Jutro o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[W niedziel臋 o] LT'; + + case 2: + return '[We wtorek o] LT'; + + case 3: + return '[W 艣rod臋 o] LT'; + + case 6: + return '[W sobot臋 o] LT'; + + default: + return '[W] dddd [o] LT'; + } + }, + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zesz艂膮 niedziel臋 o] LT'; + case 3: + return '[W zesz艂膮 艣rod臋 o] LT'; + case 6: + return '[W zesz艂膮 sobot臋 o] LT'; + default: + return '[W zesz艂y] dddd [o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: '%s temu', + s: 'kilka sekund', + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: '1 dzie艅', + dd: '%d dni', + w: 'tydzie艅', + ww: translate, + M: 'miesi膮c', + MM: translate, + y: 'rok', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/pt-br.js b/node_modules/moment/src/locale/pt-br.js new file mode 100644 index 0000000..eb9aa64 --- /dev/null +++ b/node_modules/moment/src/locale/pt-br.js @@ -0,0 +1,58 @@ +//! moment.js locale configuration +//! locale : Portuguese (Brazil) [pt-br] +//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + +import moment from '../moment'; + +export default moment.defineLocale('pt-br', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'domingo_segunda-feira_ter莽a-feira_quarta-feira_quinta-feira_sexta-feira_s谩bado'.split( + '_' + ), + weekdaysShort: 'dom_seg_ter_qua_qui_sex_s谩b'.split('_'), + weekdaysMin: 'do_2陋_3陋_4陋_5陋_6陋_s谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY [脿s] HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY [脿s] HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'poucos segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + invalidDate: 'Data inv谩lida', +}); diff --git a/node_modules/moment/src/locale/pt.js b/node_modules/moment/src/locale/pt.js new file mode 100644 index 0000000..d9b6055 --- /dev/null +++ b/node_modules/moment/src/locale/pt.js @@ -0,0 +1,63 @@ +//! moment.js locale configuration +//! locale : Portuguese [pt] +//! author : Jefferson : https://github.com/jalex79 + +import moment from '../moment'; + +export default moment.defineLocale('pt', { + months: 'janeiro_fevereiro_mar莽o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split( + '_' + ), + monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'), + weekdays: + 'Domingo_Segunda-feira_Ter莽a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S谩bado'.split( + '_' + ), + weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_S谩b'.split('_'), + weekdaysMin: 'Do_2陋_3陋_4陋_5陋_6陋_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D [de] MMMM [de] YYYY', + LLL: 'D [de] MMMM [de] YYYY HH:mm', + LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm', + }, + calendar: { + sameDay: '[Hoje 脿s] LT', + nextDay: '[Amanh茫 脿s] LT', + nextWeek: 'dddd [脿s] LT', + lastDay: '[Ontem 脿s] LT', + lastWeek: function () { + return this.day() === 0 || this.day() === 6 + ? '[脷ltimo] dddd [脿s] LT' // Saturday + Sunday + : '[脷ltima] dddd [脿s] LT'; // Monday - Friday + }, + sameElse: 'L', + }, + relativeTime: { + future: 'em %s', + past: 'h谩 %s', + s: 'segundos', + ss: '%d segundos', + m: 'um minuto', + mm: '%d minutos', + h: 'uma hora', + hh: '%d horas', + d: 'um dia', + dd: '%d dias', + w: 'uma semana', + ww: '%d semanas', + M: 'um m锚s', + MM: '%d meses', + y: 'um ano', + yy: '%d anos', + }, + dayOfMonthOrdinalParse: /\d{1,2}潞/, + ordinal: '%d潞', + 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/node_modules/moment/src/locale/ro.js b/node_modules/moment/src/locale/ro.js new file mode 100644 index 0000000..d5bc5ea --- /dev/null +++ b/node_modules/moment/src/locale/ro.js @@ -0,0 +1,76 @@ +//! moment.js locale configuration +//! locale : Romanian [ro] +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +//! author : Emanuel Cepoi : https://github.com/cepem + +import moment from '../moment'; + +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: 'secunde', + mm: 'minute', + hh: 'ore', + dd: 'zile', + ww: 's膬pt膬m芒ni', + MM: 'luni', + yy: 'ani', + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; +} + +export default moment.defineLocale('ro', { + months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split( + '_' + ), + monthsShort: + 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'duminic膬_luni_mar葲i_miercuri_joi_vineri_s芒mb膬t膬'.split('_'), + weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_S芒m'.split('_'), + weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_S芒'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY H:mm', + LLLL: 'dddd, D MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[azi la] LT', + nextDay: '[m芒ine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'peste %s', + past: '%s 卯n urm膬', + s: 'c芒teva secunde', + ss: relativeTimeWithPlural, + m: 'un minut', + mm: relativeTimeWithPlural, + h: 'o or膬', + hh: relativeTimeWithPlural, + d: 'o zi', + dd: relativeTimeWithPlural, + w: 'o s膬pt膬m芒n膬', + ww: relativeTimeWithPlural, + M: 'o lun膬', + MM: relativeTimeWithPlural, + y: 'un an', + yy: relativeTimeWithPlural, + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ru.js b/node_modules/moment/src/locale/ru.js new file mode 100644 index 0000000..9f17e18 --- /dev/null +++ b/node_modules/moment/src/locale/ru.js @@ -0,0 +1,213 @@ +//! moment.js locale configuration +//! locale : Russian [ru] +//! author : Viktorminator : https://github.com/Viktorminator +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : 袣芯褉械薪斜械褉谐 袦邪褉泻 : https://github.com/socketpair + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写褘_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写褘_褋械泻褍薪写', + mm: withoutSuffix ? '屑懈薪褍褌邪_屑懈薪褍褌褘_屑懈薪褍褌' : '屑懈薪褍褌褍_屑懈薪褍褌褘_屑懈薪褍褌', + hh: '褔邪褋_褔邪褋邪_褔邪褋芯胁', + dd: '写械薪褜_写薪褟_写薪械泄', + ww: '薪械写械谢褟_薪械写械谢懈_薪械写械谢褜', + MM: '屑械褋褟褑_屑械褋褟褑邪_屑械褋褟褑械胁', + yy: '谐芯写_谐芯写邪_谢械褌', + }; + if (key === 'm') { + return withoutSuffix ? '屑懈薪褍褌邪' : '屑懈薪褍褌褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +var monthsParse = [ + /^褟薪胁/i, + /^褎械胁/i, + /^屑邪褉/i, + /^邪锌褉/i, + /^屑邪[泄褟]/i, + /^懈褞薪/i, + /^懈褞谢/i, + /^邪胁谐/i, + /^褋械薪/i, + /^芯泻褌/i, + /^薪芯褟/i, + /^写械泻/i, +]; + +// http://new.gramota.ru/spravka/rules/139-prop : 搂 103 +// 小芯泻褉邪褖械薪懈褟 屑械褋褟褑械胁: http://new.gramota.ru/spravka/buro/search-answer?s=242637 +// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753 +export default moment.defineLocale('ru', { + months: { + format: '褟薪胁邪褉褟_褎械胁褉邪谢褟_屑邪褉褌邪_邪锌褉械谢褟_屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐褍褋褌邪_褋械薪褌褟斜褉褟_芯泻褌褟斜褉褟_薪芯褟斜褉褟_写械泻邪斜褉褟'.split( + '_' + ), + standalone: + '褟薪胁邪褉褜_褎械胁褉邪谢褜_屑邪褉褌_邪锌褉械谢褜_屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐褍褋褌_褋械薪褌褟斜褉褜_芯泻褌褟斜褉褜_薪芯褟斜褉褜_写械泻邪斜褉褜'.split( + '_' + ), + }, + monthsShort: { + // 锌芯 CLDR 懈屑械薪薪芯 "懈褞谢." 懈 "懈褞薪.", 薪芯 泻邪泻芯泄 褋屑褘褋谢 屑械薪褟褌褜 斜褍泻胁褍 薪邪 褌芯褔泻褍? + format: '褟薪胁._褎械胁褉._屑邪褉._邪锌褉._屑邪褟_懈褞薪褟_懈褞谢褟_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + standalone: + '褟薪胁._褎械胁褉._屑邪褉褌_邪锌褉._屑邪泄_懈褞薪褜_懈褞谢褜_邪胁谐._褋械薪褌._芯泻褌._薪芯褟斜._写械泻.'.split( + '_' + ), + }, + weekdays: { + standalone: + '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写邪_褔械褌胁械褉谐_锌褟褌薪懈褑邪_褋褍斜斜芯褌邪'.split( + '_' + ), + format: '胁芯褋泻褉械褋械薪褜械_锌芯薪械写械谢褜薪懈泻_胁褌芯褉薪懈泻_褋褉械写褍_褔械褌胁械褉谐_锌褟褌薪懈褑褍_褋褍斜斜芯褌褍'.split( + '_' + ), + isFormat: /\[ ?[袙胁] ?(?:锌褉芯褕谢褍褞|褋谢械写褍褞褖褍褞|褝褌褍)? ?] ?dddd/, + }, + weekdaysShort: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '胁褋_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + monthsParse: monthsParse, + longMonthsParse: monthsParse, + shortMonthsParse: monthsParse, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈, 锌芯 褌褉懈 斜褍泻胁褘, 写谢褟 薪械泻芯褌芯褉褘褏, 锌芯 4 斜褍泻胁褘, 褋芯泻褉邪褖械薪懈褟 褋 褌芯褔泻芯泄 懈 斜械蟹 褌芯褔泻懈 + monthsRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 泻芯锌懈褟 锌褉械写褘写褍褖械谐芯 + monthsShortRegex: + /^(褟薪胁邪褉[褜褟]|褟薪胁\.?|褎械胁褉邪谢[褜褟]|褎械胁褉?\.?|屑邪褉褌邪?|屑邪褉\.?|邪锌褉械谢[褜褟]|邪锌褉\.?|屑邪[泄褟]|懈褞薪[褜褟]|懈褞薪\.?|懈褞谢[褜褟]|懈褞谢\.?|邪胁谐褍褋褌邪?|邪胁谐\.?|褋械薪褌褟斜褉[褜褟]|褋械薪褌?\.?|芯泻褌褟斜褉[褜褟]|芯泻褌\.?|薪芯褟斜褉[褜褟]|薪芯褟斜?\.?|写械泻邪斜褉[褜褟]|写械泻\.?)/i, + + // 锌芯谢薪褘械 薪邪蟹胁邪薪懈褟 褋 锌邪写械卸邪屑懈 + monthsStrictRegex: + /^(褟薪胁邪褉[褟褜]|褎械胁褉邪谢[褟褜]|屑邪褉褌邪?|邪锌褉械谢[褟褜]|屑邪[褟泄]|懈褞薪[褟褜]|懈褞谢[褟褜]|邪胁谐褍褋褌邪?|褋械薪褌褟斜褉[褟褜]|芯泻褌褟斜褉[褟褜]|薪芯褟斜褉[褟褜]|写械泻邪斜褉[褟褜])/i, + + // 袙褘褉邪卸械薪懈械, 泻芯褌芯褉芯械 褋芯芯褌胁械褌褋褌胁褍械褌 褌芯谢褜泻芯 褋芯泻褉邪褖褢薪薪褘屑 褎芯褉屑邪屑 + monthsShortStrictRegex: + /^(褟薪胁\.|褎械胁褉?\.|屑邪褉[褌.]|邪锌褉\.|屑邪[褟泄]|懈褞薪[褜褟.]|懈褞谢[褜褟.]|邪胁谐\.|褋械薪褌?\.|芯泻褌\.|薪芯褟斜?\.|写械泻\.)/i, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 谐.', + LLL: 'D MMMM YYYY 谐., H:mm', + LLLL: 'dddd, D MMMM YYYY 谐., H:mm', + }, + calendar: { + sameDay: '[小械谐芯写薪褟, 胁] LT', + nextDay: '[袟邪胁褌褉邪, 胁] LT', + lastDay: '[袙褔械褉邪, 胁] LT', + nextWeek: 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'; + } + } + }, + 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', + }, + relativeTime: { + future: '褔械褉械蟹 %s', + past: '%s 薪邪蟹邪写', + s: '薪械褋泻芯谢褜泻芯 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '褔邪褋', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + w: '薪械写械谢褟', + ww: relativeTimeWithPlural, + M: '屑械褋褟褑', + MM: relativeTimeWithPlural, + y: '谐芯写', + yy: relativeTimeWithPlural, + }, + meridiemParse: /薪芯褔懈|褍褌褉邪|写薪褟|胁械褔械褉邪/i, + isPM: function (input) { + return /^(写薪褟|胁械褔械褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔懈'; + } else if (hour < 12) { + return '褍褌褉邪'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔械褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯|褟)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + case 'w': + case 'W': + return number + '-褟'; + default: + return number; + } + }, + 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/node_modules/moment/src/locale/sd.js b/node_modules/moment/src/locale/sd.js new file mode 100644 index 0000000..20f1059 --- /dev/null +++ b/node_modules/moment/src/locale/sd.js @@ -0,0 +1,81 @@ +//! moment.js locale configuration +//! locale : Sindhi [sd] +//! author : Narain Sagar : https://github.com/narainsagar + +import moment from '../moment'; + +var months = [ + '噩賳賵乇賷', + '賮賷亘乇賵乇賷', + '賲丕乇趩', + '丕倬乇賷賱', + '賲卅賷', + '噩賵賳', + '噩賵賱丕亍賽', + '丌诏爻俳', + '爻賷倬俳賲亘乇', + '丌讵俳賵亘乇', + '賳賵賲亘乇', + '趭爻賲亘乇', + ], + days = ['丌趩乇', '爻賵賲乇', '丕诒丕乇賵', '丕乇亘毓', '禺賲賷爻', '噩賲毓', '趪賳趪乇']; + +export default moment.defineLocale('sd', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丕趧] LT', + nextDay: '[爻趢丕诨賷] LT', + nextWeek: 'dddd [丕诔賷賳 賴賮鬲賷 鬲賷] LT', + lastDay: '[讵丕賱賴賴] LT', + lastWeek: '[诏夭乇賷賱 賴賮鬲賷] dddd [鬲賷] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 倬賵亍', + past: '%s 丕诔', + s: '趩賳丿 爻賷讵賳趭', + ss: '%d 爻賷讵賳趭', + m: '賴讵 賲賳俳', + mm: '%d 賲賳俳', + h: '賴讵 讵賱丕讵', + hh: '%d 讵賱丕讵', + d: '賴讵 趶賷賳賴賳', + dd: '%d 趶賷賳賴賳', + M: '賴讵 賲賴賷賳賵', + MM: '%d 賲賴賷賳丕', + y: '賴讵 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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/node_modules/moment/src/locale/se.js b/node_modules/moment/src/locale/se.js new file mode 100644 index 0000000..e8eec58 --- /dev/null +++ b/node_modules/moment/src/locale/se.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Northern Sami [se] +//! authors : B氓rd Rolstad Henriksen : https://github.com/karamell + +import moment from '../moment'; + +export default moment.defineLocale('se', { + months: 'o膽膽ajagem谩nnu_guovvam谩nnu_njuk膷am谩nnu_cuo艐om谩nnu_miessem谩nnu_geassem谩nnu_suoidnem谩nnu_borgem谩nnu_膷ak膷am谩nnu_golggotm谩nnu_sk谩bmam谩nnu_juovlam谩nnu'.split( + '_' + ), + monthsShort: + 'o膽膽j_guov_njuk_cuo_mies_geas_suoi_borg_膷ak膷_golg_sk谩b_juov'.split('_'), + weekdays: + 'sotnabeaivi_vuoss谩rga_ma艐艐eb谩rga_gaskavahkku_duorastat_bearjadat_l谩vvardat'.split( + '_' + ), + weekdaysShort: 'sotn_vuos_ma艐_gask_duor_bear_l谩v'.split('_'), + weekdaysMin: 's_v_m_g_d_b_L'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'MMMM D. [b.] YYYY', + LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm', + LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm', + }, + calendar: { + sameDay: '[otne ti] LT', + nextDay: '[ihttin ti] LT', + nextWeek: 'dddd [ti] LT', + lastDay: '[ikte ti] LT', + lastWeek: '[ovddit] dddd [ti] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s gea啪es', + past: 'ma艐it %s', + s: 'moadde sekunddat', + ss: '%d sekunddat', + m: 'okta minuhta', + mm: '%d minuhtat', + h: 'okta diimmu', + hh: '%d diimmut', + d: 'okta beaivi', + dd: '%d beaivvit', + M: 'okta m谩nnu', + MM: '%d m谩nut', + y: 'okta jahki', + yy: '%d jagit', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/si.js b/node_modules/moment/src/locale/si.js new file mode 100644 index 0000000..0f2498c --- /dev/null +++ b/node_modules/moment/src/locale/si.js @@ -0,0 +1,69 @@ +//! moment.js locale configuration +//! locale : Sinhalese [si] +//! author : Sampath Sitinamaluwa : https://github.com/sampathsris + +import moment from '../moment'; + +/*jshint -W100*/ +export default moment.defineLocale('si', { + months: '喽⑧侗喾喾忇痘喾抇喽脆窓喽多痘喾喾忇痘喾抇喽膏窂喽秽穵喽窋_喽呧洞喾娾嵿痘喾氞督喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾澿穬喾娻董喾擾喾冟窅喽脆穵喽窅喽膏穵喽多痘喾奯喽斷稓喾娻董喾澿抖喽秽穵_喽编窚喾喾愢陡喾娻抖喽秽穵_喽窓喾冟窅喽膏穵喽多痘喾'.split( + '_' + ), + monthsShort: '喽⑧侗_喽脆窓喽禵喽膏窂喽秽穵_喽呧洞喾奯喽膏窅喽亨窉_喽⑧窎喽编窉_喽⑧窎喽洁窉_喽呧稖喾漘喾冟窅喽脆穵_喽斷稓喾奯喽编窚喾喾恄喽窓喾冟窅'.split( + '_' + ), + weekdays: + '喽夃痘喾掄动喾廮喾冟冻喾斷动喾廮喽呧稛喾勦痘喾斷穩喾忇动喾廮喽多动喾忇动喾廮喽多穵鈥嵿痘喾勦穬喾娻洞喽窉喽编穵喽窂_喾冟窉喽氞窋喽秽窂喽窂_喾冟窓喽编穬喾斷痘喾忇动喾'.split( + '_' + ), + weekdaysShort: '喽夃痘喾抇喾冟冻喾擾喽呧稛_喽多动喾廮喽多穵鈥嵿痘喾刜喾冟窉喽氞窋_喾冟窓喽'.split('_'), + weekdaysMin: '喽塤喾僟喽卂喽禵喽多穵鈥嵿痘_喾冟窉_喾冟窓'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'a h:mm', + LTS: 'a h:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY MMMM D', + LLL: 'YYYY MMMM D, a h:mm', + LLLL: 'YYYY MMMM D [喾喾愢侗喾抅 dddd, a h:mm:ss', + }, + calendar: { + sameDay: '[喽呧动] LT[喽', + nextDay: '[喾勦窓喽 LT[喽', + nextWeek: 'dddd LT[喽', + lastDay: '[喽娻逗喾歖 LT[喽', + lastWeek: '[喽脆穬喾斷稖喾掄逗] dddd LT[喽', + sameElse: 'L', + }, + relativeTime: { + future: '%s喽氞窉喽编穵', + past: '%s喽氞锭 喽脆窓喽', + s: '喽董喾娻洞喽 喽氞窉喾勦窉喽脆逗', + ss: '喽董喾娻洞喽 %d', + m: '喽膏窉喽编窉喽穵喽窋喾', + mm: '喽膏窉喽编窉喽穵喽窋 %d', + h: '喽脆窅喽', + hh: '喽脆窅喽 %d', + d: '喽窉喽编逗', + dd: '喽窉喽 %d', + M: '喽膏窂喾冟逗', + MM: '喽膏窂喾 %d', + y: '喾喾冟痘', + yy: '喾喾冟痘 %d', + }, + dayOfMonthOrdinalParse: /\d{1,2} 喾喾愢侗喾/, + ordinal: function (number) { + return number + ' 喾喾愢侗喾'; + }, + meridiemParse: /喽脆窓喽 喾喽秽窋|喽脆穬喾 喾喽秽窋|喽脆窓.喾|喽.喾./, + isPM: function (input) { + return input === '喽.喾.' || input === '喽脆穬喾 喾喽秽窋'; + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? '喽.喾.' : '喽脆穬喾 喾喽秽窋'; + } else { + return isLower ? '喽脆窓.喾.' : '喽脆窓喽 喾喽秽窋'; + } + }, +}); diff --git a/node_modules/moment/src/locale/sk.js b/node_modules/moment/src/locale/sk.js new file mode 100644 index 0000000..7162ed6 --- /dev/null +++ b/node_modules/moment/src/locale/sk.js @@ -0,0 +1,145 @@ +//! moment.js locale configuration +//! locale : Slovak [sk] +//! author : Martin Minka : https://github.com/k2s +//! based on work of petrbela : https://github.com/petrbela + +import moment from '../moment'; + +var months = + 'janu谩r_febru谩r_marec_apr铆l_m谩j_j煤n_j煤l_august_september_okt贸ber_november_december'.split( + '_' + ), + monthsShort = 'jan_feb_mar_apr_m谩j_j煤n_j煤l_aug_sep_okt_nov_dec'.split('_'); +function plural(n) { + return n > 1 && n < 5; +} +function translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return withoutSuffix || isFuture ? 'p谩r sek煤nd' : 'p谩r sekundami'; + case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'sekundy' : 'sek煤nd'); + } else { + return result + 'sekundami'; + } + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'min煤ta' : isFuture ? 'min煤tu' : 'min煤tou'; + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'min煤ty' : 'min煤t'); + } else { + return result + 'min煤tami'; + } + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou'; + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'hodiny' : 'hod铆n'); + } else { + return result + 'hodinami'; + } + case 'd': // a day / in a day / a day ago + return withoutSuffix || isFuture ? 'de艌' : 'd艌om'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'dni' : 'dn铆'); + } else { + return result + 'd艌ami'; + } + case 'M': // a month / in a month / a month ago + return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + case 'y': // a year / in a year / a year ago + return withoutSuffix || isFuture ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + } +} + +export default moment.defineLocale('sk', { + months: months, + monthsShort: monthsShort, + weekdays: 'nede木a_pondelok_utorok_streda_拧tvrtok_piatok_sobota'.split('_'), + weekdaysShort: 'ne_po_ut_st_拧t_pi_so'.split('_'), + weekdaysMin: 'ne_po_ut_st_拧t_pi_so'.split('_'), + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nede木u o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo 拧tvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[v膷era o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minul煤 nede木u o] LT'; + case 1: + case 2: + return '[minul媒] dddd [o] LT'; + case 3: + return '[minul煤 stredu o] LT'; + case 4: + case 5: + return '[minul媒] dddd [o] LT'; + case 6: + return '[minul煤 sobotu o] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pred %s', + s: translate, + ss: translate, + m: translate, + mm: translate, + h: translate, + hh: translate, + d: translate, + dd: translate, + M: translate, + MM: translate, + y: translate, + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/sl.js b/node_modules/moment/src/locale/sl.js new file mode 100644 index 0000000..0290a8e --- /dev/null +++ b/node_modules/moment/src/locale/sl.js @@ -0,0 +1,171 @@ +//! moment.js locale configuration +//! locale : Slovenian [sl] +//! author : Robert Sedov拧ek : https://github.com/sedovsek + +import moment from '../moment'; + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture + ? 'nekaj sekund' + : 'nekaj sekundami'; + case 'ss': + if (number === 1) { + result += withoutSuffix ? 'sekundo' : 'sekundi'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah'; + } else { + result += 'sekund'; + } + return result; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } +} + +export default moment.defineLocale('sl', { + months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljek_torek_sreda_膷etrtek_petek_sobota'.split('_'), + weekdaysShort: 'ned._pon._tor._sre._膷et._pet._sob.'.split('_'), + weekdaysMin: 'ne_po_to_sr_膷e_pe_so'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm', + }, + calendar: { + sameDay: '[danes ob] LT', + nextDay: '[jutri ob] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay: '[v膷eraj ob] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[prej拧njo] [nedeljo] [ob] LT'; + case 3: + return '[prej拧njo] [sredo] [ob] LT'; + case 6: + return '[prej拧njo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prej拧nji] dddd [ob] LT'; + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '膷ez %s', + past: 'pred %s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sq.js b/node_modules/moment/src/locale/sq.js new file mode 100644 index 0000000..3b3bcfa --- /dev/null +++ b/node_modules/moment/src/locale/sq.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Albanian [sq] +//! author : Flak毛rim Ismani : https://github.com/flakerimi +//! author : Menelion Elens煤le : https://github.com/Oire +//! author : Oerd Cukalla : https://github.com/oerd + +import moment from '../moment'; + +export default moment.defineLocale('sq', { + months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N毛ntor_Dhjetor'.split( + '_' + ), + monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N毛n_Dhj'.split('_'), + weekdays: 'E Diel_E H毛n毛_E Mart毛_E M毛rkur毛_E Enjte_E Premte_E Shtun毛'.split( + '_' + ), + weekdaysShort: 'Die_H毛n_Mar_M毛r_Enj_Pre_Sht'.split('_'), + weekdaysMin: 'D_H_Ma_M毛_E_P_Sh'.split('_'), + weekdaysParseExact: true, + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem: function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Sot n毛] LT', + nextDay: '[Nes毛r n毛] LT', + nextWeek: 'dddd [n毛] LT', + lastDay: '[Dje n毛] LT', + lastWeek: 'dddd [e kaluar n毛] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'n毛 %s', + past: '%s m毛 par毛', + s: 'disa sekonda', + ss: '%d sekonda', + m: 'nj毛 minut毛', + mm: '%d minuta', + h: 'nj毛 or毛', + hh: '%d or毛', + d: 'nj毛 dit毛', + dd: '%d dit毛', + M: 'nj毛 muaj', + MM: '%d muaj', + y: 'nj毛 vit', + yy: '%d vite', + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/sr-cyrl.js b/node_modules/moment/src/locale/sr-cyrl.js new file mode 100644 index 0000000..5e05810 --- /dev/null +++ b/node_modules/moment/src/locale/sr-cyrl.js @@ -0,0 +1,127 @@ +//! moment.js locale configuration +//! locale : Serbian Cyrillic [sr-cyrl] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['褋械泻褍薪写邪', '褋械泻褍薪写械', '褋械泻褍薪写懈'], + m: ['褬械写邪薪 屑懈薪褍褌', '褬械写薪芯谐 屑懈薪褍褌邪'], + mm: ['屑懈薪褍褌', '屑懈薪褍褌邪', '屑懈薪褍褌邪'], + h: ['褬械写邪薪 褋邪褌', '褬械写薪芯谐 褋邪褌邪'], + hh: ['褋邪褌', '褋邪褌邪', '褋邪褌懈'], + d: ['褬械写邪薪 写邪薪', '褬械写薪芯谐 写邪薪邪'], + dd: ['写邪薪', '写邪薪邪', '写邪薪邪'], + M: ['褬械写邪薪 屑械褋械褑', '褬械写薪芯谐 屑械褋械褑邪'], + MM: ['屑械褋械褑', '屑械褋械褑邪', '屑械褋械褑懈'], + y: ['褬械写薪褍 谐芯写懈薪褍', '褬械写薪械 谐芯写懈薪械'], + yy: ['谐芯写懈薪褍', '谐芯写懈薪械', '谐芯写懈薪邪'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return '褬械写薪邪 谐芯写懈薪邪'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === '谐芯写懈薪褍') { + return number + ' 谐芯写懈薪邪'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr-cyrl', { + months: '褬邪薪褍邪褉_褎械斜褉褍邪褉_屑邪褉褌_邪锌褉懈谢_屑邪褬_褬褍薪_褬褍谢_邪胁谐褍褋褌_褋械锌褌械屑斜邪褉_芯泻褌芯斜邪褉_薪芯胁械屑斜邪褉_写械褑械屑斜邪褉'.split( + '_' + ), + monthsShort: + '褬邪薪._褎械斜._屑邪褉._邪锌褉._屑邪褬_褬褍薪_褬褍谢_邪胁谐._褋械锌._芯泻褌._薪芯胁._写械褑.'.split('_'), + monthsParseExact: true, + weekdays: '薪械写械褭邪_锌芯薪械写械褭邪泻_褍褌芯褉邪泻_褋褉械写邪_褔械褌胁褉褌邪泻_锌械褌邪泻_褋褍斜芯褌邪'.split('_'), + weekdaysShort: '薪械写._锌芯薪._褍褌芯._褋褉械._褔械褌._锌械褌._褋褍斜.'.split('_'), + weekdaysMin: '薪械_锌芯_褍褌_褋褉_褔械_锌械_褋褍'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[写邪薪邪褋 褍] LT', + nextDay: '[褋褍褌褉邪 褍] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[褍] [薪械写械褭褍] [褍] LT'; + case 3: + return '[褍] [褋褉械写褍] [褍] LT'; + case 6: + return '[褍] [褋褍斜芯褌褍] [褍] LT'; + case 1: + case 2: + case 4: + case 5: + return '[褍] dddd [褍] LT'; + } + }, + lastDay: '[褬褍褔械 褍] LT', + lastWeek: function () { + var lastWeekDays = [ + '[锌褉芯褕谢械] [薪械写械褭械] [褍] LT', + '[锌褉芯褕谢芯谐] [锌芯薪械写械褭泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [褍褌芯褉泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褉械写械] [褍] LT', + '[锌褉芯褕谢芯谐] [褔械褌胁褉褌泻邪] [褍] LT', + '[锌褉芯褕谢芯谐] [锌械褌泻邪] [褍] LT', + '[锌褉芯褕谢械] [褋褍斜芯褌械] [褍] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '锌褉械 %s', + s: '薪械泻芯谢懈泻芯 褋械泻褍薪写懈', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/sr.js b/node_modules/moment/src/locale/sr.js new file mode 100644 index 0000000..a407ec7 --- /dev/null +++ b/node_modules/moment/src/locale/sr.js @@ -0,0 +1,129 @@ +//! moment.js locale configuration +//! locale : Serbian [sr] +//! author : Milan Jana膷kovi膰 : https://github.com/milan-j +//! author : Stefan Crnjakovi膰 : https://github.com/crnjakovic + +import moment from '../moment'; + +var translator = { + words: { + //Different grammatical cases + ss: ['sekunda', 'sekunde', 'sekundi'], + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + d: ['jedan dan', 'jednog dana'], + dd: ['dan', 'dana', 'dana'], + M: ['jedan mesec', 'jednog meseca'], + MM: ['mesec', 'meseca', 'meseci'], + y: ['jednu godinu', 'jedne godine'], + yy: ['godinu', 'godine', 'godina'], + }, + correctGrammaticalCase: function (number, wordKey) { + if ( + number % 10 >= 1 && + number % 10 <= 4 && + (number % 100 < 10 || number % 100 >= 20) + ) { + return number % 10 === 1 ? wordKey[0] : wordKey[1]; + } + return wordKey[2]; + }, + translate: function (number, withoutSuffix, key, isFuture) { + var wordKey = translator.words[key], + word; + + if (key.length === 1) { + // Nominativ + if (key === 'y' && withoutSuffix) return 'jedna godina'; + return isFuture || withoutSuffix ? wordKey[0] : wordKey[1]; + } + + word = translator.correctGrammaticalCase(number, wordKey); + // Nominativ + if (key === 'yy' && withoutSuffix && word === 'godinu') { + return number + ' godina'; + } + + return number + ' ' + word; + }, +}; + +export default moment.defineLocale('sr', { + months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split( + '_' + ), + monthsShort: + 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'), + monthsParseExact: true, + weekdays: 'nedelja_ponedeljak_utorak_sreda_膷etvrtak_petak_subota'.split( + '_' + ), + weekdaysShort: 'ned._pon._uto._sre._膷et._pet._sub.'.split('_'), + weekdaysMin: 'ne_po_ut_sr_膷e_pe_su'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'D. M. YYYY.', + LL: 'D. MMMM YYYY.', + LLL: 'D. MMMM YYYY. H:mm', + LLLL: 'dddd, D. MMMM YYYY. H:mm', + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay: '[ju膷e u] LT', + lastWeek: function () { + var lastWeekDays = [ + '[pro拧le] [nedelje] [u] LT', + '[pro拧log] [ponedeljka] [u] LT', + '[pro拧log] [utorka] [u] LT', + '[pro拧le] [srede] [u] LT', + '[pro拧log] [膷etvrtka] [u] LT', + '[pro拧log] [petka] [u] LT', + '[pro拧le] [subote] [u] LT', + ]; + return lastWeekDays[this.day()]; + }, + sameElse: 'L', + }, + relativeTime: { + future: 'za %s', + past: 'pre %s', + s: 'nekoliko sekundi', + ss: translator.translate, + m: translator.translate, + mm: translator.translate, + h: translator.translate, + hh: translator.translate, + d: translator.translate, + dd: translator.translate, + M: translator.translate, + MM: translator.translate, + y: translator.translate, + yy: translator.translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ss.js b/node_modules/moment/src/locale/ss.js new file mode 100644 index 0000000..60db499 --- /dev/null +++ b/node_modules/moment/src/locale/ss.js @@ -0,0 +1,84 @@ +//! moment.js locale configuration +//! locale : siSwati [ss] +//! author : Nicolai Davies : https://github.com/nicolaidavies + +import moment from '../moment'; + +export default moment.defineLocale('ss', { + months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split( + '_' + ), + monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'), + weekdays: + 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split( + '_' + ), + weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'), + weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[Namuhla nga] LT', + nextDay: '[Kusasa nga] LT', + nextWeek: 'dddd [nga] LT', + lastDay: '[Itolo nga] LT', + lastWeek: 'dddd [leliphelile] [nga] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'nga %s', + past: 'wenteka nga %s', + s: 'emizuzwana lomcane', + ss: '%d mzuzwana', + m: 'umzuzu', + mm: '%d emizuzu', + h: 'lihora', + hh: '%d emahora', + d: 'lilanga', + dd: '%d emalanga', + M: 'inyanga', + MM: '%d tinyanga', + y: 'umnyaka', + yy: '%d iminyaka', + }, + meridiemParse: /ekuseni|emini|entsambama|ebusuku/, + meridiem: function (hours, minutes, isLower) { + if (hours < 11) { + return 'ekuseni'; + } else if (hours < 15) { + return 'emini'; + } else if (hours < 19) { + return 'entsambama'; + } else { + return 'ebusuku'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'ekuseni') { + return hour; + } else if (meridiem === 'emini') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') { + if (hour === 0) { + return 0; + } + return hour + 12; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: '%d', + 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/node_modules/moment/src/locale/sv.js b/node_modules/moment/src/locale/sv.js new file mode 100644 index 0000000..6f5c1d9 --- /dev/null +++ b/node_modules/moment/src/locale/sv.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Swedish [sv] +//! author : Jens Alm : https://github.com/ulmus + +import moment from '../moment'; + +export default moment.defineLocale('sv', { + months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split( + '_' + ), + monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays: 's枚ndag_m氓ndag_tisdag_onsdag_torsdag_fredag_l枚rdag'.split('_'), + weekdaysShort: 's枚n_m氓n_tis_ons_tor_fre_l枚r'.split('_'), + weekdaysMin: 's枚_m氓_ti_on_to_fr_l枚'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY [kl.] HH:mm', + LLLL: 'dddd D MMMM YYYY [kl.] HH:mm', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Ig氓r] LT', + nextWeek: '[P氓] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'om %s', + past: 'f枚r %s sedan', + s: 'n氓gra sekunder', + ss: '%d sekunder', + m: 'en minut', + mm: '%d minuter', + h: 'en timme', + hh: '%d timmar', + d: 'en dag', + dd: '%d dagar', + M: 'en m氓nad', + MM: '%d m氓nader', + y: 'ett 氓r', + yy: '%d 氓r', + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? ':e' + : b === 1 + ? ':a' + : b === 2 + ? ':a' + : b === 3 + ? ':e' + : ':e'; + 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/node_modules/moment/src/locale/sw.js b/node_modules/moment/src/locale/sw.js new file mode 100644 index 0000000..35a2668 --- /dev/null +++ b/node_modules/moment/src/locale/sw.js @@ -0,0 +1,55 @@ +//! moment.js locale configuration +//! locale : Swahili [sw] +//! author : Fahad Kassim : https://github.com/fadsel + +import moment from '../moment'; + +export default moment.defineLocale('sw', { + months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split( + '_' + ), + monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'), + weekdays: + 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split( + '_' + ), + weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'), + weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'hh:mm A', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[leo saa] LT', + nextDay: '[kesho saa] LT', + nextWeek: '[wiki ijayo] dddd [saat] LT', + lastDay: '[jana] LT', + lastWeek: '[wiki iliyopita] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s baadaye', + past: 'tokea %s', + s: 'hivi punde', + ss: 'sekunde %d', + m: 'dakika moja', + mm: 'dakika %d', + h: 'saa limoja', + hh: 'masaa %d', + d: 'siku moja', + dd: 'siku %d', + M: 'mwezi mmoja', + MM: 'miezi %d', + y: 'mwaka mmoja', + yy: 'miaka %d', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ta.js b/node_modules/moment/src/locale/ta.js new file mode 100644 index 0000000..fdfa1ba --- /dev/null +++ b/node_modules/moment/src/locale/ta.js @@ -0,0 +1,131 @@ +//! moment.js locale configuration +//! locale : Tamil [ta] +//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + +import moment from '../moment'; + +var symbolMap = { + 1: '喁', + 2: '喁', + 3: '喁', + 4: '喁', + 5: '喁', + 6: '喁', + 7: '喁', + 8: '喁', + 9: '喁', + 0: '喁', + }, + numberMap = { + '喁': '1', + '喁': '2', + '喁': '3', + '喁': '4', + '喁': '5', + '喁': '6', + '喁': '7', + '喁': '8', + '喁': '9', + '喁': '0', + }; + +export default moment.defineLocale('ta', { + months: '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + monthsShort: + '喈溹喈掂喈縚喈喈瘝喈班喈班_喈喈班瘝喈氞瘝_喈忇喁嵿喈侧瘝_喈瘒_喈溹瘋喈┼瘝_喈溹瘋喈侧瘓_喈嗋畷喈膏瘝喈熰瘝_喈氞瘑喈瘝喈熰瘑喈瘝喈喁峗喈呧畷喁嵿疅喁囙喈喁峗喈ㄠ喈瘝喈喁峗喈熰喈氞喁嵿喈班瘝'.split( + '_' + ), + weekdays: + '喈炧喈喈编瘝喈编瘉喈曕瘝喈曕喈脆喁坃喈む喈權瘝喈曕疅喁嵿畷喈苦喈瘓_喈氞瘑喈掂瘝喈掂喈瘝喈曕喈脆喁坃喈瘉喈む喁嵿畷喈苦喈瘓_喈掂喈喈脆畷喁嵿畷喈苦喈瘓_喈掂瘑喈赤瘝喈赤喈曕瘝喈曕喈脆喁坃喈氞喈苦畷喁嵿畷喈苦喈瘓'.split( + '_' + ), + weekdaysShort: '喈炧喈喈编瘉_喈む喈權瘝喈曕喁峗喈氞瘑喈掂瘝喈掂喈瘝_喈瘉喈む喁峗喈掂喈喈脆喁峗喈掂瘑喈赤瘝喈赤_喈氞喈'.split( + '_' + ), + weekdaysMin: '喈炧_喈む_喈氞瘑_喈瘉_喈掂_喈掂瘑_喈'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, HH:mm', + LLLL: 'dddd, D MMMM YYYY, HH:mm', + }, + calendar: { + sameDay: '[喈囙喁嵿喁乚 LT', + nextDay: '[喈ㄠ喈赤瘓] LT', + nextWeek: 'dddd, LT', + lastDay: '[喈ㄠ瘒喈编瘝喈编瘉] LT', + lastWeek: '[喈曕疅喈ㄠ瘝喈 喈掂喈班喁峕 dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喈囙喁', + past: '%s 喈瘉喈┼瘝', + s: '喈掄喁 喈氞喈 喈掂喈ㄠ喈熰喈曕喁', + ss: '%d 喈掂喈ㄠ喈熰喈曕喁', + m: '喈掄喁 喈ㄠ喈喈熰喁', + mm: '%d 喈ㄠ喈喈熰畽喁嵿畷喈赤瘝', + h: '喈掄喁 喈喈 喈ㄠ瘒喈班喁', + hh: '%d 喈喈 喈ㄠ瘒喈班喁', + d: '喈掄喁 喈ㄠ喈赤瘝', + dd: '%d 喈ㄠ喈熰瘝喈曕喁', + M: '喈掄喁 喈喈む喁', + MM: '%d 喈喈む畽喁嵿畷喈赤瘝', + y: '喈掄喁 喈掂喁佮疅喈瘝', + yy: '%d 喈嗋喁嵿疅喁佮畷喈赤瘝', + }, + dayOfMonthOrdinalParse: /\d{1,2}喈掂喁/, + ordinal: function (number) { + return number + '喈掂喁'; + }, + preparse: function (string) { + return string.replace(/[喁о喁┼喁喁喁]/g, function (match) { + return numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return symbolMap[match]; + }); + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /喈喈喁峾喈掂瘓喈曕喁坾喈曕喈侧瘓|喈ㄠ喁嵿喈曕喁峾喈庎喁嵿喈距疅喁亅喈喈侧瘓/, + meridiem: function (hour, minute, isLower) { + if (hour < 2) { + return ' 喈喈喁'; + } else if (hour < 6) { + return ' 喈掂瘓喈曕喁'; // 喈掂瘓喈曕喁 + } else if (hour < 10) { + return ' 喈曕喈侧瘓'; // 喈曕喈侧瘓 + } else if (hour < 14) { + return ' 喈ㄠ喁嵿喈曕喁'; // 喈ㄠ喁嵿喈曕喁 + } else if (hour < 18) { + return ' 喈庎喁嵿喈距疅喁'; // 喈庎喁嵿喈距疅喁 + } else if (hour < 22) { + return ' 喈喈侧瘓'; // 喈喈侧瘓 + } else { + return ' 喈喈喁'; + } + }, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喈喈喁') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === '喈掂瘓喈曕喁' || meridiem === '喈曕喈侧瘓') { + return hour; + } else if (meridiem === '喈ㄠ喁嵿喈曕喁') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/te.js b/node_modules/moment/src/locale/te.js new file mode 100644 index 0000000..56f9f16 --- /dev/null +++ b/node_modules/moment/src/locale/te.js @@ -0,0 +1,88 @@ +//! moment.js locale configuration +//! locale : Telugu [te] +//! author : Krishna Chaitanya Thota : https://github.com/kcthota + +import moment from '../moment'; + +export default moment.defineLocale('te', { + months: '喟溹皑喟掂鞍喟縚喟翱喟睄喟班暗喟班翱_喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟苦安啾峗喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸喟膏睄喟熰眮_喟膏眴喟睄喟熰眴喟傕艾喟班睄_喟呧皶啾嵿盁啾嬥艾喟班睄_喟ㄠ暗喟傕艾喟班睄_喟∴翱喟膏眴喟傕艾喟班睄'.split( + '_' + ), + monthsShort: + '喟溹皑._喟翱喟睄喟._喟熬喟班睄喟氞翱_喟忇蔼啾嵿鞍喟._喟眹_喟溹眰喟ㄠ睄_喟溹眮喟侧眻_喟嗋皸._喟膏眴喟睄._喟呧皶啾嵿盁啾._喟ㄠ暗._喟∴翱喟膏眴.'.split( + '_' + ), + monthsParseExact: true, + weekdays: + '喟嗋唉喟苦暗喟距鞍喟俖喟膏眿喟暗喟距鞍喟俖喟皞喟椸俺喟掂熬喟班皞_喟眮喟о暗喟距鞍喟俖喟椸眮喟班眮喟掂熬喟班皞_喟多眮喟曕睄喟班暗喟距鞍喟俖喟多皑喟苦暗喟距鞍喟'.split( + '_' + ), + weekdaysShort: '喟嗋唉喟縚喟膏眿喟甠喟皞喟椸俺_喟眮喟喟椸眮喟班眮_喟多眮喟曕睄喟癬喟多皑喟'.split('_'), + weekdaysMin: '喟哶喟膏眿_喟皞_喟眮_喟椸眮_喟多眮_喟'.split('_'), + longDateFormat: { + LT: 'A h:mm', + LTS: 'A h:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY, A h:mm', + LLLL: 'dddd, D MMMM YYYY, A h:mm', + }, + calendar: { + sameDay: '[喟ㄠ眹喟∴眮] LT', + nextDay: '[喟班眹喟眮] LT', + nextWeek: 'dddd, LT', + lastDay: '[喟ㄠ翱喟ㄠ睄喟╙ LT', + lastWeek: '[喟椸挨] dddd, LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 喟侧眿', + past: '%s 喟曕睄喟班翱喟む皞', + s: '喟曕眾喟ㄠ睄喟ㄠ翱 喟曕睄喟粪埃喟距安啾', + ss: '%d 喟膏眴喟曕皑啾嵿安啾', + m: '喟掄皶 喟ㄠ翱喟翱喟粪皞', + mm: '%d 喟ㄠ翱喟翱喟粪熬喟侧眮', + h: '喟掄皶 喟椸皞喟', + hh: '%d 喟椸皞喟熰安啾', + d: '喟掄皶 喟班眿喟溹眮', + dd: '%d 喟班眿喟溹眮喟侧眮', + M: '喟掄皶 喟ㄠ眴喟', + MM: '%d 喟ㄠ眴喟侧安啾', + y: '喟掄皶 喟膏皞喟掂挨啾嵿案喟班皞', + yy: '%d 喟膏皞喟掂挨啾嵿案喟班熬喟侧眮', + }, + dayOfMonthOrdinalParse: /\d{1,2}喟/, + ordinal: '%d喟', + meridiemParse: /喟班熬喟む睄喟班翱|喟夃唉喟皞|喟哀啾嵿隘喟距肮啾嵿皑喟倈喟膏熬喟皞喟む睄喟班皞/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '喟班熬喟む睄喟班翱') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '喟夃唉喟皞') { + return hour; + } else if (meridiem === '喟哀啾嵿隘喟距肮啾嵿皑喟') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === '喟膏熬喟皞喟む睄喟班皞') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '喟班熬喟む睄喟班翱'; + } else if (hour < 10) { + return '喟夃唉喟皞'; + } else if (hour < 17) { + return '喟哀啾嵿隘喟距肮啾嵿皑喟'; + } else if (hour < 20) { + return '喟膏熬喟皞喟む睄喟班皞'; + } else { + return '喟班熬喟む睄喟班翱'; + } + }, + week: { + dow: 0, // Sunday is the first day of the week. + doy: 6, // The week that contains Jan 6th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tet.js b/node_modules/moment/src/locale/tet.js new file mode 100644 index 0000000..8d834d7 --- /dev/null +++ b/node_modules/moment/src/locale/tet.js @@ -0,0 +1,68 @@ +//! moment.js locale configuration +//! locale : Tetun Dili (East Timor) [tet] +//! author : Joshua Brooks : https://github.com/joshbrooks +//! author : Onorio De J. Afonso : https://github.com/marobo +//! author : Sonia Simoes : https://github.com/soniasimoes + +import moment from '../moment'; + +export default moment.defineLocale('tet', { + months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju帽u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'), + weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'), + weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[Ohin iha] LT', + nextDay: '[Aban iha] LT', + nextWeek: 'dddd [iha] LT', + lastDay: '[Horiseik iha] LT', + lastWeek: 'dddd [semana kotuk] [iha] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'iha %s', + past: '%s liuba', + s: 'segundu balun', + ss: 'segundu %d', + m: 'minutu ida', + mm: 'minutu %d', + h: 'oras ida', + hh: 'oras %d', + d: 'loron ida', + dd: 'loron %d', + M: 'fulan ida', + MM: 'fulan %d', + y: 'tinan ida', + yy: 'tinan %d', + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/tg.js b/node_modules/moment/src/locale/tg.js new file mode 100644 index 0000000..60d33c7 --- /dev/null +++ b/node_modules/moment/src/locale/tg.js @@ -0,0 +1,117 @@ +//! moment.js locale configuration +//! locale : Tajik [tg] +//! author : Orif N. Jr. : https://github.com/orif-jr + +import moment from '../moment'; + +var suffixes = { + 0: '-褍屑', + 1: '-褍屑', + 2: '-褞屑', + 3: '-褞屑', + 4: '-褍屑', + 5: '-褍屑', + 6: '-褍屑', + 7: '-褍屑', + 8: '-褍屑', + 9: '-褍屑', + 10: '-褍屑', + 12: '-褍屑', + 13: '-褍屑', + 20: '-褍屑', + 30: '-褞屑', + 40: '-褍屑', + 50: '-褍屑', + 60: '-褍屑', + 70: '-褍屑', + 80: '-褍屑', + 90: '-褍屑', + 100: '-褍屑', +}; + +export default moment.defineLocale('tg', { + months: { + format: '褟薪胁邪褉懈_褎械胁褉邪谢懈_屑邪褉褌懈_邪锌褉械谢懈_屑邪泄懈_懈褞薪懈_懈褞谢懈_邪胁谐褍褋褌懈_褋械薪褌褟斜褉懈_芯泻褌褟斜褉懈_薪芯褟斜褉懈_写械泻邪斜褉懈'.split( + '_' + ), + standalone: + '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + }, + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '褟泻褕邪薪斜械_写褍褕邪薪斜械_褋械褕邪薪斜械_褔芯褉褕邪薪斜械_锌邪薪曳褕邪薪斜械_曳褍屑褗邪_褕邪薪斜械'.split( + '_' + ), + weekdaysShort: '褟褕斜_写褕斜_褋褕斜_褔褕斜_锌褕斜_曳褍屑_褕薪斜'.split('_'), + weekdaysMin: '褟褕_写褕_褋褕_褔褕_锌褕_曳屑_褕斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[袠屑褉盈蟹 褋芯邪褌懈] LT', + nextDay: '[肖邪褉写芯 褋芯邪褌懈] LT', + lastDay: '[袛懈褉盈蟹 褋芯邪褌懈] LT', + nextWeek: 'dddd[懈] [页邪褎褌邪懈 芯褟薪写邪 褋芯邪褌懈] LT', + lastWeek: 'dddd[懈] [页邪褎褌邪懈 谐褍蟹邪褕褌邪 褋芯邪褌懈] LT', + sameElse: 'L', + }, + relativeTime: { + future: '斜邪褗写懈 %s', + past: '%s 锌械褕', + s: '褟泻褔邪薪写 褋芯薪懈褟', + m: '褟泻 写邪覜懈覜邪', + mm: '%d 写邪覜懈覜邪', + h: '褟泻 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '褟泻 褉盈蟹', + dd: '%d 褉盈蟹', + M: '褟泻 屑芯页', + MM: '%d 屑芯页', + y: '褟泻 褋芯谢', + yy: '%d 褋芯谢', + }, + meridiemParse: /褕邪斜|褋褍斜页|褉盈蟹|斜械谐芯页/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '褕邪斜') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === '褋褍斜页') { + return hour; + } else if (meridiem === '褉盈蟹') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '斜械谐芯页') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '褕邪斜'; + } else if (hour < 11) { + return '褋褍斜页'; + } else if (hour < 16) { + return '褉盈蟹'; + } else if (hour < 19) { + return '斜械谐芯页'; + } else { + return '褕邪斜'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(褍屑|褞屑)/, + ordinal: function (number) { + var a = number % 10, + b = number >= 100 ? 100 : null; + return number + (suffixes[number] || suffixes[a] || suffixes[b]); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/th.js b/node_modules/moment/src/locale/th.js new file mode 100644 index 0000000..b3a5560 --- /dev/null +++ b/node_modules/moment/src/locale/th.js @@ -0,0 +1,65 @@ +//! moment.js locale configuration +//! locale : Thai [th] +//! author : Kridsada Thanabulpong : https://github.com/sirn + +import moment from '../moment'; + +export default moment.defineLocale('th', { + months: '喔∴竵喔`覆喔勦浮_喔佮父喔∴笭喔侧笧喔编笝喔樴箤_喔∴傅喔權覆喔勦浮_喙喔∴俯喔侧涪喔檁喔炧袱喔┼笭喔侧竸喔喔∴复喔栢父喔權覆喔⑧笝_喔佮福喔佮笌喔侧竸喔喔复喔囙斧喔侧竸喔喔佮副喔權涪喔侧涪喔檁喔曕父喔ム覆喔勦浮_喔炧袱喔ㄠ笀喔脆竵喔侧涪喔檁喔樴副喔權抚喔侧竸喔'.split( + '_' + ), + monthsShort: + '喔.喔._喔.喔._喔∴傅.喔._喙喔.喔._喔.喔._喔∴复.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔._喔.喔.'.split( + '_' + ), + monthsParseExact: true, + weekdays: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔笟喔斷傅_喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), + weekdaysShort: '喔覆喔椸复喔曕涪喙宊喔堗副喔權笚喔`箤_喔副喔囙竸喔侧福_喔炧父喔榑喔炧袱喔副喔猒喔ㄠ父喔佮福喙宊喙喔覆喔`箤'.split('_'), // yes, three characters difference + weekdaysMin: '喔覆._喔._喔._喔._喔炧袱._喔._喔.'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'H:mm', + LTS: 'H:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY 喙喔о弗喔 H:mm', + LLLL: '喔о副喔檇ddd喔椸傅喙 D MMMM YYYY 喙喔о弗喔 H:mm', + }, + meridiemParse: /喔佮箞喔笝喙喔椸傅喙堗涪喔噟喔弗喔编竾喙喔椸傅喙堗涪喔/, + isPM: function (input) { + return input === '喔弗喔编竾喙喔椸傅喙堗涪喔'; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '喔佮箞喔笝喙喔椸傅喙堗涪喔'; + } else { + return '喔弗喔编竾喙喔椸傅喙堗涪喔'; + } + }, + calendar: { + sameDay: '[喔о副喔權笝喔掂箟 喙喔о弗喔瞉 LT', + nextDay: '[喔炧福喔膏箞喔囙笝喔掂箟 喙喔о弗喔瞉 LT', + nextWeek: 'dddd[喔笝喙夃覆 喙喔о弗喔瞉 LT', + lastDay: '[喙喔∴阜喙堗腑喔о覆喔權笝喔掂箟 喙喔о弗喔瞉 LT', + lastWeek: '[喔о副喔橾dddd[喔椸傅喙堗箒喔ム箟喔 喙喔о弗喔瞉 LT', + sameElse: 'L', + }, + relativeTime: { + future: '喔傅喔 %s', + past: '%s喔椸傅喙堗箒喔ム箟喔', + s: '喙勦浮喙堗竵喔掂箞喔о复喔權覆喔椸傅', + ss: '%d 喔о复喔權覆喔椸傅', + m: '1 喔權覆喔椸傅', + mm: '%d 喔權覆喔椸傅', + h: '1 喔娻副喙堗抚喙傕浮喔', + hh: '%d 喔娻副喙堗抚喙傕浮喔', + d: '1 喔о副喔', + dd: '%d 喔о副喔', + w: '1 喔副喔涏笖喔侧斧喙', + ww: '%d 喔副喔涏笖喔侧斧喙', + M: '1 喙喔斷阜喔笝', + MM: '%d 喙喔斷阜喔笝', + y: '1 喔涏傅', + yy: '%d 喔涏傅', + }, +}); diff --git a/node_modules/moment/src/locale/tk.js b/node_modules/moment/src/locale/tk.js new file mode 100644 index 0000000..b26f99e --- /dev/null +++ b/node_modules/moment/src/locale/tk.js @@ -0,0 +1,91 @@ +//! moment.js locale configuration +//! locale : Turkmen [tk] +//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy + +import moment from '../moment'; + +var suffixes = { + 1: "'inji", + 5: "'inji", + 8: "'inji", + 70: "'inji", + 80: "'inji", + 2: "'nji", + 7: "'nji", + 20: "'nji", + 50: "'nji", + 3: "'眉nji", + 4: "'眉nji", + 100: "'眉nji", + 6: "'njy", + 9: "'unjy", + 10: "'unjy", + 30: "'unjy", + 60: "'ynjy", + 90: "'ynjy", +}; + +export default moment.defineLocale('tk', { + months: '脻anwar_Fewral_Mart_Aprel_Ma媒_I媒un_I媒ul_Awgust_Sent媒abr_Okt媒abr_No媒abr_Dekabr'.split( + '_' + ), + monthsShort: '脻an_Few_Mar_Apr_Ma媒_I媒n_I媒l_Awg_Sen_Okt_No媒_Dek'.split('_'), + weekdays: '脻ek艧enbe_Du艧enbe_Si艧enbe_脟ar艧enbe_Pen艧enbe_Anna_艦enbe'.split( + '_' + ), + weekdaysShort: '脻ek_Du艧_Si艧_脟ar_Pen_Ann_艦en'.split('_'), + weekdaysMin: '脻k_D艧_S艧_脟r_Pn_An_艦n'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n sagat] LT', + nextDay: '[ertir sagat] LT', + nextWeek: '[indiki] dddd [sagat] LT', + lastDay: '[d眉媒n] LT', + lastWeek: '[ge莽en] dddd [sagat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s so艌', + past: '%s 枚艌', + s: 'birn盲莽e sekunt', + m: 'bir minut', + mm: '%d minut', + h: 'bir sagat', + hh: '%d sagat', + d: 'bir g眉n', + dd: '%d g眉n', + M: 'bir a媒', + MM: '%d a媒', + y: 'bir 媒yl', + yy: '%d 媒yl', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'unjy"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tl-ph.js b/node_modules/moment/src/locale/tl-ph.js new file mode 100644 index 0000000..581d74a --- /dev/null +++ b/node_modules/moment/src/locale/tl-ph.js @@ -0,0 +1,57 @@ +//! moment.js locale configuration +//! locale : Tagalog (Philippines) [tl-ph] +//! author : Dan Hagman : https://github.com/hagmandan + +import moment from '../moment'; + +export default moment.defineLocale('tl-ph', { + months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split( + '_' + ), + monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split( + '_' + ), + weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'MM/D/YYYY', + LL: 'MMMM D, YYYY', + LLL: 'MMMM D, YYYY HH:mm', + LLLL: 'dddd, MMMM DD, YYYY HH:mm', + }, + calendar: { + sameDay: 'LT [ngayong araw]', + nextDay: '[Bukas ng] LT', + nextWeek: 'LT [sa susunod na] dddd', + lastDay: 'LT [kahapon]', + lastWeek: 'LT [noong nakaraang] dddd', + sameElse: 'L', + }, + relativeTime: { + future: 'sa loob ng %s', + past: '%s ang nakalipas', + s: 'ilang segundo', + ss: '%d segundo', + m: 'isang minuto', + mm: '%d minuto', + h: 'isang oras', + hh: '%d oras', + d: 'isang araw', + dd: '%d araw', + M: 'isang buwan', + MM: '%d buwan', + y: 'isang taon', + yy: '%d taon', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/src/locale/tlh.js b/node_modules/moment/src/locale/tlh.js new file mode 100644 index 0000000..95b9151 --- /dev/null +++ b/node_modules/moment/src/locale/tlh.js @@ -0,0 +1,124 @@ +//! moment.js locale configuration +//! locale : Klingon [tlh] +//! author : Dominika Kruk : https://github.com/amaranthrose + +import moment from '../moment'; + +var numbersNouns = 'pagh_wa鈥檁cha鈥檁wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_'); + +function translateFuture(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'leS' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'waQ' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'nem' + : time + ' pIq'; + return time; +} + +function translatePast(output) { + var time = output; + time = + output.indexOf('jaj') !== -1 + ? time.slice(0, -3) + 'Hu鈥' + : output.indexOf('jar') !== -1 + ? time.slice(0, -3) + 'wen' + : output.indexOf('DIS') !== -1 + ? time.slice(0, -3) + 'ben' + : time + ' ret'; + return time; +} + +function translate(number, withoutSuffix, string, isFuture) { + var numberNoun = numberAsNoun(number); + switch (string) { + case 'ss': + return numberNoun + ' lup'; + case 'mm': + return numberNoun + ' tup'; + case 'hh': + return numberNoun + ' rep'; + case 'dd': + return numberNoun + ' jaj'; + case 'MM': + return numberNoun + ' jar'; + case 'yy': + return numberNoun + ' DIS'; + } +} + +function numberAsNoun(number) { + var hundred = Math.floor((number % 1000) / 100), + ten = Math.floor((number % 100) / 10), + one = number % 10, + word = ''; + if (hundred > 0) { + word += numbersNouns[hundred] + 'vatlh'; + } + if (ten > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH'; + } + if (one > 0) { + word += (word !== '' ? ' ' : '') + numbersNouns[one]; + } + return word === '' ? 'pagh' : word; +} + +export default moment.defineLocale('tlh', { + months: 'tera鈥 jar wa鈥檁tera鈥 jar cha鈥檁tera鈥 jar wej_tera鈥 jar loS_tera鈥 jar vagh_tera鈥 jar jav_tera鈥 jar Soch_tera鈥 jar chorgh_tera鈥 jar Hut_tera鈥 jar wa鈥檓aH_tera鈥 jar wa鈥檓aH wa鈥檁tera鈥 jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsShort: + 'jar wa鈥檁jar cha鈥檁jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa鈥檓aH_jar wa鈥檓aH wa鈥檁jar wa鈥檓aH cha鈥'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split( + '_' + ), + weekdaysShort: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + weekdaysMin: + 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[DaHjaj] LT', + nextDay: '[wa鈥檒eS] LT', + nextWeek: 'LLL', + lastDay: '[wa鈥橦u鈥橾 LT', + lastWeek: 'LLL', + sameElse: 'L', + }, + relativeTime: { + future: translateFuture, + past: translatePast, + s: 'puS lup', + ss: translate, + m: 'wa鈥 tup', + mm: translate, + h: 'wa鈥 rep', + hh: translate, + d: 'wa鈥 jaj', + dd: translate, + M: 'wa鈥 jar', + MM: translate, + y: 'wa鈥 DIS', + yy: translate, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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/node_modules/moment/src/locale/tr.js b/node_modules/moment/src/locale/tr.js new file mode 100644 index 0000000..c5abbdc --- /dev/null +++ b/node_modules/moment/src/locale/tr.js @@ -0,0 +1,106 @@ +//! moment.js locale configuration +//! locale : Turkish [tr] +//! authors : Erhan Gundogan : https://github.com/erhangundogan, +//! Burak Yi臒it Kaya: https://github.com/BYK + +import moment from '../moment'; + +var suffixes = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'眉nc眉", + 4: "'眉nc眉", + 100: "'眉nc眉", + 6: "'nc谋", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'谋nc谋", + 90: "'谋nc谋", +}; + +export default moment.defineLocale('tr', { + months: 'Ocak_艦ubat_Mart_Nisan_May谋s_Haziran_Temmuz_A臒ustos_Eyl眉l_Ekim_Kas谋m_Aral谋k'.split( + '_' + ), + monthsShort: 'Oca_艦ub_Mar_Nis_May_Haz_Tem_A臒u_Eyl_Eki_Kas_Ara'.split('_'), + weekdays: 'Pazar_Pazartesi_Sal谋_脟ar艧amba_Per艧embe_Cuma_Cumartesi'.split( + '_' + ), + weekdaysShort: 'Paz_Pzt_Sal_脟ar_Per_Cum_Cmt'.split('_'), + weekdaysMin: 'Pz_Pt_Sa_脟a_Pe_Cu_Ct'.split('_'), + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? '枚枚' : '脰脰'; + } else { + return isLower ? '枚s' : '脰S'; + } + }, + meridiemParse: /枚枚|脰脰|枚s|脰S/, + isPM: function (input) { + return input === '枚s' || input === '脰S'; + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[bug眉n saat] LT', + nextDay: '[yar谋n saat] LT', + nextWeek: '[gelecek] dddd [saat] LT', + lastDay: '[d眉n] LT', + lastWeek: '[ge莽en] dddd [saat] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s sonra', + past: '%s 枚nce', + s: 'birka莽 saniye', + ss: '%d saniye', + m: 'bir dakika', + mm: '%d dakika', + h: 'bir saat', + hh: '%d saat', + d: 'bir g眉n', + dd: '%d g眉n', + w: 'bir hafta', + ww: '%d hafta', + M: 'bir ay', + MM: '%d ay', + y: 'bir y谋l', + yy: '%d y谋l', + }, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'Do': + case 'DD': + return number; + default: + if (number === 0) { + // special case for zero + return number + "'谋nc谋"; + } + var a = number % 10, + b = (number % 100) - a, + c = number >= 100 ? 100 : null; + return number + (suffixes[a] || suffixes[b] || suffixes[c]); + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tzl.js b/node_modules/moment/src/locale/tzl.js new file mode 100644 index 0000000..62bfcdc --- /dev/null +++ b/node_modules/moment/src/locale/tzl.js @@ -0,0 +1,89 @@ +//! moment.js locale configuration +//! locale : Talossan [tzl] +//! author : Robin van der Vliet : https://github.com/robin0van0der0v +//! author : Iust矛 Canun + +import moment from '../moment'; + +// After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals. +// This is currently too difficult (maybe even impossible) to add. +export default moment.defineLocale('tzl', { + months: 'Januar_Fevraglh_Mar莽_Avr茂u_Mai_G眉n_Julia_Guscht_Setemvar_Listop盲ts_Noemvar_Zecemvar'.split( + '_' + ), + monthsShort: 'Jan_Fev_Mar_Avr_Mai_G眉n_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays: 'S煤ladi_L煤ne莽i_Maitzi_M谩rcuri_Xh煤adi_Vi茅ner莽i_S谩turi'.split('_'), + weekdaysShort: 'S煤l_L煤n_Mai_M谩r_Xh煤_Vi茅_S谩t'.split('_'), + weekdaysMin: 'S煤_L煤_Ma_M谩_Xh_Vi_S谩'.split('_'), + longDateFormat: { + LT: 'HH.mm', + LTS: 'HH.mm.ss', + L: 'DD.MM.YYYY', + LL: 'D. MMMM [dallas] YYYY', + LLL: 'D. MMMM [dallas] YYYY HH.mm', + LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm', + }, + meridiemParse: /d\'o|d\'a/i, + isPM: function (input) { + return "d'o" === input.toLowerCase(); + }, + meridiem: function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? "d'o" : "D'O"; + } else { + return isLower ? "d'a" : "D'A"; + } + }, + calendar: { + sameDay: '[oxhi 脿] LT', + nextDay: '[dem脿 脿] LT', + nextWeek: 'dddd [脿] LT', + lastDay: '[ieiri 脿] LT', + lastWeek: '[s眉r el] dddd [lasteu 脿] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'osprei %s', + past: 'ja%s', + s: processRelativeTime, + ss: processRelativeTime, + m: processRelativeTime, + mm: processRelativeTime, + h: processRelativeTime, + hh: processRelativeTime, + d: processRelativeTime, + dd: processRelativeTime, + M: processRelativeTime, + MM: processRelativeTime, + y: processRelativeTime, + yy: processRelativeTime, + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: '%d.', + 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. + }, +}); + +function processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + s: ['viensas secunds', "'iensas secunds"], + ss: [number + ' secunds', '' + number + ' secunds'], + m: ["'n m铆ut", "'iens m铆ut"], + mm: [number + ' m铆uts', '' + number + ' m铆uts'], + h: ["'n 镁ora", "'iensa 镁ora"], + hh: [number + ' 镁oras', '' + number + ' 镁oras'], + d: ["'n ziua", "'iensa ziua"], + dd: [number + ' ziuas', '' + number + ' ziuas'], + M: ["'n mes", "'iens mes"], + MM: [number + ' mesen', '' + number + ' mesen'], + y: ["'n ar", "'iens ar"], + yy: [number + ' ars', '' + number + ' ars'], + }; + return isFuture + ? format[key][0] + : withoutSuffix + ? format[key][0] + : format[key][1]; +} diff --git a/node_modules/moment/src/locale/tzm-latn.js b/node_modules/moment/src/locale/tzm-latn.js new file mode 100644 index 0000000..6a427d8 --- /dev/null +++ b/node_modules/moment/src/locale/tzm-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight Latin [tzm-latn] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm-latn', { + months: 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + monthsShort: + 'innayr_br摔ayr摔_mar摔s摔_ibrir_mayyw_ywnyw_ywlywz_桑w拧t_拧wtanbir_kt摔wbr摔_nwwanbir_dwjnbir'.split( + '_' + ), + weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asi岣峺as'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'dadkh s yan %s', + past: 'yan %s', + s: 'imik', + ss: '%d imik', + m: 'minu岣', + mm: '%d minu岣', + h: 'sa蓻a', + hh: '%d tassa蓻in', + d: 'ass', + dd: '%d ossan', + M: 'ayowr', + MM: '%d iyyirn', + y: 'asgas', + yy: '%d isgasn', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/tzm.js b/node_modules/moment/src/locale/tzm.js new file mode 100644 index 0000000..1e5d597 --- /dev/null +++ b/node_modules/moment/src/locale/tzm.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Central Atlas Tamazight [tzm] +//! author : Abdel Said : https://github.com/abdelsaid + +import moment from '../moment'; + +export default moment.defineLocale('tzm', { + months: '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + monthsShort: + '獾夆祻獾忊窗獾⑩禂_獯扁禃獯扳耽獾昣獾庘窗獾曗禋_獾夆幢獾斺祲獾擾獾庘窗獾⑩耽獾揰獾⑩祿獾忊耽獾揰獾⑩祿獾嶁耽獾撯担_獾栤祿獾涒禍_獾涒祿獾溾窗獾忊幢獾夆禂_獯解禑獾撯幢獾昣獾忊祿獾♀窗獾忊幢獾夆禂_獯封祿獾娾祻獯扁祲獾'.split( + '_' + ), + weekdays: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysShort: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + weekdaysMin: '獯扳禉獯扳祹獯扳禉_獯扳耽獾忊窗獾檁獯扳禉獾夆祻獯扳禉_獯扳唇獾斺窗獾檁獯扳唇獾♀窗獾檁獯扳禉獾夆祹獾♀窗獾檁獯扳禉獾夆垂獾⑩窗獾'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[獯扳禉獯封祬 獯碷 LT', + nextDay: '[獯扳禉獯解窗 獯碷 LT', + nextWeek: 'dddd [獯碷 LT', + lastDay: '[獯扳禋獯扳祻獾 獯碷 LT', + lastWeek: 'dddd [獯碷 LT', + sameElse: 'L', + }, + relativeTime: { + future: '獯封窗獯封祬 獾 獾⑩窗獾 %s', + past: '獾⑩窗獾 %s', + s: '獾夆祹獾夆唇', + ss: '%d 獾夆祹獾夆唇', + m: '獾庘祲獾忊祿獯', + mm: '%d 獾庘祲獾忊祿獯', + h: '獾欌窗獾勨窗', + hh: '%d 獾溾窗獾欌禉獯扳祫獾夆祻', + d: '獯扳禉獾', + dd: '%d o獾欌禉獯扳祻', + M: '獯扳耽o獾撯禂', + MM: '%d 獾夆耽獾⑩祲獾斺祻', + y: '獯扳禉獯斥窗獾', + yy: '%d 獾夆禉獯斥窗獾欌祻', + }, + week: { + dow: 6, // Saturday is the first day of the week. + doy: 12, // The week that contains Jan 12th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ug-cn.js b/node_modules/moment/src/locale/ug-cn.js new file mode 100644 index 0000000..ad6fa94 --- /dev/null +++ b/node_modules/moment/src/locale/ug-cn.js @@ -0,0 +1,111 @@ +//! moment.js locale configuration +//! locale : Uyghur (China) [ug-cn] +//! author: boyaq : https://github.com/boyaq + +import moment from '../moment'; + +export default moment.defineLocale('ug-cn', { + months: '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + monthsShort: + '賷丕賳蹕丕乇_賮蹛蹕乇丕賱_賲丕乇鬲_卅丕倬乇蹛賱_賲丕賷_卅賶賷蹏賳_卅賶賷蹏賱_卅丕蹕睾蹏爻鬲_爻蹛賳鬲蹠亘賶乇_卅蹎賰鬲蹠亘賶乇_賳賵賷丕亘賶乇_丿蹛賰丕亘賶乇'.split( + '_' + ), + weekdays: '賷蹠賰卮蹠賳亘蹠_丿蹐卮蹠賳亘蹠_爻蹠賷卮蹠賳亘蹠_趩丕乇卮蹠賳亘蹠_倬蹠賷卮蹠賳亘蹠_噩蹐賲蹠_卮蹠賳亘蹠'.split( + '_' + ), + weekdaysShort: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + weekdaysMin: '賷蹠_丿蹐_爻蹠_趩丕_倬蹠_噩蹐_卮蹠'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY-MM-DD', + LL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶', + LLL: 'YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + LLLL: 'dddd貙 YYYY-賷賶賱賶M-卅丕賷賳賶诃D-賰蹐賳賶貙 HH:mm', + }, + meridiemParse: /賷蹛乇賶賲 賰蹛趩蹠|爻蹠诰蹠乇|趩蹐卮鬲賶賳 亘蹏乇蹏賳|趩蹐卮|趩蹐卮鬲賶賳 賰蹛賷賶賳|賰蹠趩/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if ( + meridiem === '賷蹛乇賶賲 賰蹛趩蹠' || + meridiem === '爻蹠诰蹠乇' || + meridiem === '趩蹐卮鬲賶賳 亘蹏乇蹏賳' + ) { + return hour; + } else if (meridiem === '趩蹐卮鬲賶賳 賰蹛賷賶賳' || meridiem === '賰蹠趩') { + return hour + 12; + } else { + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '賷蹛乇賶賲 賰蹛趩蹠'; + } else if (hm < 900) { + return '爻蹠诰蹠乇'; + } else if (hm < 1130) { + return '趩蹐卮鬲賶賳 亘蹏乇蹏賳'; + } else if (hm < 1230) { + return '趩蹐卮'; + } else if (hm < 1800) { + return '趩蹐卮鬲賶賳 賰蹛賷賶賳'; + } else { + return '賰蹠趩'; + } + }, + calendar: { + sameDay: '[亘蹐诏蹐賳 爻丕卅蹠鬲] LT', + nextDay: '[卅蹠鬲蹠 爻丕卅蹠鬲] LT', + nextWeek: '[賰蹛賱蹠乇賰賶] dddd [爻丕卅蹠鬲] LT', + lastDay: '[鬲蹎賳蹐诏蹐賳] LT', + lastWeek: '[卅丕賱丿賶賳賯賶] dddd [爻丕卅蹠鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 賰蹛賷賶賳', + past: '%s 亘蹏乇蹏賳', + s: '賳蹠趩趩蹠 爻蹛賰賵賳鬲', + ss: '%d 爻蹛賰賵賳鬲', + m: '亘賶乇 賲賶賳蹏鬲', + mm: '%d 賲賶賳蹏鬲', + h: '亘賶乇 爻丕卅蹠鬲', + hh: '%d 爻丕卅蹠鬲', + d: '亘賶乇 賰蹐賳', + dd: '%d 賰蹐賳', + M: '亘賶乇 卅丕賷', + MM: '%d 卅丕賷', + y: '亘賶乇 賷賶賱', + yy: '%d 賷賶賱', + }, + + dayOfMonthOrdinalParse: /\d{1,2}(-賰蹐賳賶|-卅丕賷|-诰蹠倬鬲蹠)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '-賰蹐賳賶'; + case 'w': + case 'W': + return number + '-诰蹠倬鬲蹠'; + default: + return number; + } + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 1st is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/uk.js b/node_modules/moment/src/locale/uk.js new file mode 100644 index 0000000..8879b5e --- /dev/null +++ b/node_modules/moment/src/locale/uk.js @@ -0,0 +1,167 @@ +//! moment.js locale configuration +//! locale : Ukrainian [uk] +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elens煤le : https://github.com/Oire + +import moment from '../moment'; + +function plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 + ? forms[0] + : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) + ? forms[1] + : forms[2]; +} +function relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + ss: withoutSuffix ? '褋械泻褍薪写邪_褋械泻褍薪写懈_褋械泻褍薪写' : '褋械泻褍薪写褍_褋械泻褍薪写懈_褋械泻褍薪写', + mm: withoutSuffix ? '褏胁懈谢懈薪邪_褏胁懈谢懈薪懈_褏胁懈谢懈薪' : '褏胁懈谢懈薪褍_褏胁懈谢懈薪懈_褏胁懈谢懈薪', + hh: withoutSuffix ? '谐芯写懈薪邪_谐芯写懈薪懈_谐芯写懈薪' : '谐芯写懈薪褍_谐芯写懈薪懈_谐芯写懈薪', + dd: '写械薪褜_写薪褨_写薪褨胁', + MM: '屑褨褋褟褑褜_屑褨褋褟褑褨_屑褨褋褟褑褨胁', + yy: '褉褨泻_褉芯泻懈_褉芯泻褨胁', + }; + if (key === 'm') { + return withoutSuffix ? '褏胁懈谢懈薪邪' : '褏胁懈谢懈薪褍'; + } else if (key === 'h') { + return withoutSuffix ? '谐芯写懈薪邪' : '谐芯写懈薪褍'; + } else { + return number + ' ' + plural(format[key], +number); + } +} +function weekdaysCaseReplace(m, format) { + var weekdays = { + nominative: + '薪械写褨谢褟_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写邪_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲廮褋褍斜芯褌邪'.split( + '_' + ), + accusative: + '薪械写褨谢褞_锌芯薪械写褨谢芯泻_胁褨胁褌芯褉芯泻_褋械褉械写褍_褔械褌胁械褉_锌鈥櫻徰傂叫秆喲巁褋褍斜芯褌褍'.split( + '_' + ), + genitive: + '薪械写褨谢褨_锌芯薪械写褨谢泻邪_胁褨胁褌芯褉泻邪_褋械褉械写懈_褔械褌胁械褉谐邪_锌鈥櫻徰傂叫秆喲朹褋褍斜芯褌懈'.split( + '_' + ), + }, + nounCase; + + if (m === true) { + return weekdays['nominative'] + .slice(1, 7) + .concat(weekdays['nominative'].slice(0, 1)); + } + if (!m) { + return weekdays['nominative']; + } + + nounCase = /(\[[袙胁校褍]\]) ?dddd/.test(format) + ? 'accusative' + : /\[?(?:屑懈薪褍谢芯褩|薪邪褋褌褍锌薪芯褩)? ?\] ?dddd/.test(format) + ? 'genitive' + : 'nominative'; + return weekdays[nounCase][m.day()]; +} +function processHoursFunction(str) { + return function () { + return str + '芯' + (this.hours() === 11 ? '斜' : '') + '] LT'; + }; +} + +export default moment.defineLocale('uk', { + months: { + format: '褋褨褔薪褟_谢褞褌芯谐芯_斜械褉械蟹薪褟_泻胁褨褌薪褟_褌褉邪胁薪褟_褔械褉胁薪褟_谢懈锌薪褟_褋械褉锌薪褟_胁械褉械褋薪褟_卸芯胁褌薪褟_谢懈褋褌芯锌邪写邪_谐褉褍写薪褟'.split( + '_' + ), + standalone: + '褋褨褔械薪褜_谢褞褌懈泄_斜械褉械蟹械薪褜_泻胁褨褌械薪褜_褌褉邪胁械薪褜_褔械褉胁械薪褜_谢懈锌械薪褜_褋械褉锌械薪褜_胁械褉械褋械薪褜_卸芯胁褌械薪褜_谢懈褋褌芯锌邪写_谐褉褍写械薪褜'.split( + '_' + ), + }, + monthsShort: '褋褨褔_谢褞褌_斜械褉_泻胁褨褌_褌褉邪胁_褔械褉胁_谢懈锌_褋械褉锌_胁械褉_卸芯胁褌_谢懈褋褌_谐褉褍写'.split( + '_' + ), + weekdays: weekdaysCaseReplace, + weekdaysShort: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + weekdaysMin: '薪写_锌薪_胁褌_褋褉_褔褌_锌褌_褋斜'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD.MM.YYYY', + LL: 'D MMMM YYYY 褉.', + LLL: 'D MMMM YYYY 褉., HH:mm', + LLLL: 'dddd, D MMMM YYYY 褉., HH:mm', + }, + calendar: { + sameDay: processHoursFunction('[小褜芯谐芯写薪褨 '), + nextDay: processHoursFunction('[袟邪胁褌褉邪 '), + lastDay: processHoursFunction('[袙褔芯褉邪 '), + nextWeek: processHoursFunction('[校] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[袦懈薪褍谢芯褩] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[袦懈薪褍谢芯谐芯] dddd [').call(this); + } + }, + sameElse: 'L', + }, + relativeTime: { + future: '蟹邪 %s', + past: '%s 褌芯屑褍', + s: '写械泻褨谢褜泻邪 褋械泻褍薪写', + ss: relativeTimeWithPlural, + m: relativeTimeWithPlural, + mm: relativeTimeWithPlural, + h: '谐芯写懈薪褍', + hh: relativeTimeWithPlural, + d: '写械薪褜', + dd: relativeTimeWithPlural, + M: '屑褨褋褟褑褜', + MM: relativeTimeWithPlural, + y: '褉褨泻', + yy: relativeTimeWithPlural, + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /薪芯褔褨|褉邪薪泻褍|写薪褟|胁械褔芯褉邪/, + isPM: function (input) { + return /^(写薪褟|胁械褔芯褉邪)$/.test(input); + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return '薪芯褔褨'; + } else if (hour < 12) { + return '褉邪薪泻褍'; + } else if (hour < 17) { + return '写薪褟'; + } else { + return '胁械褔芯褉邪'; + } + }, + dayOfMonthOrdinalParse: /\d{1,2}-(泄|谐芯)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-泄'; + case 'D': + return number + '-谐芯'; + default: + return number; + } + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/ur.js b/node_modules/moment/src/locale/ur.js new file mode 100644 index 0000000..ca5e252 --- /dev/null +++ b/node_modules/moment/src/locale/ur.js @@ -0,0 +1,82 @@ +//! moment.js locale configuration +//! locale : Urdu [ur] +//! author : Sawood Alam : https://github.com/ibnesayeed +//! author : Zack : https://github.com/ZackVision + +import moment from '../moment'; + +var months = [ + '噩賳賵乇蹖', + '賮乇賵乇蹖', + '賲丕乇趩', + '丕倬乇蹖賱', + '賲卅蹖', + '噩賵賳', + '噩賵賱丕卅蹖', + '丕诏爻鬲', + '爻鬲賲亘乇', + '丕讴鬲賵亘乇', + '賳賵賲亘乇', + '丿爻賲亘乇', + ], + days = ['丕鬲賵丕乇', '倬蹖乇', '賲賳诏賱', '亘丿诰', '噩賲毓乇丕鬲', '噩賲毓蹃', '蹃賮鬲蹃']; + +export default moment.defineLocale('ur', { + months: months, + monthsShort: months, + weekdays: days, + weekdaysShort: days, + weekdaysMin: days, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd貙 D MMMM YYYY HH:mm', + }, + meridiemParse: /氐亘丨|卮丕賲/, + isPM: function (input) { + return '卮丕賲' === input; + }, + meridiem: function (hour, minute, isLower) { + if (hour < 12) { + return '氐亘丨'; + } + return '卮丕賲'; + }, + calendar: { + sameDay: '[丌噩 亘賵賯鬲] LT', + nextDay: '[讴賱 亘賵賯鬲] LT', + nextWeek: 'dddd [亘賵賯鬲] LT', + lastDay: '[诏匕卮鬲蹃 乇賵夭 亘賵賯鬲] LT', + lastWeek: '[诏匕卮鬲蹃] dddd [亘賵賯鬲] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s 亘毓丿', + past: '%s 賯亘賱', + s: '趩賳丿 爻蹖讴賳趫', + ss: '%d 爻蹖讴賳趫', + m: '丕蹖讴 賲賳俟', + mm: '%d 賲賳俟', + h: '丕蹖讴 诏诰賳俟蹃', + hh: '%d 诏诰賳俟蹝', + d: '丕蹖讴 丿賳', + dd: '%d 丿賳', + M: '丕蹖讴 賲丕蹃', + MM: '%d 賲丕蹃', + y: '丕蹖讴 爻丕賱', + yy: '%d 爻丕賱', + }, + preparse: function (string) { + return string.replace(/貙/g, ','); + }, + postformat: function (string) { + return string.replace(/,/g, '貙'); + }, + 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/node_modules/moment/src/locale/uz-latn.js b/node_modules/moment/src/locale/uz-latn.js new file mode 100644 index 0000000..a2d577e --- /dev/null +++ b/node_modules/moment/src/locale/uz-latn.js @@ -0,0 +1,54 @@ +//! moment.js locale configuration +//! locale : Uzbek Latin [uz-latn] +//! author : Rasulbek Mirzayev : github.com/Rasulbeeek + +import moment from '../moment'; + +export default moment.defineLocale('uz-latn', { + months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split( + '_' + ), + monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'), + weekdays: + 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split( + '_' + ), + weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'), + weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[Bugun soat] LT [da]', + nextDay: '[Ertaga] LT [da]', + nextWeek: 'dddd [kuni soat] LT [da]', + lastDay: '[Kecha soat] LT [da]', + lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", + sameElse: 'L', + }, + relativeTime: { + future: 'Yaqin %s ichida', + past: 'Bir necha %s oldin', + s: 'soniya', + ss: '%d soniya', + m: 'bir daqiqa', + mm: '%d daqiqa', + h: 'bir soat', + hh: '%d soat', + d: 'bir kun', + dd: '%d kun', + M: 'bir oy', + MM: '%d oy', + y: 'bir yil', + yy: '%d yil', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 7th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/uz.js b/node_modules/moment/src/locale/uz.js new file mode 100644 index 0000000..03914dd --- /dev/null +++ b/node_modules/moment/src/locale/uz.js @@ -0,0 +1,51 @@ +//! moment.js locale configuration +//! locale : Uzbek [uz] +//! author : Sardor Muminov : https://github.com/muminoff + +import moment from '../moment'; + +export default moment.defineLocale('uz', { + months: '褟薪胁邪褉_褎械胁褉邪谢_屑邪褉褌_邪锌褉械谢_屑邪泄_懈褞薪_懈褞谢_邪胁谐褍褋褌_褋械薪褌褟斜褉_芯泻褌褟斜褉_薪芯褟斜褉_写械泻邪斜褉'.split( + '_' + ), + monthsShort: '褟薪胁_褎械胁_屑邪褉_邪锌褉_屑邪泄_懈褞薪_懈褞谢_邪胁谐_褋械薪_芯泻褌_薪芯褟_写械泻'.split('_'), + weekdays: '携泻褕邪薪斜邪_袛褍褕邪薪斜邪_小械褕邪薪斜邪_效芯褉褕邪薪斜邪_袩邪泄褕邪薪斜邪_袞褍屑邪_楔邪薪斜邪'.split('_'), + weekdaysShort: '携泻褕_袛褍褕_小械褕_效芯褉_袩邪泄_袞褍屑_楔邪薪'.split('_'), + weekdaysMin: '携泻_袛褍_小械_效芯_袩邪_袞褍_楔邪'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'D MMMM YYYY, dddd HH:mm', + }, + calendar: { + sameDay: '[袘褍谐褍薪 褋芯邪褌] LT [写邪]', + nextDay: '[协褉褌邪谐邪] LT [写邪]', + nextWeek: 'dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + lastDay: '[袣械褔邪 褋芯邪褌] LT [写邪]', + lastWeek: '[校褌谐邪薪] dddd [泻褍薪懈 褋芯邪褌] LT [写邪]', + sameElse: 'L', + }, + relativeTime: { + future: '携泻懈薪 %s 懈褔懈写邪', + past: '袘懈褉 薪械褔邪 %s 芯谢写懈薪', + s: '褎褍褉褋邪褌', + ss: '%d 褎褍褉褋邪褌', + m: '斜懈褉 写邪泻懈泻邪', + mm: '%d 写邪泻懈泻邪', + h: '斜懈褉 褋芯邪褌', + hh: '%d 褋芯邪褌', + d: '斜懈褉 泻褍薪', + dd: '%d 泻褍薪', + M: '斜懈褉 芯泄', + MM: '%d 芯泄', + y: '斜懈褉 泄懈谢', + yy: '%d 泄懈谢', + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 7, // The week that contains Jan 4th is the first week of the year. + }, +}); diff --git a/node_modules/moment/src/locale/vi.js b/node_modules/moment/src/locale/vi.js new file mode 100644 index 0000000..2b11cf6 --- /dev/null +++ b/node_modules/moment/src/locale/vi.js @@ -0,0 +1,80 @@ +//! moment.js locale configuration +//! locale : Vietnamese [vi] +//! author : Bang Nguyen : https://github.com/bangnk +//! author : Chien Kira : https://github.com/chienkira + +import moment from '../moment'; + +export default moment.defineLocale('vi', { + months: 'th谩ng 1_th谩ng 2_th谩ng 3_th谩ng 4_th谩ng 5_th谩ng 6_th谩ng 7_th谩ng 8_th谩ng 9_th谩ng 10_th谩ng 11_th谩ng 12'.split( + '_' + ), + monthsShort: + 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split( + '_' + ), + monthsParseExact: true, + weekdays: 'ch峄 nh岷璽_th峄 hai_th峄 ba_th峄 t瓢_th峄 n膬m_th峄 s谩u_th峄 b岷'.split( + '_' + ), + weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysParseExact: true, + meridiemParse: /sa|ch/i, + isPM: function (input) { + return /^ch$/i.test(input); + }, + meridiem: function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'sa' : 'SA'; + } else { + return isLower ? 'ch' : 'CH'; + } + }, + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM [n膬m] YYYY', + LLL: 'D MMMM [n膬m] YYYY HH:mm', + LLLL: 'dddd, D MMMM [n膬m] YYYY HH:mm', + l: 'DD/M/YYYY', + ll: 'D MMM YYYY', + lll: 'D MMM YYYY HH:mm', + llll: 'ddd, D MMM YYYY HH:mm', + }, + calendar: { + sameDay: '[H么m nay l煤c] LT', + nextDay: '[Ng脿y mai l煤c] LT', + nextWeek: 'dddd [tu岷 t峄沬 l煤c] LT', + lastDay: '[H么m qua l煤c] LT', + lastWeek: 'dddd [tu岷 tr瓢峄沜 l煤c] LT', + sameElse: 'L', + }, + relativeTime: { + future: '%s t峄沬', + past: '%s tr瓢峄沜', + s: 'v脿i gi芒y', + ss: '%d gi芒y', + m: 'm峄檛 ph煤t', + mm: '%d ph煤t', + h: 'm峄檛 gi峄', + hh: '%d gi峄', + d: 'm峄檛 ng脿y', + dd: '%d ng脿y', + w: 'm峄檛 tu岷', + ww: '%d tu岷', + M: 'm峄檛 th谩ng', + MM: '%d th谩ng', + y: 'm峄檛 n膬m', + yy: '%d n膬m', + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function (number) { + return number; + }, + 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/node_modules/moment/src/locale/x-pseudo.js b/node_modules/moment/src/locale/x-pseudo.js new file mode 100644 index 0000000..f8adbb8 --- /dev/null +++ b/node_modules/moment/src/locale/x-pseudo.js @@ -0,0 +1,73 @@ +//! moment.js locale configuration +//! locale : Pseudo [x-pseudo] +//! author : Andrew Hood : https://github.com/andrewhood125 + +import moment from '../moment'; + +export default moment.defineLocale('x-pseudo', { + months: 'J~谩帽煤谩~r媒_F~茅br煤~谩r媒_~M谩rc~h_脕p~r铆l_~M谩媒_~J煤帽茅~_J煤l~媒_脕煤~g煤st~_S茅p~t茅mb~茅r_脫~ct贸b~茅r_脩~贸v茅m~b茅r_~D茅c茅~mb茅r'.split( + '_' + ), + monthsShort: + 'J~谩帽_~F茅b_~M谩r_~脕pr_~M谩媒_~J煤帽_~J煤l_~脕煤g_~S茅p_~脫ct_~脩贸v_~D茅c'.split( + '_' + ), + monthsParseExact: true, + weekdays: + 'S~煤帽d谩~媒_M贸~帽d谩媒~_T煤茅~sd谩媒~_W茅d~帽茅sd~谩媒_T~h煤rs~d谩媒_~Fr铆d~谩媒_S~谩t煤r~d谩媒'.split( + '_' + ), + weekdaysShort: 'S~煤帽_~M贸帽_~T煤茅_~W茅d_~Th煤_~Fr铆_~S谩t'.split('_'), + weekdaysMin: 'S~煤_M贸~_T煤_~W茅_T~h_Fr~_S谩'.split('_'), + weekdaysParseExact: true, + longDateFormat: { + LT: 'HH:mm', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm', + }, + calendar: { + sameDay: '[T~贸d谩~媒 谩t] LT', + nextDay: '[T~贸m贸~rr贸~w 谩t] LT', + nextWeek: 'dddd [谩t] LT', + lastDay: '[脻~茅st~茅rd谩~媒 谩t] LT', + lastWeek: '[L~谩st] dddd [谩t] LT', + sameElse: 'L', + }, + relativeTime: { + future: '铆~帽 %s', + past: '%s 谩~g贸', + s: '谩 ~f茅w ~s茅c贸~帽ds', + ss: '%d s~茅c贸帽~ds', + m: '谩 ~m铆帽~煤t茅', + mm: '%d m~铆帽煤~t茅s', + h: '谩~帽 h贸~煤r', + hh: '%d h~贸煤rs', + d: '谩 ~d谩媒', + dd: '%d d~谩媒s', + M: '谩 ~m贸帽~th', + MM: '%d m~贸帽t~hs', + y: '谩 ~媒茅谩r', + yy: '%d 媒~茅谩rs', + }, + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function (number) { + var b = number % 10, + output = + ~~((number % 100) / 10) === 1 + ? 'th' + : b === 1 + ? 'st' + : b === 2 + ? 'nd' + : b === 3 + ? 'rd' + : 'th'; + 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/node_modules/moment/src/locale/yo.js b/node_modules/moment/src/locale/yo.js new file mode 100644 index 0000000..2fcb6e4 --- /dev/null +++ b/node_modules/moment/src/locale/yo.js @@ -0,0 +1,53 @@ +//! moment.js locale configuration +//! locale : Yoruba Nigeria [yo] +//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe + +import moment from '../moment'; + +export default moment.defineLocale('yo', { + months: 'S岷固乺岷固乢E虁re虁le虁_岷竢岷固na虁_I虁gbe虂_E虁bibi_O虁ku虁du_Ag岷筸o_O虁gu虂n_Owewe_峄屘wa虁ra虁_Be虂lu虂_峄屘p岷固虁'.split( + '_' + ), + monthsShort: 'S岷固乺_E虁rl_岷竢n_I虁gb_E虁bi_O虁ku虁_Ag岷筥O虁gu虂_Owe_峄屘wa虁_Be虂l_峄屘p岷固虁'.split('_'), + weekdays: 'A虁i虁ku虂_Aje虂_I虁s岷固乬un_峄宩峄嵦乺u虂_峄宩峄嵦乥峄峗岷竧i虁_A虁ba虂m岷固乼a'.split('_'), + weekdaysShort: 'A虁i虁k_Aje虂_I虁s岷固乢峄宩r_峄宩b_岷竧i虁_A虁ba虂'.split('_'), + weekdaysMin: 'A虁i虁_Aj_I虁s_峄宺_峄宐_岷竧_A虁b'.split('_'), + longDateFormat: { + LT: 'h:mm A', + LTS: 'h:mm:ss A', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY h:mm A', + LLLL: 'dddd, D MMMM YYYY h:mm A', + }, + calendar: { + sameDay: '[O虁ni虁 ni] LT', + nextDay: '[峄屘la ni] LT', + nextWeek: "dddd [峄宻岷固 to虂n'b峄峕 [ni] LT", + lastDay: '[A虁na ni] LT', + lastWeek: 'dddd [峄宻岷固 to虂l峄嵦乚 [ni] LT', + sameElse: 'L', + }, + relativeTime: { + future: 'ni虂 %s', + past: '%s k峄峧a虂', + s: 'i虁s岷筳u虂 aaya虂 die', + ss: 'aaya虂 %d', + m: 'i虁s岷筳u虂 kan', + mm: 'i虁s岷筳u虂 %d', + h: 'wa虂kati kan', + hh: 'wa虂kati %d', + d: '峄峧峄嵦 kan', + dd: '峄峧峄嵦 %d', + M: 'osu虁 kan', + MM: 'osu虁 %d', + y: '峄峝u虂n kan', + yy: '峄峝u虂n %d', + }, + dayOfMonthOrdinalParse: /峄峧峄嵦乗s\d{1,2}/, + ordinal: '峄峧峄嵦 %d', + 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/node_modules/moment/src/locale/zh-cn.js b/node_modules/moment/src/locale/zh-cn.js new file mode 100644 index 0000000..2345ee6 --- /dev/null +++ b/node_modules/moment/src/locale/zh-cn.js @@ -0,0 +1,120 @@ +//! moment.js locale configuration +//! locale : Chinese (China) [zh-cn] +//! author : suupic : https://github.com/suupic +//! author : Zeno Zeng : https://github.com/zenozeng +//! author : uu109 : https://github.com/uu109 + +import moment from '../moment'; + +export default moment.defineLocale('zh-cn', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '鍛ㄦ棩_鍛ㄤ竴_鍛ㄤ簩_鍛ㄤ笁_鍛ㄥ洓_鍛ㄤ簲_鍛ㄥ叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃h鐐筸m鍒', + LLLL: 'YYYY骞碝鏈圖鏃dddAh鐐筸m鍒', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } else { + // '涓崍' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: function (now) { + if (now.week() !== this.week()) { + return '[涓媇dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + lastDay: '[鏄ㄥぉ]LT', + lastWeek: function (now) { + if (this.week() !== now.week()) { + return '[涓奭dddLT'; + } else { + return '[鏈琞dddLT'; + } + }, + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾鍛)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '鍛'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍚', + past: '%s鍓', + s: '鍑犵', + ss: '%d 绉', + m: '1 鍒嗛挓', + mm: '%d 鍒嗛挓', + h: '1 灏忔椂', + hh: '%d 灏忔椂', + d: '1 澶', + dd: '%d 澶', + w: '1 鍛', + ww: '%d 鍛', + M: '1 涓湀', + MM: '%d 涓湀', + y: '1 骞', + yy: '%d 骞', + }, + week: { + // GB/T 7408-1994銆婃暟鎹厓鍜屼氦鎹㈡牸寮徛蜂俊鎭氦鎹⒙锋棩鏈熷拰鏃堕棿琛ㄧず娉曘嬩笌ISO 8601:1988绛夋晥 + 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/node_modules/moment/src/locale/zh-hk.js b/node_modules/moment/src/locale/zh-hk.js new file mode 100644 index 0000000..78a1019 --- /dev/null +++ b/node_modules/moment/src/locale/zh-hk.js @@ -0,0 +1,101 @@ +//! moment.js locale configuration +//! locale : Chinese (Hong Kong) [zh-hk] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Konstantin : https://github.com/skfd +//! author : Anthony : https://github.com/anthonylau + +import moment from '../moment'; + +export default moment.defineLocale('zh-hk', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1200) { + return '涓婂崍'; + } else if (hm === 1200) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ]LT', + nextDay: '[鏄庡ぉ]LT', + nextWeek: '[涓媇ddddLT', + lastDay: '[鏄ㄥぉ]LT', + lastWeek: '[涓奭ddddLT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/src/locale/zh-mo.js b/node_modules/moment/src/locale/zh-mo.js new file mode 100644 index 0000000..9ed795d --- /dev/null +++ b/node_modules/moment/src/locale/zh-mo.js @@ -0,0 +1,100 @@ +//! moment.js locale configuration +//! locale : Chinese (Macau) [zh-mo] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris +//! author : Tan Yuanhong : https://github.com/le0tan + +import moment from '../moment'; + +export default moment.defineLocale('zh-mo', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'D/M/YYYY', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s鍏', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/src/locale/zh-tw.js b/node_modules/moment/src/locale/zh-tw.js new file mode 100644 index 0000000..aa98ab1 --- /dev/null +++ b/node_modules/moment/src/locale/zh-tw.js @@ -0,0 +1,99 @@ +//! moment.js locale configuration +//! locale : Chinese (Taiwan) [zh-tw] +//! author : Ben : https://github.com/ben-lin +//! author : Chris Lam : https://github.com/hehachris + +import moment from '../moment'; + +export default moment.defineLocale('zh-tw', { + months: '涓鏈坃浜屾湀_涓夋湀_鍥涙湀_浜旀湀_鍏湀_涓冩湀_鍏湀_涔濇湀_鍗佹湀_鍗佷竴鏈坃鍗佷簩鏈'.split( + '_' + ), + monthsShort: '1鏈坃2鏈坃3鏈坃4鏈坃5鏈坃6鏈坃7鏈坃8鏈坃9鏈坃10鏈坃11鏈坃12鏈'.split( + '_' + ), + weekdays: '鏄熸湡鏃鏄熸湡涓_鏄熸湡浜宊鏄熸湡涓塤鏄熸湡鍥沖鏄熸湡浜擾鏄熸湡鍏'.split('_'), + weekdaysShort: '閫辨棩_閫变竴_閫变簩_閫变笁_閫卞洓_閫变簲_閫卞叚'.split('_'), + weekdaysMin: '鏃涓_浜宊涓塤鍥沖浜擾鍏'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'YYYY/MM/DD', + LL: 'YYYY骞碝鏈圖鏃', + LLL: 'YYYY骞碝鏈圖鏃 HH:mm', + LLLL: 'YYYY骞碝鏈圖鏃ddd HH:mm', + l: 'YYYY/M/D', + ll: 'YYYY骞碝鏈圖鏃', + lll: 'YYYY骞碝鏈圖鏃 HH:mm', + llll: 'YYYY骞碝鏈圖鏃ddd HH:mm', + }, + meridiemParse: /鍑屾櫒|鏃╀笂|涓婂崍|涓崍|涓嬪崍|鏅氫笂/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '鍑屾櫒' || meridiem === '鏃╀笂' || meridiem === '涓婂崍') { + return hour; + } else if (meridiem === '涓崍') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '涓嬪崍' || meridiem === '鏅氫笂') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '鍑屾櫒'; + } else if (hm < 900) { + return '鏃╀笂'; + } else if (hm < 1130) { + return '涓婂崍'; + } else if (hm < 1230) { + return '涓崍'; + } else if (hm < 1800) { + return '涓嬪崍'; + } else { + return '鏅氫笂'; + } + }, + calendar: { + sameDay: '[浠婂ぉ] LT', + nextDay: '[鏄庡ぉ] LT', + nextWeek: '[涓媇dddd LT', + lastDay: '[鏄ㄥぉ] LT', + lastWeek: '[涓奭dddd LT', + sameElse: 'L', + }, + dayOfMonthOrdinalParse: /\d{1,2}(鏃鏈坾閫)/, + ordinal: function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '鏃'; + case 'M': + return number + '鏈'; + case 'w': + case 'W': + return number + '閫'; + default: + return number; + } + }, + relativeTime: { + future: '%s寰', + past: '%s鍓', + s: '骞剧', + ss: '%d 绉', + m: '1 鍒嗛悩', + mm: '%d 鍒嗛悩', + h: '1 灏忔檪', + hh: '%d 灏忔檪', + d: '1 澶', + dd: '%d 澶', + M: '1 鍊嬫湀', + MM: '%d 鍊嬫湀', + y: '1 骞', + yy: '%d 骞', + }, +}); diff --git a/node_modules/moment/src/moment.js b/node_modules/moment/src/moment.js new file mode 100644 index 0000000..527e185 --- /dev/null +++ b/node_modules/moment/src/moment.js @@ -0,0 +1,93 @@ +//! moment.js +//! version : 2.29.4 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +import { hooks as moment, setHookCallback } from './lib/utils/hooks'; + +moment.version = '2.29.4'; + +import { + min, + max, + now, + isMoment, + momentPrototype as fn, + createUTC as utc, + createUnix as unix, + createLocal as local, + createInvalid as invalid, + createInZone as parseZone, +} from './lib/moment/moment'; + +import { getCalendarFormat } from './lib/moment/calendar'; + +import { + defineLocale, + updateLocale, + getSetGlobalLocale as locale, + getLocale as localeData, + listLocales as locales, + listMonths as months, + listMonthsShort as monthsShort, + listWeekdays as weekdays, + listWeekdaysMin as weekdaysMin, + listWeekdaysShort as weekdaysShort, +} from './lib/locale/locale'; + +import { + isDuration, + createDuration as duration, + getSetRelativeTimeRounding as relativeTimeRounding, + getSetRelativeTimeThreshold as relativeTimeThreshold, +} from './lib/duration/duration'; + +import { normalizeUnits } from './lib/units/units'; + +import isDate from './lib/utils/is-date'; + +setHookCallback(local); + +moment.fn = fn; +moment.min = min; +moment.max = max; +moment.now = now; +moment.utc = utc; +moment.unix = unix; +moment.months = months; +moment.isDate = isDate; +moment.locale = locale; +moment.invalid = invalid; +moment.duration = duration; +moment.isMoment = isMoment; +moment.weekdays = weekdays; +moment.parseZone = parseZone; +moment.localeData = localeData; +moment.isDuration = isDuration; +moment.monthsShort = monthsShort; +moment.weekdaysMin = weekdaysMin; +moment.defineLocale = defineLocale; +moment.updateLocale = updateLocale; +moment.locales = locales; +moment.weekdaysShort = weekdaysShort; +moment.normalizeUnits = normalizeUnits; +moment.relativeTimeRounding = relativeTimeRounding; +moment.relativeTimeThreshold = relativeTimeThreshold; +moment.calendarFormat = getCalendarFormat; +moment.prototype = fn; + +// currently HTML5 input type only supports 24-hour formats +moment.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'GGGG-[W]WW', // + MONTH: 'YYYY-MM', // +}; + +export default moment; diff --git a/node_modules/moment/ts3.1-typings/moment.d.ts b/node_modules/moment/ts3.1-typings/moment.d.ts new file mode 100644 index 0000000..51fe8c2 --- /dev/null +++ b/node_modules/moment/ts3.1-typings/moment.d.ts @@ -0,0 +1,785 @@ +/** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ +declare function moment(inp?: moment.MomentInput, strict?: boolean): moment.Moment; +/** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ +declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, strict?: boolean): moment.Moment; +/** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ +declare function moment(inp?: moment.MomentInput, format?: moment.MomentFormatSpecification, language?: string, strict?: boolean): moment.Moment; + +declare namespace moment { + type RelativeTimeKey = 's' | 'ss' | 'm' | 'mm' | 'h' | 'hh' | 'd' | 'dd' | 'w' | 'ww' | 'M' | 'MM' | 'y' | 'yy'; + type CalendarKey = 'sameDay' | 'nextDay' | 'lastDay' | 'nextWeek' | 'lastWeek' | 'sameElse' | string; + type LongDateFormatKey = 'LTS' | 'LT' | 'L' | 'LL' | 'LLL' | 'LLLL' | 'lts' | 'lt' | 'l' | 'll' | 'lll' | 'llll'; + + interface Locale { + calendar(key?: CalendarKey, m?: Moment, now?: Moment): string; + + longDateFormat(key: LongDateFormatKey): string; + invalidDate(): string; + ordinal(n: number): string; + + preparse(inp: string): string; + postformat(inp: string): string; + relativeTime(n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean): string; + pastFuture(diff: number, absRelTime: string): string; + set(config: Object): void; + + months(): string[]; + months(m: Moment, format?: string): string; + monthsShort(): string[]; + monthsShort(m: Moment, format?: string): string; + monthsParse(monthName: string, format: string, strict: boolean): number; + monthsRegex(strict: boolean): RegExp; + monthsShortRegex(strict: boolean): RegExp; + + week(m: Moment): number; + firstDayOfYear(): number; + firstDayOfWeek(): number; + + weekdays(): string[]; + weekdays(m: Moment, format?: string): string; + weekdaysMin(): string[]; + weekdaysMin(m: Moment): string; + weekdaysShort(): string[]; + weekdaysShort(m: Moment): string; + weekdaysParse(weekdayName: string, format: string, strict: boolean): number; + weekdaysRegex(strict: boolean): RegExp; + weekdaysShortRegex(strict: boolean): RegExp; + weekdaysMinRegex(strict: boolean): RegExp; + + isPM(input: string): boolean; + meridiem(hour: number, minute: number, isLower: boolean): string; + } + + interface StandaloneFormatSpec { + format: string[]; + standalone: string[]; + isFormat?: RegExp; + } + + interface WeekSpec { + dow: number; + doy?: number; + } + + type CalendarSpecVal = string | ((m?: MomentInput, now?: Moment) => string); + interface CalendarSpec { + sameDay?: CalendarSpecVal; + nextDay?: CalendarSpecVal; + lastDay?: CalendarSpecVal; + nextWeek?: CalendarSpecVal; + lastWeek?: CalendarSpecVal; + sameElse?: CalendarSpecVal; + + // any additional properties might be used with moment.calendarFormat + [x: string]: CalendarSpecVal | undefined; + } + + type RelativeTimeSpecVal = ( + string | + ((n: number, withoutSuffix: boolean, + key: RelativeTimeKey, isFuture: boolean) => string) + ); + type RelativeTimeFuturePastVal = string | ((relTime: string) => string); + + interface RelativeTimeSpec { + future?: RelativeTimeFuturePastVal; + past?: RelativeTimeFuturePastVal; + s?: RelativeTimeSpecVal; + ss?: RelativeTimeSpecVal; + m?: RelativeTimeSpecVal; + mm?: RelativeTimeSpecVal; + h?: RelativeTimeSpecVal; + hh?: RelativeTimeSpecVal; + d?: RelativeTimeSpecVal; + dd?: RelativeTimeSpecVal; + w?: RelativeTimeSpecVal; + ww?: RelativeTimeSpecVal; + M?: RelativeTimeSpecVal; + MM?: RelativeTimeSpecVal; + y?: RelativeTimeSpecVal; + yy?: RelativeTimeSpecVal; + } + + interface LongDateFormatSpec { + LTS: string; + LT: string; + L: string; + LL: string; + LLL: string; + LLLL: string; + + // lets forget for a sec that any upper/lower permutation will also work + lts?: string; + lt?: string; + l?: string; + ll?: string; + lll?: string; + llll?: string; + } + + type MonthWeekdayFn = (momentToFormat: Moment, format?: string) => string; + type WeekdaySimpleFn = (momentToFormat: Moment) => string; + + interface LocaleSpecification { + months?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + monthsShort?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + + weekdays?: string[] | StandaloneFormatSpec | MonthWeekdayFn; + weekdaysShort?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + weekdaysMin?: string[] | StandaloneFormatSpec | WeekdaySimpleFn; + + meridiemParse?: RegExp; + meridiem?: (hour: number, minute:number, isLower: boolean) => string; + + isPM?: (input: string) => boolean; + + longDateFormat?: LongDateFormatSpec; + calendar?: CalendarSpec; + relativeTime?: RelativeTimeSpec; + invalidDate?: string; + ordinal?: (n: number) => string; + ordinalParse?: RegExp; + + week?: WeekSpec; + + // Allow anything: in general any property that is passed as locale spec is + // put in the locale object so it can be used by locale functions + [x: string]: any; + } + + interface MomentObjectOutput { + years: number; + /* One digit */ + months: number; + /* Day of the month */ + date: number; + hours: number; + minutes: number; + seconds: number; + milliseconds: number; + } + interface argThresholdOpts { + ss?: number; + s?: number; + m?: number; + h?: number; + d?: number; + w?: number | null; + M?: number; + } + + interface Duration { + clone(): Duration; + + humanize(argWithSuffix?: boolean, argThresholds?: argThresholdOpts): string; + + humanize(argThresholds?: argThresholdOpts): string; + + abs(): Duration; + + as(units: unitOfTime.Base): number; + get(units: unitOfTime.Base): number; + + milliseconds(): number; + asMilliseconds(): number; + + seconds(): number; + asSeconds(): number; + + minutes(): number; + asMinutes(): number; + + hours(): number; + asHours(): number; + + days(): number; + asDays(): number; + + weeks(): number; + asWeeks(): number; + + months(): number; + asMonths(): number; + + years(): number; + asYears(): number; + + add(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + subtract(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + locale(): string; + locale(locale: LocaleSpecifier): Duration; + localeData(): Locale; + + toISOString(): string; + toJSON(): string; + + isValid(): boolean; + + /** + * @deprecated since version 2.8.0 + */ + lang(locale: LocaleSpecifier): Moment; + /** + * @deprecated since version 2.8.0 + */ + lang(): Locale; + /** + * @deprecated + */ + toIsoString(): string; + } + + interface MomentRelativeTime { + future: any; + past: any; + s: any; + ss: any; + m: any; + mm: any; + h: any; + hh: any; + d: any; + dd: any; + M: any; + MM: any; + y: any; + yy: any; + } + + interface MomentLongDateFormat { + L: string; + LL: string; + LLL: string; + LLLL: string; + LT: string; + LTS: string; + + l?: string; + ll?: string; + lll?: string; + llll?: string; + lt?: string; + lts?: string; + } + + interface MomentParsingFlags { + empty: boolean; + unusedTokens: string[]; + unusedInput: string[]; + overflow: number; + charsLeftOver: number; + nullInput: boolean; + invalidMonth: string | null; + invalidFormat: boolean; + userInvalidated: boolean; + iso: boolean; + parsedDateParts: any[]; + meridiem: string | null; + } + + interface MomentParsingFlagsOpt { + empty?: boolean; + unusedTokens?: string[]; + unusedInput?: string[]; + overflow?: number; + charsLeftOver?: number; + nullInput?: boolean; + invalidMonth?: string; + invalidFormat?: boolean; + userInvalidated?: boolean; + iso?: boolean; + parsedDateParts?: any[]; + meridiem?: string | null; + } + + interface MomentBuiltinFormat { + __momentBuiltinFormatBrand: any; + } + + type MomentFormatSpecification = string | MomentBuiltinFormat | (string | MomentBuiltinFormat)[]; + + namespace unitOfTime { + type Base = ( + "year" | "years" | "y" | + "month" | "months" | "M" | + "week" | "weeks" | "w" | + "day" | "days" | "d" | + "hour" | "hours" | "h" | + "minute" | "minutes" | "m" | + "second" | "seconds" | "s" | + "millisecond" | "milliseconds" | "ms" + ); + + type _quarter = "quarter" | "quarters" | "Q"; + type _isoWeek = "isoWeek" | "isoWeeks" | "W"; + type _date = "date" | "dates" | "D"; + type DurationConstructor = Base | _quarter; + + type DurationAs = Base; + + type StartOf = Base | _quarter | _isoWeek | _date | null; + + type Diff = Base | _quarter; + + type MomentConstructor = Base | _date; + + type All = Base | _quarter | _isoWeek | _date | + "weekYear" | "weekYears" | "gg" | + "isoWeekYear" | "isoWeekYears" | "GG" | + "dayOfYear" | "dayOfYears" | "DDD" | + "weekday" | "weekdays" | "e" | + "isoWeekday" | "isoWeekdays" | "E"; + } + + interface MomentInputObject { + years?: number; + year?: number; + y?: number; + + months?: number; + month?: number; + M?: number; + + days?: number; + day?: number; + d?: number; + + dates?: number; + date?: number; + D?: number; + + hours?: number; + hour?: number; + h?: number; + + minutes?: number; + minute?: number; + m?: number; + + seconds?: number; + second?: number; + s?: number; + + milliseconds?: number; + millisecond?: number; + ms?: number; + } + + interface DurationInputObject extends MomentInputObject { + quarters?: number; + quarter?: number; + Q?: number; + + weeks?: number; + week?: number; + w?: number; + } + + interface MomentSetObject extends MomentInputObject { + weekYears?: number; + weekYear?: number; + gg?: number; + + isoWeekYears?: number; + isoWeekYear?: number; + GG?: number; + + quarters?: number; + quarter?: number; + Q?: number; + + weeks?: number; + week?: number; + w?: number; + + isoWeeks?: number; + isoWeek?: number; + W?: number; + + dayOfYears?: number; + dayOfYear?: number; + DDD?: number; + + weekdays?: number; + weekday?: number; + e?: number; + + isoWeekdays?: number; + isoWeekday?: number; + E?: number; + } + + interface FromTo { + from: MomentInput; + to: MomentInput; + } + + type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | null | undefined; + type DurationInputArg1 = Duration | number | string | FromTo | DurationInputObject | null | undefined; + type DurationInputArg2 = unitOfTime.DurationConstructor; + type LocaleSpecifier = string | Moment | Duration | string[] | boolean; + + interface MomentCreationData { + input: MomentInput; + format?: MomentFormatSpecification; + locale: Locale; + isUTC: boolean; + strict?: boolean; + } + + interface Moment extends Object { + format(format?: string): string; + + startOf(unitOfTime: unitOfTime.StartOf): Moment; + endOf(unitOfTime: unitOfTime.StartOf): Moment; + + add(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + add(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + subtract(amount?: DurationInputArg1, unit?: DurationInputArg2): Moment; + /** + * @deprecated reverse syntax + */ + subtract(unit: unitOfTime.DurationConstructor, amount: number|string): Moment; + + calendar(): string; + calendar(formats: CalendarSpec): string; + calendar(time?: MomentInput, formats?: CalendarSpec): string; + + clone(): Moment; + + /** + * @return Unix timestamp in milliseconds + */ + valueOf(): number; + + // current date/time in local mode + local(keepLocalTime?: boolean): Moment; + isLocal(): boolean; + + // current date/time in UTC mode + utc(keepLocalTime?: boolean): Moment; + isUTC(): boolean; + /** + * @deprecated use isUTC + */ + isUtc(): boolean; + + parseZone(): Moment; + isValid(): boolean; + invalidAt(): number; + + hasAlignedHourOffset(other?: MomentInput): boolean; + + creationData(): MomentCreationData; + parsingFlags(): MomentParsingFlags; + + year(y: number): Moment; + year(): number; + /** + * @deprecated use year(y) + */ + years(y: number): Moment; + /** + * @deprecated use year() + */ + years(): number; + quarter(): number; + quarter(q: number): Moment; + quarters(): number; + quarters(q: number): Moment; + month(M: number|string): Moment; + month(): number; + /** + * @deprecated use month(M) + */ + months(M: number|string): Moment; + /** + * @deprecated use month() + */ + months(): number; + day(d: number|string): Moment; + day(): number; + days(d: number|string): Moment; + days(): number; + date(d: number): Moment; + date(): number; + /** + * @deprecated use date(d) + */ + dates(d: number): Moment; + /** + * @deprecated use date() + */ + dates(): number; + hour(h: number): Moment; + hour(): number; + hours(h: number): Moment; + hours(): number; + minute(m: number): Moment; + minute(): number; + minutes(m: number): Moment; + minutes(): number; + second(s: number): Moment; + second(): number; + seconds(s: number): Moment; + seconds(): number; + millisecond(ms: number): Moment; + millisecond(): number; + milliseconds(ms: number): Moment; + milliseconds(): number; + weekday(): number; + weekday(d: number): Moment; + isoWeekday(): number; + isoWeekday(d: number|string): Moment; + weekYear(): number; + weekYear(d: number): Moment; + isoWeekYear(): number; + isoWeekYear(d: number): Moment; + week(): number; + week(d: number): Moment; + weeks(): number; + weeks(d: number): Moment; + isoWeek(): number; + isoWeek(d: number): Moment; + isoWeeks(): number; + isoWeeks(d: number): Moment; + weeksInYear(): number; + isoWeeksInYear(): number; + isoWeeksInISOWeekYear(): number; + dayOfYear(): number; + dayOfYear(d: number): Moment; + + from(inp: MomentInput, suffix?: boolean): string; + to(inp: MomentInput, suffix?: boolean): string; + fromNow(withoutSuffix?: boolean): string; + toNow(withoutPrefix?: boolean): string; + + diff(b: MomentInput, unitOfTime?: unitOfTime.Diff, precise?: boolean): number; + + toArray(): [number, number, number, number, number, number, number]; + toDate(): Date; + toISOString(keepOffset?: boolean): string; + inspect(): string; + toJSON(): string; + unix(): number; + + isLeapYear(): boolean; + /** + * @deprecated in favor of utcOffset + */ + zone(): number; + zone(b: number|string): Moment; + utcOffset(): number; + utcOffset(b: number|string, keepLocalTime?: boolean): Moment; + isUtcOffset(): boolean; + daysInMonth(): number; + isDST(): boolean; + + zoneAbbr(): string; + zoneName(): string; + + isBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSame(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrAfter(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isSameOrBefore(inp?: MomentInput, granularity?: unitOfTime.StartOf): boolean; + isBetween(a: MomentInput, b: MomentInput, granularity?: unitOfTime.StartOf, inclusivity?: "()" | "[)" | "(]" | "[]"): boolean; + + /** + * @deprecated as of 2.8.0, use locale + */ + lang(language: LocaleSpecifier): Moment; + /** + * @deprecated as of 2.8.0, use locale + */ + lang(): Locale; + + locale(): string; + locale(locale: LocaleSpecifier): Moment; + + localeData(): Locale; + + /** + * @deprecated no reliable implementation + */ + isDSTShifted(): boolean; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + max(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @deprecated as of 2.7.0, use moment.min/max + */ + min(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + get(unit: unitOfTime.All): number; + set(unit: unitOfTime.All, value: number): Moment; + set(objectLiteral: MomentSetObject): Moment; + + toObject(): MomentObjectOutput; + } + + export var version: string; + export var fn: Moment; + + // NOTE(constructor): Same as moment constructor + /** + * @param strict Strict parsing disables the deprecated fallback to the native Date constructor when + * parsing a string. + */ + export function utc(inp?: MomentInput, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + /** + * @param strict Strict parsing requires that the format and input match exactly, including delimiters. + * Strict parsing is frequently the best parsing option. For more information about choosing strict vs + * forgiving parsing, see the [parsing guide](https://momentjs.com/guides/#/parsing/). + */ + export function utc(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function unix(timestamp: number): Moment; + + export function invalid(flags?: MomentParsingFlagsOpt): Moment; + export function isMoment(m: any): m is Moment; + export function isDate(m: any): m is Date; + export function isDuration(d: any): d is Duration; + + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string): string; + /** + * @deprecated in 2.8.0 + */ + export function lang(language?: string, definition?: Locale): string; + + export function locale(language?: string): string; + export function locale(language?: string[]): string; + export function locale(language?: string, definition?: LocaleSpecification | null | undefined): string; + + export function localeData(key?: string | string[]): Locale; + + export function duration(inp?: DurationInputArg1, unit?: DurationInputArg2): Duration; + + // NOTE(constructor): Same as moment constructor + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, strict?: boolean): Moment; + export function parseZone(inp?: MomentInput, format?: MomentFormatSpecification, language?: string, strict?: boolean): Moment; + + export function months(): string[]; + export function months(index: number): string; + export function months(format: string): string[]; + export function months(format: string, index: number): string; + export function monthsShort(): string[]; + export function monthsShort(index: number): string; + export function monthsShort(format: string): string[]; + export function monthsShort(format: string, index: number): string; + + export function weekdays(): string[]; + export function weekdays(index: number): string; + export function weekdays(format: string): string[]; + export function weekdays(format: string, index: number): string; + export function weekdays(localeSorted: boolean): string[]; + export function weekdays(localeSorted: boolean, index: number): string; + export function weekdays(localeSorted: boolean, format: string): string[]; + export function weekdays(localeSorted: boolean, format: string, index: number): string; + export function weekdaysShort(): string[]; + export function weekdaysShort(index: number): string; + export function weekdaysShort(format: string): string[]; + export function weekdaysShort(format: string, index: number): string; + export function weekdaysShort(localeSorted: boolean): string[]; + export function weekdaysShort(localeSorted: boolean, index: number): string; + export function weekdaysShort(localeSorted: boolean, format: string): string[]; + export function weekdaysShort(localeSorted: boolean, format: string, index: number): string; + export function weekdaysMin(): string[]; + export function weekdaysMin(index: number): string; + export function weekdaysMin(format: string): string[]; + export function weekdaysMin(format: string, index: number): string; + export function weekdaysMin(localeSorted: boolean): string[]; + export function weekdaysMin(localeSorted: boolean, index: number): string; + export function weekdaysMin(localeSorted: boolean, format: string): string[]; + export function weekdaysMin(localeSorted: boolean, format: string, index: number): string; + + export function min(moments: Moment[]): Moment; + export function min(...moments: Moment[]): Moment; + export function max(moments: Moment[]): Moment; + export function max(...moments: Moment[]): Moment; + + /** + * Returns unix time in milliseconds. Overwrite for profit. + */ + export function now(): number; + + export function defineLocale(language: string, localeSpec: LocaleSpecification | null): Locale; + export function updateLocale(language: string, localeSpec: LocaleSpecification | null): Locale; + + export function locales(): string[]; + + export function normalizeUnits(unit: unitOfTime.All): string; + export function relativeTimeThreshold(threshold: string): number | boolean; + export function relativeTimeThreshold(threshold: string, limit: number): boolean; + export function relativeTimeRounding(fn: (num: number) => number): boolean; + export function relativeTimeRounding(): (num: number) => number; + export function calendarFormat(m: Moment, now: Moment): string; + + export function parseTwoDigitYear(input: string): number; + /** + * Constant used to enable explicit ISO_8601 format parsing. + */ + export var ISO_8601: MomentBuiltinFormat; + export var RFC_2822: MomentBuiltinFormat; + + export var defaultFormat: string; + export var defaultFormatUtc: string; + + export var suppressDeprecationWarnings: boolean; + export var deprecationHandler: ((name: string | null, msg: string) => void) | null | undefined; + + export var HTML5_FMT: { + DATETIME_LOCAL: string, + DATETIME_LOCAL_SECONDS: string, + DATETIME_LOCAL_MS: string, + DATE: string, + TIME: string, + TIME_SECONDS: string, + TIME_MS: string, + WEEK: string, + MONTH: string + }; + +} + +export = moment; +export as namespace moment; diff --git a/pages/index/detail.vue b/pages/index/detail.vue new file mode 100644 index 0000000..8d83e70 --- /dev/null +++ b/pages/index/detail.vue @@ -0,0 +1,459 @@ + + + + + + + + + + + + {{item.name}} + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..b226762 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,354 @@ + + + + + + + + + + {{item.name}} + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/index/subnvue.nvue b/pages/index/subnvue.nvue new file mode 100644 index 0000000..1471639 --- /dev/null +++ b/pages/index/subnvue.nvue @@ -0,0 +1,54 @@ + + + + + + 楠戞墜瀹屾垚鍙栬揣 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/oaLogin/oaLogin.vue b/pages/oaLogin/oaLogin.vue new file mode 100644 index 0000000..848f669 --- /dev/null +++ b/pages/oaLogin/oaLogin.vue @@ -0,0 +1,355 @@ + + + + + + + + + + + 娆㈣繋杩涘叆閲屾捣渚涢攢骞冲彴锛 + + + + + + + + + + + + 鐧诲綍 + + + + + + + + \ No newline at end of file diff --git a/pages/psong/detail.vue b/pages/psong/detail.vue new file mode 100644 index 0000000..5778131 --- /dev/null +++ b/pages/psong/detail.vue @@ -0,0 +1,301 @@ + + + + + + + + + + + + {{item.name}} + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/psong/index.vue b/pages/psong/index.vue new file mode 100644 index 0000000..3f90201 --- /dev/null +++ b/pages/psong/index.vue @@ -0,0 +1,290 @@ + + + + + + + + + + {{item.name}} + + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/sda/detail.vue b/pages/sda/detail.vue new file mode 100644 index 0000000..cfe43f5 --- /dev/null +++ b/pages/sda/detail.vue @@ -0,0 +1,293 @@ + + + + + + + + + + + + {{item.name}} + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/sda/index.vue b/pages/sda/index.vue new file mode 100644 index 0000000..bf2c405 --- /dev/null +++ b/pages/sda/index.vue @@ -0,0 +1,281 @@ + + + + + + + + + + + + {{item.name}} + + + + + + + + + + {{oaUserInfo.nickname}} + + + + + + + + + + {{oaUserInfo.nickname ?'鍦ㄧ嚎':'绂荤嚎'}} + + + + + 鍒囨崲璐﹀彿 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/submap/index.vue b/pages/submap/index.vue new file mode 100644 index 0000000..48d7466 --- /dev/null +++ b/pages/submap/index.vue @@ -0,0 +1,176 @@ + + + + + + + + + + \ No newline at end of file