@aotearoan/neon 20.0.0 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/enums/NeonBadgeSize.cjs.js +2 -0
- package/dist/common/enums/NeonBadgeSize.cjs.js.map +1 -0
- package/dist/common/enums/NeonBadgeSize.es.js +5 -0
- package/dist/common/enums/NeonBadgeSize.es.js.map +1 -0
- package/dist/common/enums/NeonButtonStyle.cjs.js +1 -1
- package/dist/common/enums/NeonButtonStyle.cjs.js.map +1 -1
- package/dist/common/enums/NeonButtonStyle.es.js +1 -1
- package/dist/common/enums/NeonButtonStyle.es.js.map +1 -1
- package/dist/common/enums/NeonDropdownStyle.cjs.js +1 -1
- package/dist/common/enums/NeonDropdownStyle.cjs.js.map +1 -1
- package/dist/common/enums/NeonDropdownStyle.es.js +2 -2
- package/dist/common/enums/NeonDropdownStyle.es.js.map +1 -1
- package/dist/common/enums/NeonMode.cjs.js +1 -1
- package/dist/common/enums/NeonMode.cjs.js.map +1 -1
- package/dist/common/enums/NeonMode.es.js +1 -1
- package/dist/common/enums/NeonMode.es.js.map +1 -1
- package/dist/common/icons/light-mode-sunny.svg.cjs.js +26 -0
- package/dist/common/icons/light-mode-sunny.svg.cjs.js.map +1 -0
- package/dist/common/icons/light-mode-sunny.svg.es.js +29 -0
- package/dist/common/icons/light-mode-sunny.svg.es.js.map +1 -0
- package/dist/common/utils/NeonDateUtils.cjs.js +1 -1
- package/dist/common/utils/NeonDateUtils.cjs.js.map +1 -1
- package/dist/common/utils/NeonDateUtils.es.js +52 -48
- package/dist/common/utils/NeonDateUtils.es.js.map +1 -1
- package/dist/common/utils/NeonModeUtils.cjs.js +1 -1
- package/dist/common/utils/NeonModeUtils.cjs.js.map +1 -1
- package/dist/common/utils/NeonModeUtils.es.js +38 -43
- package/dist/common/utils/NeonModeUtils.es.js.map +1 -1
- package/dist/common/utils/RegisterIcons.cjs.js +1 -1
- package/dist/common/utils/RegisterIcons.cjs.js.map +1 -1
- package/dist/common/utils/RegisterIcons.es.js +23 -22
- package/dist/common/utils/RegisterIcons.es.js.map +1 -1
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.cjs.js +2 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.cjs.js.map +1 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.es.js +44 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.es.js.map +1 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.vue.cjs.js +2 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.vue.cjs.js.map +1 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.vue.es.js +57 -0
- package/dist/components/navigation/mobile-menu/NeonMobileMenu.vue.es.js.map +1 -0
- package/dist/components/presentation/badge/NeonBadge.cjs.js +1 -1
- package/dist/components/presentation/badge/NeonBadge.cjs.js.map +1 -1
- package/dist/components/presentation/badge/NeonBadge.es.js +8 -8
- package/dist/components/presentation/badge/NeonBadge.es.js.map +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.cjs.js +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.cjs.js.map +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.es.js +49 -41
- package/dist/components/presentation/dropdown/NeonDropdown.es.js.map +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.vue.cjs.js +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.vue.cjs.js.map +1 -1
- package/dist/components/presentation/dropdown/NeonDropdown.vue.es.js +25 -23
- package/dist/components/presentation/dropdown/NeonDropdown.vue.es.js.map +1 -1
- package/dist/components/presentation/tabs/NeonTabs.cjs.js +1 -1
- package/dist/components/presentation/tabs/NeonTabs.cjs.js.map +1 -1
- package/dist/components/presentation/tabs/NeonTabs.es.js +13 -19
- package/dist/components/presentation/tabs/NeonTabs.es.js.map +1 -1
- package/dist/components/presentation/tabs/NeonTabs.vue.cjs.js +1 -1
- package/dist/components/presentation/tabs/NeonTabs.vue.cjs.js.map +1 -1
- package/dist/components/presentation/tabs/NeonTabs.vue.es.js +6 -6
- package/dist/components/presentation/tabs/NeonTabs.vue.es.js.map +1 -1
- package/dist/components/user-input/button/NeonButton.cjs.js +1 -1
- package/dist/components/user-input/button/NeonButton.cjs.js.map +1 -1
- package/dist/components/user-input/button/NeonButton.es.js +26 -22
- package/dist/components/user-input/button/NeonButton.es.js.map +1 -1
- package/dist/components/user-input/button/NeonButton.vue.cjs.js +1 -1
- package/dist/components/user-input/button/NeonButton.vue.cjs.js.map +1 -1
- package/dist/components/user-input/button/NeonButton.vue.es.js +18 -17
- package/dist/components/user-input/button/NeonButton.vue.es.js.map +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.cjs.js +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.cjs.js.map +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.es.js +27 -23
- package/dist/components/user-input/date-picker/NeonDatePicker.es.js.map +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.vue.cjs.js +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.vue.cjs.js.map +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.vue.es.js +99 -114
- package/dist/components/user-input/date-picker/NeonDatePicker.vue.es.js.map +1 -1
- package/dist/components/user-input/input/NeonInput.cjs.js +1 -1
- package/dist/components/user-input/input/NeonInput.cjs.js.map +1 -1
- package/dist/components/user-input/input/NeonInput.es.js +32 -32
- package/dist/components/user-input/input/NeonInput.es.js.map +1 -1
- package/dist/components/user-input/select/NeonSelect.cjs.js +1 -1
- package/dist/components/user-input/select/NeonSelect.cjs.js.map +1 -1
- package/dist/components/user-input/select/NeonSelect.es.js +75 -69
- package/dist/components/user-input/select/NeonSelect.es.js.map +1 -1
- package/dist/components/user-input/select/NeonSelect.vue.cjs.js +1 -1
- package/dist/components/user-input/select/NeonSelect.vue.cjs.js.map +1 -1
- package/dist/components/user-input/select/NeonSelect.vue.es.js +29 -21
- package/dist/components/user-input/select/NeonSelect.vue.es.js.map +1 -1
- package/dist/neon.cjs.js +1 -1
- package/dist/neon.es.js +141 -139
- package/dist/neon.es.js.map +1 -1
- package/dist/src/common/enums/NeonBadgeSize.d.ts +15 -0
- package/dist/src/common/enums/NeonButtonStyle.d.ts +6 -1
- package/dist/src/common/enums/NeonDropdownStyle.d.ts +5 -2
- package/dist/src/common/enums/NeonMode.d.ts +3 -1
- package/dist/src/common/models/NeonCalendarConfig.d.ts +10 -0
- package/dist/src/common/models/NeonMenuItem.d.ts +2 -2
- package/dist/src/common/utils/NeonDateUtils.d.ts +4 -2
- package/dist/src/common/utils/NeonModeUtils.d.ts +17 -21
- package/dist/src/components/feedback/dialog/NeonDialog.d.ts +12 -0
- package/dist/src/components/feedback/note/NeonNote.d.ts +6 -0
- package/dist/src/components/layout/card-list/NeonCardList.d.ts +20 -4
- package/dist/src/components/layout/modal/NeonModal.d.ts +6 -0
- package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +128 -39
- package/dist/src/components/navigation/menu/NeonMenu.d.ts +108 -31
- package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.d.ts +2648 -0
- package/dist/src/components/navigation/mobile-menu/NeonMobileMenu.vue.d.ts +2 -0
- package/dist/src/components/presentation/badge/NeonBadge.d.ts +12 -20
- package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +45 -23
- package/dist/src/components/presentation/image-carousel/NeonImageCarousel.d.ts +6 -0
- package/dist/src/components/presentation/tabs/NeonTabs.d.ts +2 -19
- package/dist/src/components/user-input/button/NeonButton.d.ts +15 -1
- package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +153 -106
- package/dist/src/components/user-input/file/NeonFile.d.ts +16 -14
- package/dist/src/components/user-input/input/NeonInput.d.ts +5 -9
- package/dist/src/components/user-input/number/NeonNumber.d.ts +20 -46
- package/dist/src/components/user-input/search/NeonSearch.d.ts +170 -135
- package/dist/src/components/user-input/select/NeonSelect.d.ts +364 -320
- package/dist/src/neon.d.ts +2 -1
- package/package.json +1 -1
- package/src/sass/components/_badge.scss +16 -42
- package/src/sass/components/_button.scss +24 -0
- package/src/sass/components/_date-picker.scss +20 -0
- package/src/sass/components/_image-carousel.scss +2 -1
- package/src/sass/components/_input.scss +10 -10
- package/src/sass/components/_mobile-menu.scss +110 -0
- package/src/sass/components/_select.scss +14 -0
- package/src/sass/components/_tabs.scss +43 -78
- package/src/sass/components/components.scss +1 -0
- package/src/sass/includes/_dependencies.scss +1 -0
- package/src/sass/theme.scss +4 -0
- package/src/sass/variables.scss +28 -1
- package/dist/common/enums/NeonTabsStyle.cjs.js +0 -2
- package/dist/common/enums/NeonTabsStyle.cjs.js.map +0 -1
- package/dist/common/enums/NeonTabsStyle.es.js +0 -5
- package/dist/common/enums/NeonTabsStyle.es.js.map +0 -1
- package/dist/src/common/enums/NeonTabsStyle.d.ts +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonBadgeSize.cjs.js","sources":["../../../src/common/enums/NeonBadgeSize.ts"],"sourcesContent":["/**\n * Describes the available sizing options for <a href=\"/presentation/badge\">NeonBadge</a>.\n */\nexport enum NeonBadgeSize {\n /** A small badge size, typically has a default of 32 rem. */\n Small = 's',\n /** A medium badge size, usually the default size. Which typically has a default of 40 rem. */\n Medium = 'm',\n /** A large badge size, typically has a default of 48 rem. */\n Large = 'l',\n /** An extra large badge size, typically has a default of 64 rem. */\n ExtraLarge = 'xl',\n /** An extra, extra large badge size, typically has a default of 80 rem. */\n ExtraExtraLarge = 'xxl',\n}\n"],"names":["NeonBadgeSize"],"mappings":"gFAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,IAERA,EAAA,OAAS,IAETA,EAAA,MAAQ,IAERA,EAAA,WAAa,KAEbA,EAAA,gBAAkB,MAVRA,IAAAA,GAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonBadgeSize.es.js","sources":["../../../src/common/enums/NeonBadgeSize.ts"],"sourcesContent":["/**\n * Describes the available sizing options for <a href=\"/presentation/badge\">NeonBadge</a>.\n */\nexport enum NeonBadgeSize {\n /** A small badge size, typically has a default of 32 rem. */\n Small = 's',\n /** A medium badge size, usually the default size. Which typically has a default of 40 rem. */\n Medium = 'm',\n /** A large badge size, typically has a default of 48 rem. */\n Large = 'l',\n /** An extra large badge size, typically has a default of 64 rem. */\n ExtraLarge = 'xl',\n /** An extra, extra large badge size, typically has a default of 80 rem. */\n ExtraExtraLarge = 'xxl',\n}\n"],"names":["NeonBadgeSize"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,KAERA,EAAA,SAAS,KAETA,EAAA,QAAQ,KAERA,EAAA,aAAa,MAEbA,EAAA,kBAAkB,OAVRA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var i=(e=>(e.Solid="solid",e.Outline="outline",e.Text="text",e.Input="input",e))(i||{});exports.NeonButtonStyle=i;
|
|
2
2
|
//# sourceMappingURL=NeonButtonStyle.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonButtonStyle.cjs.js","sources":["../../../src/common/enums/NeonButtonStyle.ts"],"sourcesContent":["/**\n * Describes the different <a href=\"/user-input/button\">NeonButton</a> styles.\n */\nexport enum NeonButtonStyle {\n /** Solid buttons are solid color buttons. Use these for primary or secondary actions (usually low contrast color). */\n Solid = 'solid',\n /**\n * Outline buttons appear with a border & no background color. Outline buttons should be used for secondary actions\n * or alternate actions outside the main flow to minimise distraction for the user.\n */\n Outline = 'outline',\n /**\n * Text buttons appear as text without a background. Text buttons are usually used for icons buttons or secondary\n * actions.\n */\n Text = 'text',\n}\n"],"names":["NeonButtonStyle"],"mappings":"gFAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,QAKRA,EAAA,QAAU,UAKVA,EAAA,KAAO,
|
|
1
|
+
{"version":3,"file":"NeonButtonStyle.cjs.js","sources":["../../../src/common/enums/NeonButtonStyle.ts"],"sourcesContent":["/**\n * Describes the different <a href=\"/user-input/button\">NeonButton</a> styles.\n */\nexport enum NeonButtonStyle {\n /** Solid buttons are solid color buttons. Use these for primary or secondary actions (usually low contrast color). */\n Solid = 'solid',\n /**\n * Outline buttons appear with a border & no background color. Outline buttons should be used for secondary actions\n * or alternate actions outside the main flow to minimise distraction for the user.\n */\n Outline = 'outline',\n /**\n * Text buttons appear as text without a background. Text buttons are usually used for icons buttons or secondary\n * actions.\n */\n Text = 'text',\n /**\n * USED INTERNALLY: an <em>input</em> field style button. This is used as the button trigger for NeonSelect &\n * NeonDatePicker for consistency with other form fields.\n */\n Input = 'input',\n}\n"],"names":["NeonButtonStyle"],"mappings":"gFAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,QAKRA,EAAA,QAAU,UAKVA,EAAA,KAAO,OAKPA,EAAA,MAAQ,QAjBEA,IAAAA,GAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonButtonStyle.es.js","sources":["../../../src/common/enums/NeonButtonStyle.ts"],"sourcesContent":["/**\n * Describes the different <a href=\"/user-input/button\">NeonButton</a> styles.\n */\nexport enum NeonButtonStyle {\n /** Solid buttons are solid color buttons. Use these for primary or secondary actions (usually low contrast color). */\n Solid = 'solid',\n /**\n * Outline buttons appear with a border & no background color. Outline buttons should be used for secondary actions\n * or alternate actions outside the main flow to minimise distraction for the user.\n */\n Outline = 'outline',\n /**\n * Text buttons appear as text without a background. Text buttons are usually used for icons buttons or secondary\n * actions.\n */\n Text = 'text',\n}\n"],"names":["NeonButtonStyle"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,SAKRA,EAAA,UAAU,WAKVA,EAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NeonButtonStyle.es.js","sources":["../../../src/common/enums/NeonButtonStyle.ts"],"sourcesContent":["/**\n * Describes the different <a href=\"/user-input/button\">NeonButton</a> styles.\n */\nexport enum NeonButtonStyle {\n /** Solid buttons are solid color buttons. Use these for primary or secondary actions (usually low contrast color). */\n Solid = 'solid',\n /**\n * Outline buttons appear with a border & no background color. Outline buttons should be used for secondary actions\n * or alternate actions outside the main flow to minimise distraction for the user.\n */\n Outline = 'outline',\n /**\n * Text buttons appear as text without a background. Text buttons are usually used for icons buttons or secondary\n * actions.\n */\n Text = 'text',\n /**\n * USED INTERNALLY: an <em>input</em> field style button. This is used as the button trigger for NeonSelect &\n * NeonDatePicker for consistency with other form fields.\n */\n Input = 'input',\n}\n"],"names":["NeonButtonStyle"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,SAKRA,EAAA,UAAU,WAKVA,EAAA,OAAO,QAKPA,EAAA,QAAQ,SAjBEA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var t=(a=>(a.SolidButton="solid",a.Input="input",a.Text="text",a.SquareBadge="square-badge",a.CircularBadge="circular-badge",a))(t||{});exports.NeonDropdownStyle=t;
|
|
2
2
|
//# sourceMappingURL=NeonDropdownStyle.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDropdownStyle.cjs.js","sources":["../../../src/common/enums/NeonDropdownStyle.ts"],"sourcesContent":["/**\n * Dropdown trigger style for describing the triggering element of dropdowns & selects like:\n * <ul class=\"no-style\">\n * <li><a href=\"/user-input/select\">NeonSelect</a></li>\n * <li><a href=\"/navigation/dropdown-menu\">NeonDropdownMenu</a></li>\n * <li><a href=\"/presentation/dropdown\">NeonDropdown</a></li>\n * </ul>\n */\nexport enum NeonDropdownStyle {\n /** A <a href=\"/user-input/button\">NeonButton</a> in the solid color style */\n SolidButton = 'solid-
|
|
1
|
+
{"version":3,"file":"NeonDropdownStyle.cjs.js","sources":["../../../src/common/enums/NeonDropdownStyle.ts"],"sourcesContent":["/**\n * Dropdown trigger style for describing the triggering element of dropdowns & selects like:\n * <ul class=\"no-style\">\n * <li><a href=\"/user-input/select\">NeonSelect</a></li>\n * <li><a href=\"/navigation/dropdown-menu\">NeonDropdownMenu</a></li>\n * <li><a href=\"/presentation/dropdown\">NeonDropdown</a></li>\n * </ul>\n */\nexport enum NeonDropdownStyle {\n /** A <a href=\"/user-input/button\">NeonButton</a> in the solid color style */\n SolidButton = 'solid',\n /** A style similar to <a href=\"/user-input/input\">NeonInput</a> which is used as the default for a\n * <a href=\"/user-input/select\">NeonSelect</a> */\n Input = 'input',\n /** A <a href=\"/user-input/button\">NeonButton</a> in the text style */\n Text = 'text',\n /** A square <a href=\"/presentation/badge\">NeonBadge</a> */\n SquareBadge = 'square-badge',\n /** A circular <a href=\"/presentation/badge\">NeonBadge</a> */\n CircularBadge = 'circular-badge',\n}\n"],"names":["NeonDropdownStyle"],"mappings":"gFAQO,IAAKA,GAAAA,IAEVA,EAAA,YAAc,QAGdA,EAAA,MAAQ,QAERA,EAAA,KAAO,OAEPA,EAAA,YAAc,eAEdA,EAAA,cAAgB,iBAXNA,IAAAA,GAAA,CAAA,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
1
|
+
var u = /* @__PURE__ */ ((a) => (a.SolidButton = "solid", a.Input = "input", a.Text = "text", a.SquareBadge = "square-badge", a.CircularBadge = "circular-badge", a))(u || {});
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
u as NeonDropdownStyle
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=NeonDropdownStyle.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDropdownStyle.es.js","sources":["../../../src/common/enums/NeonDropdownStyle.ts"],"sourcesContent":["/**\n * Dropdown trigger style for describing the triggering element of dropdowns & selects like:\n * <ul class=\"no-style\">\n * <li><a href=\"/user-input/select\">NeonSelect</a></li>\n * <li><a href=\"/navigation/dropdown-menu\">NeonDropdownMenu</a></li>\n * <li><a href=\"/presentation/dropdown\">NeonDropdown</a></li>\n * </ul>\n */\nexport enum NeonDropdownStyle {\n /** A <a href=\"/user-input/button\">NeonButton</a> in the solid color style */\n SolidButton = 'solid-
|
|
1
|
+
{"version":3,"file":"NeonDropdownStyle.es.js","sources":["../../../src/common/enums/NeonDropdownStyle.ts"],"sourcesContent":["/**\n * Dropdown trigger style for describing the triggering element of dropdowns & selects like:\n * <ul class=\"no-style\">\n * <li><a href=\"/user-input/select\">NeonSelect</a></li>\n * <li><a href=\"/navigation/dropdown-menu\">NeonDropdownMenu</a></li>\n * <li><a href=\"/presentation/dropdown\">NeonDropdown</a></li>\n * </ul>\n */\nexport enum NeonDropdownStyle {\n /** A <a href=\"/user-input/button\">NeonButton</a> in the solid color style */\n SolidButton = 'solid',\n /** A style similar to <a href=\"/user-input/input\">NeonInput</a> which is used as the default for a\n * <a href=\"/user-input/select\">NeonSelect</a> */\n Input = 'input',\n /** A <a href=\"/user-input/button\">NeonButton</a> in the text style */\n Text = 'text',\n /** A square <a href=\"/presentation/badge\">NeonBadge</a> */\n SquareBadge = 'square-badge',\n /** A circular <a href=\"/presentation/badge\">NeonBadge</a> */\n CircularBadge = 'circular-badge',\n}\n"],"names":["NeonDropdownStyle"],"mappings":"AAQO,IAAKA,sBAAAA,OAEVA,EAAA,cAAc,SAGdA,EAAA,QAAQ,SAERA,EAAA,OAAO,QAEPA,EAAA,cAAc,gBAEdA,EAAA,gBAAgB,kBAXNA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var r=(t=>(t.Light="light",t.Dark="dark",t.System="system",t))(r||{});exports.NeonMode=r;
|
|
2
2
|
//# sourceMappingURL=NeonMode.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonMode.cjs.js","sources":["../../../src/common/enums/NeonMode.ts"],"sourcesContent":["/**\n * The different modes that can be used in Neon. See <a href=\"/design/theming#dark-mode\">Dark mode</a> for more details.\n */\nexport enum NeonMode {\n /** Light mode */\n Light = 'light',\n /** Dark mode */\n Dark = 'dark',\n}\n"],"names":["NeonMode"],"mappings":"gFAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,QAERA,EAAA,KAAO,
|
|
1
|
+
{"version":3,"file":"NeonMode.cjs.js","sources":["../../../src/common/enums/NeonMode.ts"],"sourcesContent":["/**\n * The different modes that can be used in Neon. See <a href=\"/design/theming#dark-mode\">Dark mode</a> for more details.\n */\nexport enum NeonMode {\n /** Light mode */\n Light = 'light',\n /** Dark mode */\n Dark = 'dark',\n /** Match the user's selected system mode */\n System = 'system',\n}\n"],"names":["NeonMode"],"mappings":"gFAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,QAERA,EAAA,KAAO,OAEPA,EAAA,OAAS,SANCA,IAAAA,GAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonMode.es.js","sources":["../../../src/common/enums/NeonMode.ts"],"sourcesContent":["/**\n * The different modes that can be used in Neon. See <a href=\"/design/theming#dark-mode\">Dark mode</a> for more details.\n */\nexport enum NeonMode {\n /** Light mode */\n Light = 'light',\n /** Dark mode */\n Dark = 'dark',\n}\n"],"names":["NeonMode"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,SAERA,EAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NeonMode.es.js","sources":["../../../src/common/enums/NeonMode.ts"],"sourcesContent":["/**\n * The different modes that can be used in Neon. See <a href=\"/design/theming#dark-mode\">Dark mode</a> for more details.\n */\nexport enum NeonMode {\n /** Light mode */\n Light = 'light',\n /** Dark mode */\n Dark = 'dark',\n /** Match the user's selected system mode */\n System = 'system',\n}\n"],"names":["NeonMode"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,SAERA,EAAA,OAAO,QAEPA,EAAA,SAAS,UANCA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";const n=`<svg viewBox="-0.75 -0.75 24 24" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%">
|
|
2
|
+
<path d="M7.03125 11.25a4.21875 4.21875 0 1 0 8.4375 0 4.21875 4.21875 0 1 0 -8.4375 0Z" fill="none"
|
|
3
|
+
class="neon-svg--stroke" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
|
|
4
|
+
<path d="m11.25 0.703125 0 3.515625" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
5
|
+
stroke-linejoin="round"
|
|
6
|
+
stroke-width="1.5"></path>
|
|
7
|
+
<path d="m11.25 18.28125 0 3.515625" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
8
|
+
stroke-linejoin="round"
|
|
9
|
+
stroke-width="1.5"></path>
|
|
10
|
+
<path d="m21.796875 11.25 -3.515625 0" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
11
|
+
stroke-linejoin="round"
|
|
12
|
+
stroke-width="1.5"></path>
|
|
13
|
+
<path d="M4.21875 11.25 0.703125 11.25" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
14
|
+
stroke-linejoin="round"
|
|
15
|
+
stroke-width="1.5"></path>
|
|
16
|
+
<path d="m18.984375 3.515625 -2.8125 2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
17
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
18
|
+
<path d="m6.328125 16.171875 -2.8125 2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
19
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
20
|
+
<path d="m18.984375 18.984375 -2.8125 -2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
21
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
22
|
+
<path d="m6.328125 6.328125 -2.8125 -2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
23
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
24
|
+
</svg>
|
|
25
|
+
`;module.exports=n;
|
|
26
|
+
//# sourceMappingURL=light-mode-sunny.svg.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"light-mode-sunny.svg.cjs.js","sources":["../../../src/common/icons/light-mode-sunny.svg"],"sourcesContent":["export default \"<svg viewBox=\\\"-0.75 -0.75 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"100%\\\" width=\\\"100%\\\">\\n <path d=\\\"M7.03125 11.25a4.21875 4.21875 0 1 0 8.4375 0 4.21875 4.21875 0 1 0 -8.4375 0Z\\\" fill=\\\"none\\\"\\n class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m11.25 0.703125 0 3.515625\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m11.25 18.28125 0 3.515625\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m21.796875 11.25 -3.515625 0\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"M4.21875 11.25 0.703125 11.25\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m18.984375 3.515625 -2.8125 2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m6.328125 16.171875 -2.8125 2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m18.984375 18.984375 -2.8125 -2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m6.328125 6.328125 -2.8125 -2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n</svg>\\n\""],"names":["lightModeSunny"],"mappings":"aAAA,MAAAA,EAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const n = `<svg viewBox="-0.75 -0.75 24 24" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%">
|
|
2
|
+
<path d="M7.03125 11.25a4.21875 4.21875 0 1 0 8.4375 0 4.21875 4.21875 0 1 0 -8.4375 0Z" fill="none"
|
|
3
|
+
class="neon-svg--stroke" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path>
|
|
4
|
+
<path d="m11.25 0.703125 0 3.515625" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
5
|
+
stroke-linejoin="round"
|
|
6
|
+
stroke-width="1.5"></path>
|
|
7
|
+
<path d="m11.25 18.28125 0 3.515625" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
8
|
+
stroke-linejoin="round"
|
|
9
|
+
stroke-width="1.5"></path>
|
|
10
|
+
<path d="m21.796875 11.25 -3.515625 0" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
11
|
+
stroke-linejoin="round"
|
|
12
|
+
stroke-width="1.5"></path>
|
|
13
|
+
<path d="M4.21875 11.25 0.703125 11.25" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
14
|
+
stroke-linejoin="round"
|
|
15
|
+
stroke-width="1.5"></path>
|
|
16
|
+
<path d="m18.984375 3.515625 -2.8125 2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
17
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
18
|
+
<path d="m6.328125 16.171875 -2.8125 2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
19
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
20
|
+
<path d="m18.984375 18.984375 -2.8125 -2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
21
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
22
|
+
<path d="m6.328125 6.328125 -2.8125 -2.8125" fill="none" class="neon-svg--stroke" stroke-linecap="round"
|
|
23
|
+
stroke-linejoin="round" stroke-width="1.5"></path>
|
|
24
|
+
</svg>
|
|
25
|
+
`;
|
|
26
|
+
export {
|
|
27
|
+
n as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=light-mode-sunny.svg.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"light-mode-sunny.svg.es.js","sources":["../../../src/common/icons/light-mode-sunny.svg"],"sourcesContent":["export default \"<svg viewBox=\\\"-0.75 -0.75 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" height=\\\"100%\\\" width=\\\"100%\\\">\\n <path d=\\\"M7.03125 11.25a4.21875 4.21875 0 1 0 8.4375 0 4.21875 4.21875 0 1 0 -8.4375 0Z\\\" fill=\\\"none\\\"\\n class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m11.25 0.703125 0 3.515625\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m11.25 18.28125 0 3.515625\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m21.796875 11.25 -3.515625 0\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"M4.21875 11.25 0.703125 11.25\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\"\\n stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m18.984375 3.515625 -2.8125 2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m6.328125 16.171875 -2.8125 2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m18.984375 18.984375 -2.8125 -2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n <path d=\\\"m6.328125 6.328125 -2.8125 -2.8125\\\" fill=\\\"none\\\" class=\\\"neon-svg--stroke\\\" stroke-linecap=\\\"round\\\"\\n stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"></path>\\n</svg>\\n\""],"names":["lightModeSunny"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class s{static stringToNeonDate(e,o,a=!1){const n=o||navigator.language,r=new Date,t=new Date(!a&&e.length===10?`${e}T${r.toISOString().split("T")[1]}`:e);let i;e.length>10&&(i=t.toLocaleString(n,e.length<=16?{hour12:!1,hour:"2-digit",minute:"2-digit"}:{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}));const d={year:+t.toLocaleString("en-US",{year:"numeric"}),yearFormatted:t.toLocaleString(n,{year:"numeric"}),month:+t.toLocaleString("en-US",{month:"numeric"}),monthShortName:t.toLocaleString(n,{month:"short"}),monthLongName:t.toLocaleString(n,{month:"long"}),day:+t.toLocaleString("en-US",{day:"numeric"}),dayFormatted:t.toLocaleString(n,{day:"2-digit"})};return i&&(d.time=i),d}static dateToIso(e,o=!1){const a=e.toISOString();return o?a:a.split("T")[0]}static dmyToIso(e,o,a){return`${a}-${o<10?"0"+o:o}-${e<10?"0"+e:e}`}static dowNames(e,o="short"){const a=e||navigator.language,n=new Date,r=[];for(;!r[n.getDay()];)r[n.getDay()]=n.toLocaleString(a,{weekday:o}),n.setDate(n.getDate()+1);const t=r.shift();return t&&r.push(t),r}static monthNames(e,o="short"){const a=e||navigator.language;return Array.from(Array(12).keys()).map(n=>new Date(2023,n,15).toLocaleString(a,{month:o}))}static toCalendarConfiguration(e,o,a,n,r){const t=r||navigator.language,i=s.stringToNeonDate(s.dateToIso(new Date),t),d=e?s.stringToNeonDate(e,t,!0):void 0,u=o||i.month,S=o&&a?new Date(a,o-1,15):null,L=(S==null?void 0:S.toLocaleString(t,{month:"long"}))||i.monthLongName,h=a||i.year,N=n||Math.floor(h/10)*10,c=new Date(h,(u+11)%12,1),f=new Date(h,(u+11)%12,1);f.setDate(f.getDate()-1);const m=[];let D=1,w=!1;for(let g=0;g<6;g++){m[g]=[];for(let l=0;l<7;l++)if(g===0&&l<f.getDay())m[g][l]=null;else if(m[g][l]=c.getDate(),D=c.getDate(),c.setDate(c.getDate()+1),c.getDate()===1){for(let y=l+1;y<7;y++)m[g][y]=null;w=!0;break}if(w)break}return{today:i,selected:d,pageMonth:u,pageMonthName:L,pageYear:h,pageDecadeStart:N,dowNames:s.dowNames(t),dowLongNames:s.dowNames(t,"long"),dates:m,lastDayOfMonth:D,months:s.monthNames(t),monthLongNames:s.monthNames(t,"long")}}}exports.NeonDateUtils=s;
|
|
2
2
|
//# sourceMappingURL=NeonDateUtils.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDateUtils.cjs.js","sources":["../../../src/common/utils/NeonDateUtils.ts"],"sourcesContent":["import type { NeonCalendarConfig } from '@/common/models/NeonCalendarConfig';\nimport type { NeonDate } from '@/common/models/NeonDate';\n\n/**\n * Date utilities for general application use as well as internally with the\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a> component.\n */\nexport class NeonDateUtils {\n /**\n * Convert an ISO 8601 formatted string to a locale formatted date with a three letter month, a 2 digit day and a locale formatted time.\n *\n * @param date The date/time as an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO 8601</a> string.\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param strict Do not add time component to localise the date.\n *\n * @returns Object representing the provided date.\n */\n public static stringToNeonDate(date: string, locale?: string, strict = false): NeonDate {\n const loc = locale || navigator.language;\n const now = new Date();\n const dateObj = new Date(!strict && date.length === 10 ? `${date}T${now.toISOString().split('T')[1]}` : date);\n let time;\n if (date.length > 10) {\n time = dateObj.toLocaleString(\n loc,\n date.length <= 16\n ? { hour12: false, hour: '2-digit', minute: '2-digit' }\n : { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' },\n );\n }\n\n const result: NeonDate = {\n year: +dateObj.toLocaleString('en-US', { year: 'numeric' }),\n yearFormatted: dateObj.toLocaleString(loc, { year: 'numeric' }),\n month: +dateObj.toLocaleString('en-US', { month: 'numeric' }),\n monthShortName: dateObj.toLocaleString(loc, { month: 'short' }),\n monthLongName: dateObj.toLocaleString(loc, { month: 'long' }),\n day: +dateObj.toLocaleString('en-US', { day: 'numeric' }),\n dayFormatted: dateObj.toLocaleString(loc, { day: '2-digit' }),\n };\n\n if (time) {\n result.time = time;\n }\n\n return result;\n }\n\n /**\n * Convert a date object to an ISO 8601 formatted string. By default, the time is not considered.\n *\n * @param date Javascript date object.\n * @param time Whether to consider the time as part of the conversion to the ISO string.\n *\n * @returns an ISO 8601 formatted date, optionally with the time as well.\n */\n public static dateToIso(date: Date, time = false): string {\n const dateString = date.toISOString();\n return time ? dateString : dateString.split('T')[0];\n }\n\n /**\n * Convert the params received into an ISO 8601 formatted string with only date in it.\n *\n * @param day The number of the day to be used.\n * @param month The number of the month to be used.\n * @param year The number of the year to be used.\n *\n * @returns an ISO 8601 formatted date for the given parameters.\n */\n public static dmyToIso(day: number, month: number, year: number): string {\n return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;\n }\n\n /**\n * Returns the days of the week starting at Monday day name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n *\n * @returns an array with the days of the week named according to the locale received.\n */\n public static dowNames(locale?: string): Array<string> {\n const loc = locale || navigator.language;\n const date = new Date();\n\n const weekdays = [];\n while (!weekdays[date.getDay()]) {\n weekdays[date.getDay()] = date.toLocaleString(loc, { weekday: 'short' });\n date.setDate(date.getDate() + 1);\n }\n\n const sunday = weekdays.shift();\n if (sunday) {\n weekdays.push(sunday);\n }\n\n return weekdays;\n }\n\n /**\n * Returns the months of the year starting at January month name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n *\n * @returns an array with the month names of the year, all named according to the locale received.\n */\n public static monthNames(locale?: string): Array<string> {\n const loc = locale || navigator.language;\n\n return Array.from(Array(12).keys()).map((key) => {\n const date = new Date(2023, key, 15);\n return date.toLocaleString(loc, { month: 'short' });\n });\n }\n\n /**\n * Collate & return the data required to drive the calendar popup in\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a>.\n *\n * @param selectedDate ISO-8601 date-only string for the selected date.\n * @param currentPageMonth month of the current calendar page.\n * @param currentPageYear year of the current calendar page.\n * @param currentPageDecadeStart decade start year of the current calendar page.\n * @param locale user's locale.\n *\n * @returns The calendar configuration.\n */\n public static toCalendarConfiguration(\n selectedDate?: string,\n currentPageMonth?: number,\n currentPageYear?: number,\n currentPageDecadeStart?: number,\n locale?: string,\n ): NeonCalendarConfig {\n const loc = locale || navigator.language;\n const today = NeonDateUtils.stringToNeonDate(NeonDateUtils.dateToIso(new Date()), loc);\n const selected = selectedDate ? NeonDateUtils.stringToNeonDate(selectedDate, loc, true) : undefined;\n // month indexed from 1-12\n const pageMonth = currentPageMonth || today.month;\n\n // month indexed from 0-11\n const pageDate = currentPageMonth && currentPageYear ? new Date(currentPageYear, currentPageMonth - 1, 15) : null;\n const pageMonthName = pageDate?.toLocaleString(loc, { month: 'long' }) || today.monthLongName;\n const pageYear = currentPageYear || today.year;\n const pageDecadeStart = currentPageDecadeStart || Math.floor(pageYear / 10) * 10;\n\n // determine dow of first day of month. Months are indexed from 0 here\n const date = new Date(pageYear, (pageMonth + 11) % 12, 1);\n const offsetDate = new Date(pageYear, (pageMonth + 11) % 12, 1);\n offsetDate.setDate(offsetDate.getDate() - 1);\n\n const dates: Array<Array<number | null>> = [];\n\n let lastDayOfMonth = 1;\n let done = false;\n\n for (let row = 0; row < 6; row++) {\n dates[row] = [];\n\n for (let col = 0; col < 7; col++) {\n if (row === 0 && col < offsetDate.getDay()) {\n dates[row][col] = null;\n } else {\n dates[row][col] = date.getDate();\n lastDayOfMonth = date.getDate();\n date.setDate(date.getDate() + 1);\n\n if (date.getDate() === 1) {\n for (let i = col + 1; i < 7; i++) {\n dates[row][i] = null;\n }\n done = true;\n break;\n }\n }\n }\n\n if (done) {\n break;\n }\n }\n\n return {\n today,\n selected,\n pageMonth,\n pageMonthName,\n pageYear,\n pageDecadeStart,\n dowNames: NeonDateUtils.dowNames(loc),\n dates,\n lastDayOfMonth,\n months: NeonDateUtils.monthNames(loc),\n };\n }\n}\n"],"names":["NeonDateUtils","date","locale","strict","loc","now","dateObj","time","result","dateString","day","month","year","weekdays","sunday","key","selectedDate","currentPageMonth","currentPageYear","currentPageDecadeStart","today","selected","pageMonth","pageDate","pageMonthName","pageYear","pageDecadeStart","offsetDate","dates","lastDayOfMonth","done","row","col","i"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NeonDateUtils.cjs.js","sources":["../../../src/common/utils/NeonDateUtils.ts"],"sourcesContent":["import type { NeonCalendarConfig } from '@/common/models/NeonCalendarConfig';\nimport type { NeonDate } from '@/common/models/NeonDate';\n\n/**\n * Date utilities for general application use as well as internally with the\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a> component.\n */\nexport class NeonDateUtils {\n /**\n * Convert an ISO 8601 formatted string to a locale formatted date with a three letter month, a 2 digit day and a locale formatted time.\n *\n * @param date The date/time as an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO 8601</a> string.\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param strict Do not add time component to localise the date.\n *\n * @returns Object representing the provided date.\n */\n public static stringToNeonDate(date: string, locale?: string, strict = false): NeonDate {\n const loc = locale || navigator.language;\n const now = new Date();\n const dateObj = new Date(!strict && date.length === 10 ? `${date}T${now.toISOString().split('T')[1]}` : date);\n let time;\n if (date.length > 10) {\n time = dateObj.toLocaleString(\n loc,\n date.length <= 16\n ? { hour12: false, hour: '2-digit', minute: '2-digit' }\n : { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' },\n );\n }\n\n const result: NeonDate = {\n year: +dateObj.toLocaleString('en-US', { year: 'numeric' }),\n yearFormatted: dateObj.toLocaleString(loc, { year: 'numeric' }),\n month: +dateObj.toLocaleString('en-US', { month: 'numeric' }),\n monthShortName: dateObj.toLocaleString(loc, { month: 'short' }),\n monthLongName: dateObj.toLocaleString(loc, { month: 'long' }),\n day: +dateObj.toLocaleString('en-US', { day: 'numeric' }),\n dayFormatted: dateObj.toLocaleString(loc, { day: '2-digit' }),\n };\n\n if (time) {\n result.time = time;\n }\n\n return result;\n }\n\n /**\n * Convert a date object to an ISO 8601 formatted string. By default, the time is not considered.\n *\n * @param date Javascript date object.\n * @param time Whether to consider the time as part of the conversion to the ISO string.\n *\n * @returns an ISO 8601 formatted date, optionally with the time as well.\n */\n public static dateToIso(date: Date, time = false): string {\n const dateString = date.toISOString();\n return time ? dateString : dateString.split('T')[0];\n }\n\n /**\n * Convert the params received into an ISO 8601 formatted string with only date in it.\n *\n * @param day The number of the day to be used.\n * @param month The number of the month to be used.\n * @param year The number of the year to be used.\n *\n * @returns an ISO 8601 formatted date for the given parameters.\n */\n public static dmyToIso(day: number, month: number, year: number): string {\n return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;\n }\n\n /**\n * Returns the days of the week starting at Monday day name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param format The format of the returned values\n *\n * @returns an array with the days of the week named according to the locale received.\n */\n public static dowNames(locale?: string, format: 'long' | 'short' | 'narrow' = 'short'): Array<string> {\n const loc = locale || navigator.language;\n const date = new Date();\n\n const weekdays = [];\n while (!weekdays[date.getDay()]) {\n weekdays[date.getDay()] = date.toLocaleString(loc, { weekday: format });\n date.setDate(date.getDate() + 1);\n }\n\n const sunday = weekdays.shift();\n if (sunday) {\n weekdays.push(sunday);\n }\n\n return weekdays;\n }\n\n /**\n * Returns the months of the year starting at January month name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param format The format of the month names to return\n *\n * @returns an array with the month names of the year, all named according to the locale received.\n */\n public static monthNames(\n locale?: string,\n format: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' = 'short',\n ): Array<string> {\n const loc = locale || navigator.language;\n\n return Array.from(Array(12).keys()).map((key) => {\n const date = new Date(2023, key, 15);\n return date.toLocaleString(loc, { month: format });\n });\n }\n\n /**\n * Collate & return the data required to drive the calendar popup in\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a>.\n *\n * @param selectedDate ISO-8601 date-only string for the selected date.\n * @param currentPageMonth month of the current calendar page.\n * @param currentPageYear year of the current calendar page.\n * @param currentPageDecadeStart decade start year of the current calendar page.\n * @param locale user's locale.\n *\n * @returns The calendar configuration.\n */\n public static toCalendarConfiguration(\n selectedDate?: string,\n currentPageMonth?: number,\n currentPageYear?: number,\n currentPageDecadeStart?: number,\n locale?: string,\n ): NeonCalendarConfig {\n const loc = locale || navigator.language;\n const today = NeonDateUtils.stringToNeonDate(NeonDateUtils.dateToIso(new Date()), loc);\n const selected = selectedDate ? NeonDateUtils.stringToNeonDate(selectedDate, loc, true) : undefined;\n // month indexed from 1-12\n const pageMonth = currentPageMonth || today.month;\n\n // month indexed from 0-11\n const pageDate = currentPageMonth && currentPageYear ? new Date(currentPageYear, currentPageMonth - 1, 15) : null;\n const pageMonthName = pageDate?.toLocaleString(loc, { month: 'long' }) || today.monthLongName;\n const pageYear = currentPageYear || today.year;\n const pageDecadeStart = currentPageDecadeStart || Math.floor(pageYear / 10) * 10;\n\n // determine dow of first day of month. Months are indexed from 0 here\n const date = new Date(pageYear, (pageMonth + 11) % 12, 1);\n const offsetDate = new Date(pageYear, (pageMonth + 11) % 12, 1);\n offsetDate.setDate(offsetDate.getDate() - 1);\n\n const dates: Array<Array<number | null>> = [];\n\n let lastDayOfMonth = 1;\n let done = false;\n\n for (let row = 0; row < 6; row++) {\n dates[row] = [];\n\n for (let col = 0; col < 7; col++) {\n if (row === 0 && col < offsetDate.getDay()) {\n dates[row][col] = null;\n } else {\n dates[row][col] = date.getDate();\n lastDayOfMonth = date.getDate();\n date.setDate(date.getDate() + 1);\n\n if (date.getDate() === 1) {\n for (let i = col + 1; i < 7; i++) {\n dates[row][i] = null;\n }\n done = true;\n break;\n }\n }\n }\n\n if (done) {\n break;\n }\n }\n\n return {\n today,\n selected,\n pageMonth,\n pageMonthName,\n pageYear,\n pageDecadeStart,\n dowNames: NeonDateUtils.dowNames(loc),\n dowLongNames: NeonDateUtils.dowNames(loc, 'long'),\n dates,\n lastDayOfMonth,\n months: NeonDateUtils.monthNames(loc),\n monthLongNames: NeonDateUtils.monthNames(loc, 'long'),\n };\n }\n}\n"],"names":["NeonDateUtils","date","locale","strict","loc","now","dateObj","time","result","dateString","day","month","year","format","weekdays","sunday","key","selectedDate","currentPageMonth","currentPageYear","currentPageDecadeStart","today","selected","pageMonth","pageDate","pageMonthName","pageYear","pageDecadeStart","offsetDate","dates","lastDayOfMonth","done","row","col","i"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
class
|
|
1
|
+
class g {
|
|
2
2
|
/**
|
|
3
3
|
* Convert an ISO 8601 formatted string to a locale formatted date with a three letter month, a 2 digit day and a locale formatted time.
|
|
4
4
|
*
|
|
@@ -8,23 +8,23 @@ class c {
|
|
|
8
8
|
*
|
|
9
9
|
* @returns Object representing the provided date.
|
|
10
10
|
*/
|
|
11
|
-
static stringToNeonDate(
|
|
12
|
-
const
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
static stringToNeonDate(e, o, a = !1) {
|
|
12
|
+
const n = o || navigator.language, r = /* @__PURE__ */ new Date(), t = new Date(!a && e.length === 10 ? `${e}T${r.toISOString().split("T")[1]}` : e);
|
|
13
|
+
let s;
|
|
14
|
+
e.length > 10 && (s = t.toLocaleString(
|
|
15
|
+
n,
|
|
16
|
+
e.length <= 16 ? { hour12: !1, hour: "2-digit", minute: "2-digit" } : { hour12: !1, hour: "2-digit", minute: "2-digit", second: "2-digit" }
|
|
17
17
|
));
|
|
18
18
|
const d = {
|
|
19
|
-
year: +
|
|
20
|
-
yearFormatted:
|
|
21
|
-
month: +
|
|
22
|
-
monthShortName:
|
|
23
|
-
monthLongName:
|
|
24
|
-
day: +
|
|
25
|
-
dayFormatted:
|
|
19
|
+
year: +t.toLocaleString("en-US", { year: "numeric" }),
|
|
20
|
+
yearFormatted: t.toLocaleString(n, { year: "numeric" }),
|
|
21
|
+
month: +t.toLocaleString("en-US", { month: "numeric" }),
|
|
22
|
+
monthShortName: t.toLocaleString(n, { month: "short" }),
|
|
23
|
+
monthLongName: t.toLocaleString(n, { month: "long" }),
|
|
24
|
+
day: +t.toLocaleString("en-US", { day: "numeric" }),
|
|
25
|
+
dayFormatted: t.toLocaleString(n, { day: "2-digit" })
|
|
26
26
|
};
|
|
27
|
-
return
|
|
27
|
+
return s && (d.time = s), d;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Convert a date object to an ISO 8601 formatted string. By default, the time is not considered.
|
|
@@ -34,9 +34,9 @@ class c {
|
|
|
34
34
|
*
|
|
35
35
|
* @returns an ISO 8601 formatted date, optionally with the time as well.
|
|
36
36
|
*/
|
|
37
|
-
static dateToIso(
|
|
38
|
-
const
|
|
39
|
-
return o ?
|
|
37
|
+
static dateToIso(e, o = !1) {
|
|
38
|
+
const a = e.toISOString();
|
|
39
|
+
return o ? a : a.split("T")[0];
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* Convert the params received into an ISO 8601 formatted string with only date in it.
|
|
@@ -47,33 +47,35 @@ class c {
|
|
|
47
47
|
*
|
|
48
48
|
* @returns an ISO 8601 formatted date for the given parameters.
|
|
49
49
|
*/
|
|
50
|
-
static dmyToIso(
|
|
51
|
-
return `${
|
|
50
|
+
static dmyToIso(e, o, a) {
|
|
51
|
+
return `${a}-${o < 10 ? "0" + o : o}-${e < 10 ? "0" + e : e}`;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* Returns the days of the week starting at Monday day name translated using the locale received as a first element.
|
|
55
55
|
*
|
|
56
56
|
* @param locale The locale for which to convert the date for display purposes, defaults to browser locale.
|
|
57
|
+
* @param format The format of the returned values
|
|
57
58
|
*
|
|
58
59
|
* @returns an array with the days of the week named according to the locale received.
|
|
59
60
|
*/
|
|
60
|
-
static dowNames(
|
|
61
|
-
const
|
|
62
|
-
for (; !
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
return
|
|
61
|
+
static dowNames(e, o = "short") {
|
|
62
|
+
const a = e || navigator.language, n = /* @__PURE__ */ new Date(), r = [];
|
|
63
|
+
for (; !r[n.getDay()]; )
|
|
64
|
+
r[n.getDay()] = n.toLocaleString(a, { weekday: o }), n.setDate(n.getDate() + 1);
|
|
65
|
+
const t = r.shift();
|
|
66
|
+
return t && r.push(t), r;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Returns the months of the year starting at January month name translated using the locale received as a first element.
|
|
69
70
|
*
|
|
70
71
|
* @param locale The locale for which to convert the date for display purposes, defaults to browser locale.
|
|
72
|
+
* @param format The format of the month names to return
|
|
71
73
|
*
|
|
72
74
|
* @returns an array with the month names of the year, all named according to the locale received.
|
|
73
75
|
*/
|
|
74
|
-
static monthNames(
|
|
75
|
-
const
|
|
76
|
-
return Array.from(Array(12).keys()).map((
|
|
76
|
+
static monthNames(e, o = "short") {
|
|
77
|
+
const a = e || navigator.language;
|
|
78
|
+
return Array.from(Array(12).keys()).map((n) => new Date(2023, n, 15).toLocaleString(a, { month: o }));
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
79
81
|
* Collate & return the data required to drive the calendar popup in
|
|
@@ -87,40 +89,42 @@ class c {
|
|
|
87
89
|
*
|
|
88
90
|
* @returns The calendar configuration.
|
|
89
91
|
*/
|
|
90
|
-
static toCalendarConfiguration(
|
|
91
|
-
const
|
|
92
|
+
static toCalendarConfiguration(e, o, a, n, r) {
|
|
93
|
+
const t = r || navigator.language, s = g.stringToNeonDate(g.dateToIso(/* @__PURE__ */ new Date()), t), d = e ? g.stringToNeonDate(e, t, !0) : void 0, u = o || s.month, f = o && a ? new Date(a, o - 1, 15) : null, L = (f == null ? void 0 : f.toLocaleString(t, { month: "long" })) || s.monthLongName, h = a || s.year, N = n || Math.floor(h / 10) * 10, l = new Date(h, (u + 11) % 12, 1), S = new Date(h, (u + 11) % 12, 1);
|
|
92
94
|
S.setDate(S.getDate() - 1);
|
|
93
95
|
const m = [];
|
|
94
|
-
let
|
|
95
|
-
for (let
|
|
96
|
-
m[
|
|
97
|
-
for (let
|
|
98
|
-
if (
|
|
99
|
-
m[
|
|
100
|
-
else if (m[
|
|
101
|
-
for (let
|
|
102
|
-
m[
|
|
103
|
-
|
|
96
|
+
let w = 1, D = !1;
|
|
97
|
+
for (let i = 0; i < 6; i++) {
|
|
98
|
+
m[i] = [];
|
|
99
|
+
for (let c = 0; c < 7; c++)
|
|
100
|
+
if (i === 0 && c < S.getDay())
|
|
101
|
+
m[i][c] = null;
|
|
102
|
+
else if (m[i][c] = l.getDate(), w = l.getDate(), l.setDate(l.getDate() + 1), l.getDate() === 1) {
|
|
103
|
+
for (let y = c + 1; y < 7; y++)
|
|
104
|
+
m[i][y] = null;
|
|
105
|
+
D = !0;
|
|
104
106
|
break;
|
|
105
107
|
}
|
|
106
|
-
if (
|
|
108
|
+
if (D)
|
|
107
109
|
break;
|
|
108
110
|
}
|
|
109
111
|
return {
|
|
110
|
-
today:
|
|
112
|
+
today: s,
|
|
111
113
|
selected: d,
|
|
112
114
|
pageMonth: u,
|
|
113
115
|
pageMonthName: L,
|
|
114
116
|
pageYear: h,
|
|
115
|
-
pageDecadeStart:
|
|
116
|
-
dowNames:
|
|
117
|
+
pageDecadeStart: N,
|
|
118
|
+
dowNames: g.dowNames(t),
|
|
119
|
+
dowLongNames: g.dowNames(t, "long"),
|
|
117
120
|
dates: m,
|
|
118
|
-
lastDayOfMonth:
|
|
119
|
-
months:
|
|
121
|
+
lastDayOfMonth: w,
|
|
122
|
+
months: g.monthNames(t),
|
|
123
|
+
monthLongNames: g.monthNames(t, "long")
|
|
120
124
|
};
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
export {
|
|
124
|
-
|
|
128
|
+
g as NeonDateUtils
|
|
125
129
|
};
|
|
126
130
|
//# sourceMappingURL=NeonDateUtils.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDateUtils.es.js","sources":["../../../src/common/utils/NeonDateUtils.ts"],"sourcesContent":["import type { NeonCalendarConfig } from '@/common/models/NeonCalendarConfig';\nimport type { NeonDate } from '@/common/models/NeonDate';\n\n/**\n * Date utilities for general application use as well as internally with the\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a> component.\n */\nexport class NeonDateUtils {\n /**\n * Convert an ISO 8601 formatted string to a locale formatted date with a three letter month, a 2 digit day and a locale formatted time.\n *\n * @param date The date/time as an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO 8601</a> string.\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param strict Do not add time component to localise the date.\n *\n * @returns Object representing the provided date.\n */\n public static stringToNeonDate(date: string, locale?: string, strict = false): NeonDate {\n const loc = locale || navigator.language;\n const now = new Date();\n const dateObj = new Date(!strict && date.length === 10 ? `${date}T${now.toISOString().split('T')[1]}` : date);\n let time;\n if (date.length > 10) {\n time = dateObj.toLocaleString(\n loc,\n date.length <= 16\n ? { hour12: false, hour: '2-digit', minute: '2-digit' }\n : { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' },\n );\n }\n\n const result: NeonDate = {\n year: +dateObj.toLocaleString('en-US', { year: 'numeric' }),\n yearFormatted: dateObj.toLocaleString(loc, { year: 'numeric' }),\n month: +dateObj.toLocaleString('en-US', { month: 'numeric' }),\n monthShortName: dateObj.toLocaleString(loc, { month: 'short' }),\n monthLongName: dateObj.toLocaleString(loc, { month: 'long' }),\n day: +dateObj.toLocaleString('en-US', { day: 'numeric' }),\n dayFormatted: dateObj.toLocaleString(loc, { day: '2-digit' }),\n };\n\n if (time) {\n result.time = time;\n }\n\n return result;\n }\n\n /**\n * Convert a date object to an ISO 8601 formatted string. By default, the time is not considered.\n *\n * @param date Javascript date object.\n * @param time Whether to consider the time as part of the conversion to the ISO string.\n *\n * @returns an ISO 8601 formatted date, optionally with the time as well.\n */\n public static dateToIso(date: Date, time = false): string {\n const dateString = date.toISOString();\n return time ? dateString : dateString.split('T')[0];\n }\n\n /**\n * Convert the params received into an ISO 8601 formatted string with only date in it.\n *\n * @param day The number of the day to be used.\n * @param month The number of the month to be used.\n * @param year The number of the year to be used.\n *\n * @returns an ISO 8601 formatted date for the given parameters.\n */\n public static dmyToIso(day: number, month: number, year: number): string {\n return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;\n }\n\n /**\n * Returns the days of the week starting at Monday day name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n *\n * @returns an array with the days of the week named according to the locale received.\n */\n public static dowNames(locale?: string): Array<string> {\n const loc = locale || navigator.language;\n const date = new Date();\n\n const weekdays = [];\n while (!weekdays[date.getDay()]) {\n weekdays[date.getDay()] = date.toLocaleString(loc, { weekday: 'short' });\n date.setDate(date.getDate() + 1);\n }\n\n const sunday = weekdays.shift();\n if (sunday) {\n weekdays.push(sunday);\n }\n\n return weekdays;\n }\n\n /**\n * Returns the months of the year starting at January month name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n *\n * @returns an array with the month names of the year, all named according to the locale received.\n */\n public static monthNames(locale?: string): Array<string> {\n const loc = locale || navigator.language;\n\n return Array.from(Array(12).keys()).map((key) => {\n const date = new Date(2023, key, 15);\n return date.toLocaleString(loc, { month: 'short' });\n });\n }\n\n /**\n * Collate & return the data required to drive the calendar popup in\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a>.\n *\n * @param selectedDate ISO-8601 date-only string for the selected date.\n * @param currentPageMonth month of the current calendar page.\n * @param currentPageYear year of the current calendar page.\n * @param currentPageDecadeStart decade start year of the current calendar page.\n * @param locale user's locale.\n *\n * @returns The calendar configuration.\n */\n public static toCalendarConfiguration(\n selectedDate?: string,\n currentPageMonth?: number,\n currentPageYear?: number,\n currentPageDecadeStart?: number,\n locale?: string,\n ): NeonCalendarConfig {\n const loc = locale || navigator.language;\n const today = NeonDateUtils.stringToNeonDate(NeonDateUtils.dateToIso(new Date()), loc);\n const selected = selectedDate ? NeonDateUtils.stringToNeonDate(selectedDate, loc, true) : undefined;\n // month indexed from 1-12\n const pageMonth = currentPageMonth || today.month;\n\n // month indexed from 0-11\n const pageDate = currentPageMonth && currentPageYear ? new Date(currentPageYear, currentPageMonth - 1, 15) : null;\n const pageMonthName = pageDate?.toLocaleString(loc, { month: 'long' }) || today.monthLongName;\n const pageYear = currentPageYear || today.year;\n const pageDecadeStart = currentPageDecadeStart || Math.floor(pageYear / 10) * 10;\n\n // determine dow of first day of month. Months are indexed from 0 here\n const date = new Date(pageYear, (pageMonth + 11) % 12, 1);\n const offsetDate = new Date(pageYear, (pageMonth + 11) % 12, 1);\n offsetDate.setDate(offsetDate.getDate() - 1);\n\n const dates: Array<Array<number | null>> = [];\n\n let lastDayOfMonth = 1;\n let done = false;\n\n for (let row = 0; row < 6; row++) {\n dates[row] = [];\n\n for (let col = 0; col < 7; col++) {\n if (row === 0 && col < offsetDate.getDay()) {\n dates[row][col] = null;\n } else {\n dates[row][col] = date.getDate();\n lastDayOfMonth = date.getDate();\n date.setDate(date.getDate() + 1);\n\n if (date.getDate() === 1) {\n for (let i = col + 1; i < 7; i++) {\n dates[row][i] = null;\n }\n done = true;\n break;\n }\n }\n }\n\n if (done) {\n break;\n }\n }\n\n return {\n today,\n selected,\n pageMonth,\n pageMonthName,\n pageYear,\n pageDecadeStart,\n dowNames: NeonDateUtils.dowNames(loc),\n dates,\n lastDayOfMonth,\n months: NeonDateUtils.monthNames(loc),\n };\n }\n}\n"],"names":["NeonDateUtils","date","locale","strict","loc","now","dateObj","time","result","dateString","day","month","year","weekdays","sunday","key","selectedDate","currentPageMonth","currentPageYear","currentPageDecadeStart","today","selected","pageMonth","pageDate","pageMonthName","pageYear","pageDecadeStart","offsetDate","dates","lastDayOfMonth","done","row","col","i"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NeonDateUtils.es.js","sources":["../../../src/common/utils/NeonDateUtils.ts"],"sourcesContent":["import type { NeonCalendarConfig } from '@/common/models/NeonCalendarConfig';\nimport type { NeonDate } from '@/common/models/NeonDate';\n\n/**\n * Date utilities for general application use as well as internally with the\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a> component.\n */\nexport class NeonDateUtils {\n /**\n * Convert an ISO 8601 formatted string to a locale formatted date with a three letter month, a 2 digit day and a locale formatted time.\n *\n * @param date The date/time as an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\">ISO 8601</a> string.\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param strict Do not add time component to localise the date.\n *\n * @returns Object representing the provided date.\n */\n public static stringToNeonDate(date: string, locale?: string, strict = false): NeonDate {\n const loc = locale || navigator.language;\n const now = new Date();\n const dateObj = new Date(!strict && date.length === 10 ? `${date}T${now.toISOString().split('T')[1]}` : date);\n let time;\n if (date.length > 10) {\n time = dateObj.toLocaleString(\n loc,\n date.length <= 16\n ? { hour12: false, hour: '2-digit', minute: '2-digit' }\n : { hour12: false, hour: '2-digit', minute: '2-digit', second: '2-digit' },\n );\n }\n\n const result: NeonDate = {\n year: +dateObj.toLocaleString('en-US', { year: 'numeric' }),\n yearFormatted: dateObj.toLocaleString(loc, { year: 'numeric' }),\n month: +dateObj.toLocaleString('en-US', { month: 'numeric' }),\n monthShortName: dateObj.toLocaleString(loc, { month: 'short' }),\n monthLongName: dateObj.toLocaleString(loc, { month: 'long' }),\n day: +dateObj.toLocaleString('en-US', { day: 'numeric' }),\n dayFormatted: dateObj.toLocaleString(loc, { day: '2-digit' }),\n };\n\n if (time) {\n result.time = time;\n }\n\n return result;\n }\n\n /**\n * Convert a date object to an ISO 8601 formatted string. By default, the time is not considered.\n *\n * @param date Javascript date object.\n * @param time Whether to consider the time as part of the conversion to the ISO string.\n *\n * @returns an ISO 8601 formatted date, optionally with the time as well.\n */\n public static dateToIso(date: Date, time = false): string {\n const dateString = date.toISOString();\n return time ? dateString : dateString.split('T')[0];\n }\n\n /**\n * Convert the params received into an ISO 8601 formatted string with only date in it.\n *\n * @param day The number of the day to be used.\n * @param month The number of the month to be used.\n * @param year The number of the year to be used.\n *\n * @returns an ISO 8601 formatted date for the given parameters.\n */\n public static dmyToIso(day: number, month: number, year: number): string {\n return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;\n }\n\n /**\n * Returns the days of the week starting at Monday day name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param format The format of the returned values\n *\n * @returns an array with the days of the week named according to the locale received.\n */\n public static dowNames(locale?: string, format: 'long' | 'short' | 'narrow' = 'short'): Array<string> {\n const loc = locale || navigator.language;\n const date = new Date();\n\n const weekdays = [];\n while (!weekdays[date.getDay()]) {\n weekdays[date.getDay()] = date.toLocaleString(loc, { weekday: format });\n date.setDate(date.getDate() + 1);\n }\n\n const sunday = weekdays.shift();\n if (sunday) {\n weekdays.push(sunday);\n }\n\n return weekdays;\n }\n\n /**\n * Returns the months of the year starting at January month name translated using the locale received as a first element.\n *\n * @param locale The locale for which to convert the date for display purposes, defaults to browser locale.\n * @param format The format of the month names to return\n *\n * @returns an array with the month names of the year, all named according to the locale received.\n */\n public static monthNames(\n locale?: string,\n format: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' = 'short',\n ): Array<string> {\n const loc = locale || navigator.language;\n\n return Array.from(Array(12).keys()).map((key) => {\n const date = new Date(2023, key, 15);\n return date.toLocaleString(loc, { month: format });\n });\n }\n\n /**\n * Collate & return the data required to drive the calendar popup in\n * <a href=\"/user-input/date-picker\">NeonDatePicker</a>.\n *\n * @param selectedDate ISO-8601 date-only string for the selected date.\n * @param currentPageMonth month of the current calendar page.\n * @param currentPageYear year of the current calendar page.\n * @param currentPageDecadeStart decade start year of the current calendar page.\n * @param locale user's locale.\n *\n * @returns The calendar configuration.\n */\n public static toCalendarConfiguration(\n selectedDate?: string,\n currentPageMonth?: number,\n currentPageYear?: number,\n currentPageDecadeStart?: number,\n locale?: string,\n ): NeonCalendarConfig {\n const loc = locale || navigator.language;\n const today = NeonDateUtils.stringToNeonDate(NeonDateUtils.dateToIso(new Date()), loc);\n const selected = selectedDate ? NeonDateUtils.stringToNeonDate(selectedDate, loc, true) : undefined;\n // month indexed from 1-12\n const pageMonth = currentPageMonth || today.month;\n\n // month indexed from 0-11\n const pageDate = currentPageMonth && currentPageYear ? new Date(currentPageYear, currentPageMonth - 1, 15) : null;\n const pageMonthName = pageDate?.toLocaleString(loc, { month: 'long' }) || today.monthLongName;\n const pageYear = currentPageYear || today.year;\n const pageDecadeStart = currentPageDecadeStart || Math.floor(pageYear / 10) * 10;\n\n // determine dow of first day of month. Months are indexed from 0 here\n const date = new Date(pageYear, (pageMonth + 11) % 12, 1);\n const offsetDate = new Date(pageYear, (pageMonth + 11) % 12, 1);\n offsetDate.setDate(offsetDate.getDate() - 1);\n\n const dates: Array<Array<number | null>> = [];\n\n let lastDayOfMonth = 1;\n let done = false;\n\n for (let row = 0; row < 6; row++) {\n dates[row] = [];\n\n for (let col = 0; col < 7; col++) {\n if (row === 0 && col < offsetDate.getDay()) {\n dates[row][col] = null;\n } else {\n dates[row][col] = date.getDate();\n lastDayOfMonth = date.getDate();\n date.setDate(date.getDate() + 1);\n\n if (date.getDate() === 1) {\n for (let i = col + 1; i < 7; i++) {\n dates[row][i] = null;\n }\n done = true;\n break;\n }\n }\n }\n\n if (done) {\n break;\n }\n }\n\n return {\n today,\n selected,\n pageMonth,\n pageMonthName,\n pageYear,\n pageDecadeStart,\n dowNames: NeonDateUtils.dowNames(loc),\n dowLongNames: NeonDateUtils.dowNames(loc, 'long'),\n dates,\n lastDayOfMonth,\n months: NeonDateUtils.monthNames(loc),\n monthLongNames: NeonDateUtils.monthNames(loc, 'long'),\n };\n }\n}\n"],"names":["NeonDateUtils","date","locale","strict","loc","now","dateObj","time","result","dateString","day","month","year","format","weekdays","sunday","key","selectedDate","currentPageMonth","currentPageYear","currentPageDecadeStart","today","selected","pageMonth","pageDate","pageMonthName","pageYear","pageDecadeStart","offsetDate","dates","lastDayOfMonth","done","row","col","i"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var n=(c,a,s)=>a in c?i(c,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):c[a]=s;var o=(c,a,s)=>n(c,typeof a!="symbol"?a+"":a,s);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../enums/NeonMode.cjs.js"),e=class e{static init(a,s){a&&(e.defaultMode=a,e.mode=a),s&&(e.callback=s),e.switchMode(e.mode),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").addEventListener("change",e.onLightChange))}static destroy(){window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",e.onDarkChange),window.matchMedia("(prefers-color-scheme: light)").removeEventListener("change",e.onLightChange)}static switchMode(a){switch(e.mode=a,a){case t.NeonMode.Light:e.updateClasses(!1);break;case t.NeonMode.Dark:e.updateClasses(!0);break;case t.NeonMode.System:window.matchMedia("(prefers-color-scheme: dark)").matches?(e.updateClasses(!0),e.callback&&e.callback(!0)):window.matchMedia("(prefers-color-scheme: light)").matches?(e.updateClasses(!1),e.callback&&e.callback(!1)):(e.updateClasses(e.defaultMode===t.NeonMode.Dark),e.callback&&e.callback(e.defaultMode===t.NeonMode.Dark));break}}static getMode(){return e.mode}static onDarkChange(a){e.mode===t.NeonMode.System&&a.matches&&(e.updateClasses(!0),e.callback&&e.callback(!0))}static onLightChange(a){e.mode===t.NeonMode.System&&a.matches&&(e.updateClasses(!1),e.callback&&e.callback(!1))}static updateClasses(a){document.documentElement.classList.remove(`neon-mode--${a?t.NeonMode.Light:t.NeonMode.Dark}`),document.documentElement.classList.add(`neon-mode--${a?t.NeonMode.Dark:t.NeonMode.Light}`)}};o(e,"defaultMode",t.NeonMode.Light),o(e,"mode",t.NeonMode.Light),o(e,"callback",null);let d=e;exports.NeonModeUtils=d;
|
|
2
2
|
//# sourceMappingURL=NeonModeUtils.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonModeUtils.cjs.js","sources":["../../../src/common/utils/NeonModeUtils.ts"],"sourcesContent":["import { NeonMode } from '../enums/NeonMode';\n\n/**\n * Utility for managing Neon's light
|
|
1
|
+
{"version":3,"file":"NeonModeUtils.cjs.js","sources":["../../../src/common/utils/NeonModeUtils.ts"],"sourcesContent":["import { NeonMode } from '../enums/NeonMode';\n\n/**\n * Utility for managing Neon's light/dark mode & defaulting to the user's preference. See\n * <a href=\"https://neon.development.arcual.art/design/theming#dark-mode\">Dark mode</a>.\n */\nexport class NeonModeUtils {\n private static defaultMode = NeonMode.Light;\n private static mode = NeonMode.Light;\n private static callback: ((isDark: boolean) => void) | null = null;\n\n /**\n * Set the initial mode.\n *\n * @param defaultMode The initial mode to set\n * @param callback An optional callback to be triggered when using NeonMode.System indicating changes in the current\n * light/dark mode set internally by this class.\n */\n public static init(defaultMode?: NeonMode, callback?: (isDark: boolean) => void) {\n if (defaultMode) {\n NeonModeUtils.defaultMode = defaultMode;\n NeonModeUtils.mode = defaultMode;\n }\n\n if (callback) {\n NeonModeUtils.callback = callback;\n }\n\n NeonModeUtils.switchMode(NeonModeUtils.mode);\n\n if (window.matchMedia) {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', NeonModeUtils.onDarkChange);\n window.matchMedia('(prefers-color-scheme: light)').addEventListener('change', NeonModeUtils.onLightChange);\n }\n }\n\n /**\n * Remove system listeners\n *\n */\n public static destroy() {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', NeonModeUtils.onDarkChange);\n window.matchMedia('(prefers-color-scheme: light)').removeEventListener('change', NeonModeUtils.onLightChange);\n }\n\n /**\n * Switch the current mode.\n * @param mode the mode to switch to.\n */\n public static switchMode(mode: NeonMode) {\n NeonModeUtils.mode = mode;\n switch (mode) {\n case NeonMode.Light:\n NeonModeUtils.updateClasses(false);\n break;\n case NeonMode.Dark:\n NeonModeUtils.updateClasses(true);\n break;\n case NeonMode.System:\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n NeonModeUtils.updateClasses(true);\n if (NeonModeUtils.callback) {\n NeonModeUtils.callback(true);\n }\n } else if (window.matchMedia('(prefers-color-scheme: light)').matches) {\n NeonModeUtils.updateClasses(false);\n if (NeonModeUtils.callback) {\n NeonModeUtils.callback(false);\n }\n } else {\n NeonModeUtils.updateClasses(NeonModeUtils.defaultMode === NeonMode.Dark);\n if (NeonModeUtils.callback) {\n NeonModeUtils.callback(NeonModeUtils.defaultMode === NeonMode.Dark);\n }\n }\n break;\n }\n }\n\n /**\n * Get the current mode.\n *\n * @returns The current user light or dark mode.\n */\n public static getMode() {\n return NeonModeUtils.mode;\n }\n\n static onDarkChange(e: MediaQueryListEvent) {\n if (NeonModeUtils.mode === NeonMode.System && e.matches) {\n NeonModeUtils.updateClasses(true);\n if (NeonModeUtils.callback) {\n NeonModeUtils.callback(true);\n }\n }\n }\n\n static onLightChange(e: MediaQueryListEvent) {\n if (NeonModeUtils.mode === NeonMode.System && e.matches) {\n NeonModeUtils.updateClasses(false);\n if (NeonModeUtils.callback) {\n NeonModeUtils.callback(false);\n }\n }\n }\n\n private static updateClasses(isDark: boolean) {\n document.documentElement.classList.remove(`neon-mode--${isDark ? NeonMode.Light : NeonMode.Dark}`);\n document.documentElement.classList.add(`neon-mode--${isDark ? NeonMode.Dark : NeonMode.Light}`);\n }\n}\n"],"names":["_NeonModeUtils","defaultMode","callback","mode","NeonMode","e","isDark","__publicField","NeonModeUtils"],"mappings":"gSAMaA,EAAN,MAAMA,CAAc,CAYzB,OAAc,KAAKC,EAAwBC,EAAsC,CAC3ED,IACFD,EAAc,YAAcC,EAC5BD,EAAc,KAAOC,GAGnBC,IACFF,EAAc,SAAWE,GAG3BF,EAAc,WAAWA,EAAc,IAAI,EAEvC,OAAO,aACT,OAAO,WAAW,8BAA8B,EAAE,iBAAiB,SAAUA,EAAc,YAAY,EACvG,OAAO,WAAW,+BAA+B,EAAE,iBAAiB,SAAUA,EAAc,aAAa,EAE7G,CAMA,OAAc,SAAU,CACtB,OAAO,WAAW,8BAA8B,EAAE,oBAAoB,SAAUA,EAAc,YAAY,EAC1G,OAAO,WAAW,+BAA+B,EAAE,oBAAoB,SAAUA,EAAc,aAAa,CAC9G,CAMA,OAAc,WAAWG,EAAgB,CAEvC,OADAH,EAAc,KAAOG,EACbA,EAAA,CACN,KAAKC,EAAAA,SAAS,MACZJ,EAAc,cAAc,EAAK,EACjC,MACF,KAAKI,EAAAA,SAAS,KACZJ,EAAc,cAAc,EAAI,EAChC,MACF,KAAKI,EAAAA,SAAS,OACR,OAAO,WAAW,8BAA8B,EAAE,SACpDJ,EAAc,cAAc,EAAI,EAC5BA,EAAc,UAChBA,EAAc,SAAS,EAAI,GAEpB,OAAO,WAAW,+BAA+B,EAAE,SAC5DA,EAAc,cAAc,EAAK,EAC7BA,EAAc,UAChBA,EAAc,SAAS,EAAK,IAG9BA,EAAc,cAAcA,EAAc,cAAgBI,EAAAA,SAAS,IAAI,EACnEJ,EAAc,UAChBA,EAAc,SAASA,EAAc,cAAgBI,EAAAA,SAAS,IAAI,GAGtE,KAAA,CAEN,CAOA,OAAc,SAAU,CACtB,OAAOJ,EAAc,IACvB,CAEA,OAAO,aAAaK,EAAwB,CACtCL,EAAc,OAASI,EAAAA,SAAS,QAAUC,EAAE,UAC9CL,EAAc,cAAc,EAAI,EAC5BA,EAAc,UAChBA,EAAc,SAAS,EAAI,EAGjC,CAEA,OAAO,cAAcK,EAAwB,CACvCL,EAAc,OAASI,EAAAA,SAAS,QAAUC,EAAE,UAC9CL,EAAc,cAAc,EAAK,EAC7BA,EAAc,UAChBA,EAAc,SAAS,EAAK,EAGlC,CAEA,OAAe,cAAcM,EAAiB,CAC5C,SAAS,gBAAgB,UAAU,OAAO,cAAcA,EAASF,EAAAA,SAAS,MAAQA,WAAS,IAAI,EAAE,EACjG,SAAS,gBAAgB,UAAU,IAAI,cAAcE,EAASF,EAAAA,SAAS,KAAOA,WAAS,KAAK,EAAE,CAChG,CACF,EAvGEG,EADWP,EACI,cAAcI,EAAAA,SAAS,OACtCG,EAFWP,EAEI,OAAOI,EAAAA,SAAS,OAC/BG,EAHWP,EAGI,WAA+C,MAHzD,IAAMQ,EAANR"}
|