{"version":3,"file":"index.mjs","sources":["../lib/date.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\n/// \n\nimport { getCanonicalLocale } from './locale'\n\ndeclare let window: Nextcloud.v27.WindowWithGlobals\n\nexport type WeekDay = 0 | 1 | 2 | 3 | 4 | 5 | 6\n\n/**\n * Get the first day of the week\n *\n * @return The first day where 0 is Sunday, 1 is Monday etc.\n */\nexport function getFirstDay(): WeekDay {\n\t// Server rendered\n\tif (typeof window.firstDay !== 'undefined') {\n\t\treturn window.firstDay as WeekDay\n\t}\n\n\t// Try to fallback to Intl\n\t// getWeekInfo is a Stage 3 proposal and not available in Firefox\n\t// Node.js and Samsung Internet only has accessor property weekInfo instead\n\ttype WeekInfoDay = 1 | 2 | 3 | 4 | 5 | 6 | 7\n\ttype WeekInfo = {\n\t\tfirstDay: WeekInfoDay,\n\t\tweekend: WeekInfoDay,\n\t\tminimalDays: WeekInfoDay,\n\t }\n\tconst intl = new Intl.Locale(getCanonicalLocale())\n\t// @ts-expect-error These properties are not part of the standard\n\tconst weekInfo: WeekInfo = intl.getWeekInfo?.() ?? intl.weekInfo\n\tif (weekInfo) {\n\t\t// Convert 1..7 to 0..6 format\n\t\treturn weekInfo.firstDay % 7 as WeekDay\n\t}\n\n\t// Fallback to Monday\n\treturn 1\n}\n\n/**\n * Get a list of day names (full names)\n *\n * @return {string[]}\n */\nexport function getDayNames(): string[] {\n\t// Server rendered\n\tif (typeof window.dayNames !== 'undefined') {\n\t\treturn window.dayNames\n\t}\n\n\t// Fallback to Intl\n\tconst locale = getCanonicalLocale()\n\treturn [\n\t\tnew Date('1970-01-04T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-05T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-06T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-07T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-08T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-09T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t\tnew Date('1970-01-10T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'long' }),\n\t]\n}\n\n/**\n * Get a list of day names (short names)\n *\n * @return {string[]}\n */\nexport function getDayNamesShort(): string[] {\n\tif (typeof window.dayNamesShort !== 'undefined') {\n\t\treturn window.dayNamesShort\n\t}\n\n\t// Fallback to Intl\n\t// Note: narrow is shorter than server's \"min\", but it's the closest we can get\n\tconst locale = getCanonicalLocale()\n\treturn [\n\t\tnew Date('1970-01-04T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-05T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-06T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-07T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-08T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-09T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t\tnew Date('1970-01-10T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'short' }),\n\t]\n}\n\n/**\n * Get a list of day names (minified names)\n *\n * @return {string[]}\n */\nexport function getDayNamesMin(): string[] {\n\t// Server rendered\n\tif (typeof window.dayNamesMin !== 'undefined') {\n\t\treturn window.dayNamesMin\n\t}\n\n\t// Fallback to Intl\n\tconst locale = getCanonicalLocale()\n\treturn [\n\t\tnew Date('1970-01-04T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-05T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-06T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-07T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-08T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-09T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t\tnew Date('1970-01-10T00:00:00.000Z').toLocaleDateString(locale, { weekday: 'narrow' }),\n\t]\n}\n\n/**\n * Get a list of month names (full names)\n *\n * @return {string[]}\n */\nexport function getMonthNames(): string[] {\n\t// Server rendered\n\tif (typeof window.monthNames !== 'undefined') {\n\t\treturn window.monthNames\n\t}\n\n\t// Fallback to Intl\n\tconst locale = getCanonicalLocale()\n\treturn [\n\t\tnew Date('1970-01-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-02-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-03-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-04-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-05-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-06-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-07-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-08-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-09-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-10-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-11-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t\tnew Date('1970-12-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'long' }),\n\t]\n}\n\n/**\n * Get a list of month names (short names)\n *\n * @return {string[]}\n */\nexport function getMonthNamesShort(): string[] {\n\t// Server rendered\n\tif (typeof window.monthNamesShort !== 'undefined') {\n\t\treturn window.monthNamesShort\n\t}\n\n\t// Fallback to Intl\n\tconst locale = getCanonicalLocale()\n\treturn [\n\t\tnew Date('1970-01-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-02-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-03-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-04-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-05-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-06-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-07-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-08-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-09-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-10-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-11-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t\tnew Date('1970-12-01T00:00:00.000Z').toLocaleDateString(locale, { month: 'short' }),\n\t]\n}\n"],"names":[],"mappings":"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"}