@aotearoan/neon 9.2.8 → 9.3.0
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/components/navigation/link/NeonLink.cjs.js +1 -1
- package/dist/components/navigation/link/NeonLink.es.js +15 -6
- package/dist/components/navigation/link/NeonLink.es.js.map +1 -1
- package/dist/components/navigation/link/{NeonLink.ts_vue_type_script_src_037ccc85_lang.cjs.js → NeonLink.ts_vue_type_script_src_5a48e750_lang.cjs.js} +1 -1
- package/dist/components/navigation/link/{NeonLink.ts_vue_type_script_src_037ccc85_lang.cjs.js.map → NeonLink.ts_vue_type_script_src_5a48e750_lang.cjs.js.map} +1 -1
- package/dist/components/navigation/link/{NeonLink.ts_vue_type_script_src_037ccc85_lang.es.js → NeonLink.ts_vue_type_script_src_5a48e750_lang.es.js} +1 -1
- package/dist/components/navigation/link/{NeonLink.ts_vue_type_script_src_037ccc85_lang.es.js.map → NeonLink.ts_vue_type_script_src_5a48e750_lang.es.js.map} +1 -1
- package/dist/components/presentation/icon/NeonIcon.cjs.js +1 -1
- package/dist/components/presentation/icon/NeonIcon.es.js +6 -2
- package/dist/components/presentation/icon/NeonIcon.es.js.map +1 -1
- package/dist/components/presentation/icon/{NeonIcon.ts_vue_type_script_src_3580e0c3_lang.cjs.js → NeonIcon.ts_vue_type_script_src_d3713f20_lang.cjs.js} +1 -1
- package/dist/components/presentation/icon/{NeonIcon.ts_vue_type_script_src_3580e0c3_lang.cjs.js.map → NeonIcon.ts_vue_type_script_src_d3713f20_lang.cjs.js.map} +1 -1
- package/dist/components/presentation/icon/{NeonIcon.ts_vue_type_script_src_3580e0c3_lang.es.js → NeonIcon.ts_vue_type_script_src_d3713f20_lang.es.js} +1 -1
- package/dist/components/presentation/icon/{NeonIcon.ts_vue_type_script_src_3580e0c3_lang.es.js.map → NeonIcon.ts_vue_type_script_src_d3713f20_lang.es.js.map} +1 -1
- package/dist/components/user-input/button/NeonButton.cjs.js +1 -1
- package/dist/components/user-input/button/NeonButton.es.js +3 -7
- package/dist/components/user-input/button/NeonButton.es.js.map +1 -1
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js +2 -0
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js.map +1 -0
- package/dist/components/user-input/button/{NeonButton.ts_vue_type_script_src_32308d32_lang.es.js → NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js} +5 -2
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js.map +1 -0
- package/dist/components/user-input/date-picker/NeonDatePicker.cjs.js +1 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.es.js +2 -1
- package/dist/components/user-input/date-picker/NeonDatePicker.es.js.map +1 -1
- package/dist/components/user-input/date-picker/{NeonDatePicker.ts_vue_type_script_src_01c3f912_lang.cjs.js → NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.cjs.js} +1 -1
- package/dist/components/user-input/date-picker/{NeonDatePicker.ts_vue_type_script_src_01c3f912_lang.cjs.js.map → NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.cjs.js.map} +1 -1
- package/dist/components/user-input/date-picker/{NeonDatePicker.ts_vue_type_script_src_01c3f912_lang.es.js → NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.es.js} +1 -1
- package/dist/components/user-input/date-picker/{NeonDatePicker.ts_vue_type_script_src_01c3f912_lang.es.js.map → NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.es.js.map} +1 -1
- package/dist/components/user-input/input/NeonInput.cjs.js +1 -1
- package/dist/components/user-input/input/NeonInput.es.js +3 -2
- package/dist/components/user-input/input/NeonInput.es.js.map +1 -1
- package/dist/components/user-input/input/{NeonInput.ts_vue_type_script_src_62c5c4a9_lang.cjs.js → NeonInput.ts_vue_type_script_src_2bebb33c_lang.cjs.js} +1 -1
- package/dist/components/user-input/input/{NeonInput.ts_vue_type_script_src_62c5c4a9_lang.cjs.js.map → NeonInput.ts_vue_type_script_src_2bebb33c_lang.cjs.js.map} +1 -1
- package/dist/components/user-input/input/{NeonInput.ts_vue_type_script_src_62c5c4a9_lang.es.js → NeonInput.ts_vue_type_script_src_2bebb33c_lang.es.js} +1 -1
- package/dist/components/user-input/input/{NeonInput.ts_vue_type_script_src_62c5c4a9_lang.es.js.map → NeonInput.ts_vue_type_script_src_2bebb33c_lang.es.js.map} +1 -1
- package/dist/src/common/enums/NeonAlertLevel.d.ts +6 -0
- package/dist/src/common/enums/NeonAlertPlacement.d.ts +6 -0
- package/dist/src/common/enums/NeonButtonSize.d.ts +6 -0
- package/dist/src/common/enums/NeonButtonStyle.d.ts +5 -0
- package/dist/src/common/enums/NeonChipAction.d.ts +4 -0
- package/dist/src/common/enums/NeonDropdownPlacement.d.ts +10 -0
- package/dist/src/common/enums/NeonDropdownStyle.d.ts +6 -0
- package/dist/src/common/enums/NeonFunctionalColor.d.ts +11 -0
- package/dist/src/common/enums/NeonHorizontalPosition.d.ts +4 -0
- package/dist/src/common/enums/NeonInputMode.d.ts +10 -0
- package/dist/src/common/enums/NeonInputType.d.ts +14 -0
- package/dist/src/common/enums/NeonLabelSize.d.ts +4 -0
- package/dist/src/common/enums/NeonMode.d.ts +4 -0
- package/dist/src/common/enums/NeonOrientation.d.ts +4 -0
- package/dist/src/common/enums/NeonOutlineStyle.d.ts +7 -0
- package/dist/src/common/enums/NeonPlacement.d.ts +6 -0
- package/dist/src/common/enums/NeonPosition.d.ts +6 -0
- package/dist/src/common/enums/NeonResponsive.d.ts +11 -0
- package/dist/src/common/enums/NeonSize.d.ts +5 -0
- package/dist/src/common/enums/NeonSplashLoaderSize.d.ts +6 -0
- package/dist/src/common/enums/NeonState.d.ts +6 -0
- package/dist/src/common/enums/NeonSwitchStyle.d.ts +4 -0
- package/dist/src/common/enums/NeonToggleStyle.d.ts +4 -0
- package/dist/src/common/enums/NeonTooltipStyle.d.ts +4 -0
- package/dist/src/common/enums/NeonVerticalPosition.d.ts +4 -0
- package/dist/src/common/models/NeonActionMenuModel.d.ts +7 -0
- package/dist/src/common/models/NeonAlertAction.d.ts +13 -0
- package/dist/src/common/models/NeonAlertMessage.d.ts +38 -0
- package/dist/src/common/models/NeonAvailableSpace.d.ts +9 -0
- package/dist/src/common/models/NeonCalendarConfig.d.ts +13 -0
- package/dist/src/common/models/NeonContrastAccessibility.d.ts +7 -0
- package/dist/src/common/models/NeonDate.d.ts +10 -0
- package/dist/src/common/models/NeonDropdownMenuItem.d.ts +10 -0
- package/dist/src/common/models/NeonDropdownPlacementObject.d.ts +23 -0
- package/dist/src/common/models/NeonFilterListItem.d.ts +9 -0
- package/dist/src/common/models/NeonGridModel.d.ts +19 -0
- package/dist/src/common/models/NeonListItem.d.ts +7 -0
- package/dist/src/common/models/NeonMenuItem.d.ts +7 -0
- package/dist/src/common/models/NeonMenuModel.d.ts +4 -0
- package/dist/src/common/models/NeonNumberFormatOptions.d.ts +6 -0
- package/dist/src/common/models/NeonSearchOption.d.ts +11 -0
- package/dist/src/common/models/NeonSelectGroup.d.ts +8 -0
- package/dist/src/common/models/NeonSelectOption.d.ts +10 -0
- package/dist/src/common/models/NeonTabModel.d.ts +5 -0
- package/dist/src/common/models/NeonToastMessage.d.ts +23 -0
- package/dist/src/common/models/NeonToggleModel.d.ts +6 -0
- package/dist/src/common/models/NeonTreeMenuLinkModel.d.ts +6 -0
- package/dist/src/common/models/NeonTreeMenuSectionModel.d.ts +8 -0
- package/dist/src/common/utils/NeonAlertService.d.ts +29 -0
- package/dist/src/common/utils/NeonClipboardService.d.ts +6 -0
- package/dist/src/common/utils/NeonClosableUtils.d.ts +11 -0
- package/dist/src/common/utils/NeonColorUtils.d.ts +43 -0
- package/dist/src/common/utils/NeonDateUtils.d.ts +16 -0
- package/dist/src/common/utils/NeonDebounceUtils.d.ts +5 -0
- package/dist/src/common/utils/NeonDropdownPlacementUtils.d.ts +6 -0
- package/dist/src/common/utils/NeonEventBus.d.ts +27 -0
- package/dist/src/common/utils/NeonIconRegistry.d.ts +8 -0
- package/dist/src/common/utils/NeonModeUtils.d.ts +15 -0
- package/dist/src/common/utils/NeonNumberUtils.d.ts +10 -0
- package/dist/src/common/utils/NeonPlacementUtils.d.ts +8 -0
- package/dist/src/common/utils/NeonResponsiveUtils.d.ts +4 -0
- package/dist/src/common/utils/NeonScrollUtils.d.ts +3 -0
- package/dist/src/common/utils/NeonToastService.d.ts +29 -0
- package/dist/src/common/utils/NeonTooltipPlacementUtils.d.ts +7 -0
- package/dist/src/common/utils/RegisterIcons.d.ts +3 -0
- package/dist/src/components/feedback/alert/NeonAlert.d.ts +129 -0
- package/dist/src/components/feedback/alert/NeonAlert.vue.d.ts +2 -0
- package/dist/src/components/feedback/alert/NeonAlertModel.d.ts +6 -0
- package/dist/src/components/feedback/alert/NeonToastModel.d.ts +6 -0
- package/dist/src/components/feedback/alert/container/NeonAlertContainer.d.ts +29 -0
- package/dist/src/components/feedback/alert/container/NeonAlertContainer.vue.d.ts +2 -0
- package/dist/src/components/feedback/alert/container/NeonToastContainer.d.ts +27 -0
- package/dist/src/components/feedback/alert/container/NeonToastContainer.vue.d.ts +2 -0
- package/dist/src/components/feedback/dialog/NeonDialog.d.ts +135 -0
- package/dist/src/components/feedback/dialog/NeonDialog.vue.d.ts +2 -0
- package/dist/src/components/feedback/linear-progress/NeonLinearProgress.d.ts +183 -0
- package/dist/src/components/feedback/linear-progress/NeonLinearProgress.vue.d.ts +2 -0
- package/dist/src/components/feedback/note/NeonNote.d.ts +74 -0
- package/dist/src/components/feedback/note/NeonNote.vue.d.ts +2 -0
- package/dist/src/components/feedback/notification-counter/NeonNotificationCounter.d.ts +54 -0
- package/dist/src/components/feedback/notification-counter/NeonNotificationCounter.vue.d.ts +2 -0
- package/dist/src/components/feedback/skeleton-loader/NeonSkeletonLoader.d.ts +26 -0
- package/dist/src/components/feedback/skeleton-loader/NeonSkeletonLoader.vue.d.ts +2 -0
- package/dist/src/components/feedback/splash-loader/NeonSplashLoader.d.ts +74 -0
- package/dist/src/components/feedback/splash-loader/NeonSplashLoader.vue.d.ts +2 -0
- package/dist/src/components/feedback/tooltip/NeonTooltip.d.ts +118 -0
- package/dist/src/components/feedback/tooltip/NeonTooltip.vue.d.ts +2 -0
- package/dist/src/components/layout/card/NeonCard.d.ts +97 -0
- package/dist/src/components/layout/card/NeonCard.vue.d.ts +2 -0
- package/dist/src/components/layout/card/body/NeonCardBody.d.ts +23 -0
- package/dist/src/components/layout/card/body/NeonCardBody.vue.d.ts +2 -0
- package/dist/src/components/layout/card/footer/NeonCardFooter.d.ts +5 -0
- package/dist/src/components/layout/card/footer/NeonCardFooter.vue.d.ts +2 -0
- package/dist/src/components/layout/card/header/NeonCardHeader.d.ts +6 -0
- package/dist/src/components/layout/card/header/NeonCardHeader.vue.d.ts +2 -0
- package/dist/src/components/layout/drawer/NeonDrawer.d.ts +89 -0
- package/dist/src/components/layout/drawer/NeonDrawer.vue.d.ts +2 -0
- package/dist/src/components/layout/footer/NeonFooter.d.ts +5 -0
- package/dist/src/components/layout/footer/NeonFooter.vue.d.ts +2 -0
- package/dist/src/components/layout/grid/NeonGrid.d.ts +41 -0
- package/dist/src/components/layout/grid/NeonGrid.vue.d.ts +2 -0
- package/dist/src/components/layout/grid/grid-area/NeonGridArea.d.ts +21 -0
- package/dist/src/components/layout/grid/grid-area/NeonGridArea.vue.d.ts +2 -0
- package/dist/src/components/layout/modal/NeonModal.d.ts +72 -0
- package/dist/src/components/layout/modal/NeonModal.vue.d.ts +2 -0
- package/dist/src/components/layout/page/NeonPage.d.ts +6 -0
- package/dist/src/components/layout/page/NeonPage.vue.d.ts +2 -0
- package/dist/src/components/layout/side-nav/NeonSideNav.d.ts +26 -0
- package/dist/src/components/layout/side-nav/NeonSideNav.vue.d.ts +2 -0
- package/dist/src/components/layout/top-nav/NeonTopNav.d.ts +6 -0
- package/dist/src/components/layout/top-nav/NeonTopNav.vue.d.ts +2 -0
- package/dist/src/components/navigation/action-menu/NeonActionMenu.d.ts +57 -0
- package/dist/src/components/navigation/action-menu/NeonActionMenu.vue.d.ts +2 -0
- package/dist/src/components/navigation/anchor/NeonAnchor.d.ts +23 -0
- package/dist/src/components/navigation/anchor/NeonAnchor.vue.d.ts +2 -0
- package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.d.ts +109 -0
- package/dist/src/components/navigation/dropdown-menu/NeonDropdownMenu.vue.d.ts +2 -0
- package/dist/src/components/navigation/link/NeonLink.d.ts +81 -0
- package/dist/src/components/navigation/link/NeonLink.vue.d.ts +2 -0
- package/dist/src/components/navigation/menu/NeonMenu.d.ts +107 -0
- package/dist/src/components/navigation/menu/NeonMenu.vue.d.ts +2 -0
- package/dist/src/components/navigation/menu/NeonPriorityMenuItem.d.ts +5 -0
- package/dist/src/components/navigation/stepper/NeonStepper.d.ts +74 -0
- package/dist/src/components/navigation/stepper/NeonStepper.vue.d.ts +2 -0
- package/dist/src/components/navigation/tree-menu/NeonTreeMenu.d.ts +47 -0
- package/dist/src/components/navigation/tree-menu/NeonTreeMenu.vue.d.ts +2 -0
- package/dist/src/components/presentation/badge/NeonBadge.d.ts +145 -0
- package/dist/src/components/presentation/badge/NeonBadge.vue.d.ts +2 -0
- package/dist/src/components/presentation/dropdown/NeonDropdown.d.ts +260 -0
- package/dist/src/components/presentation/dropdown/NeonDropdown.vue.d.ts +2 -0
- package/dist/src/components/presentation/expansion-indicator/NeonExpansionIndicator.d.ts +70 -0
- package/dist/src/components/presentation/expansion-indicator/NeonExpansionIndicator.vue.d.ts +2 -0
- package/dist/src/components/presentation/expansion-panel/NeonExpansionPanel.d.ts +153 -0
- package/dist/src/components/presentation/expansion-panel/NeonExpansionPanel.vue.d.ts +2 -0
- package/dist/src/components/presentation/icon/NeonIcon.d.ts +86 -0
- package/dist/src/components/presentation/icon/NeonIcon.vue.d.ts +2 -0
- package/dist/src/components/presentation/label/NeonLabel.d.ts +100 -0
- package/dist/src/components/presentation/label/NeonLabel.vue.d.ts +2 -0
- package/dist/src/components/presentation/tabs/NeonTabs.d.ts +88 -0
- package/dist/src/components/presentation/tabs/NeonTabs.vue.d.ts +2 -0
- package/dist/src/components/presentation/tabs/tab/NeonTab.d.ts +54 -0
- package/dist/src/components/presentation/tabs/tab/NeonTab.vue.d.ts +2 -0
- package/dist/src/components/user-input/button/NeonButton.d.ts +293 -0
- package/dist/src/components/user-input/button/NeonButton.vue.d.ts +2 -0
- package/dist/src/components/user-input/chip/NeonChip.d.ts +123 -0
- package/dist/src/components/user-input/chip/NeonChip.vue.d.ts +2 -0
- package/dist/src/components/user-input/color/NeonColor.d.ts +112 -0
- package/dist/src/components/user-input/color/NeonColor.vue.d.ts +2 -0
- package/dist/src/components/user-input/date-picker/NeonDatePicker.d.ts +378 -0
- package/dist/src/components/user-input/date-picker/NeonDatePicker.vue.d.ts +2 -0
- package/dist/src/components/user-input/drop-zone/NeonDropZone.d.ts +59 -0
- package/dist/src/components/user-input/drop-zone/NeonDropZone.vue.d.ts +2 -0
- package/dist/src/components/user-input/field/NeonField.d.ts +114 -0
- package/dist/src/components/user-input/field/NeonField.vue.d.ts +2 -0
- package/dist/src/components/user-input/field-group/NeonFieldGroup.d.ts +5 -0
- package/dist/src/components/user-input/field-group/NeonFieldGroup.vue.d.ts +2 -0
- package/dist/src/components/user-input/file/NeonFile.d.ts +190 -0
- package/dist/src/components/user-input/file/NeonFile.vue.d.ts +2 -0
- package/dist/src/components/user-input/filter-list/NeonFilterList.d.ts +145 -0
- package/dist/src/components/user-input/filter-list/NeonFilterList.vue.d.ts +2 -0
- package/dist/src/components/user-input/input/NeonInput.d.ts +296 -0
- package/dist/src/components/user-input/input/NeonInput.vue.d.ts +2 -0
- package/dist/src/components/user-input/input-indicator/NeonInputIndicator.d.ts +55 -0
- package/dist/src/components/user-input/input-indicator/NeonInputIndicator.vue.d.ts +2 -0
- package/dist/src/components/user-input/list/NeonList.d.ts +76 -0
- package/dist/src/components/user-input/list/NeonList.vue.d.ts +2 -0
- package/dist/src/components/user-input/number/NeonNumber.d.ts +285 -0
- package/dist/src/components/user-input/number/NeonNumber.vue.d.ts +2 -0
- package/dist/src/components/user-input/password/NeonPassword.d.ts +17 -0
- package/dist/src/components/user-input/password/NeonPassword.vue.d.ts +2 -0
- package/dist/src/components/user-input/range-slider/NeonRangeSlider.d.ts +269 -0
- package/dist/src/components/user-input/range-slider/NeonRangeSlider.vue.d.ts +2 -0
- package/dist/src/components/user-input/search/NeonSearch.d.ts +139 -0
- package/dist/src/components/user-input/search/NeonSearch.vue.d.ts +2 -0
- package/dist/src/components/user-input/select/NeonSelect.d.ts +207 -0
- package/dist/src/components/user-input/select/NeonSelect.vue.d.ts +2 -0
- package/dist/src/components/user-input/selectable-card/NeonSelectableCard.d.ts +79 -0
- package/dist/src/components/user-input/selectable-card/NeonSelectableCard.vue.d.ts +2 -0
- package/dist/src/components/user-input/slider/NeonSlider.d.ts +281 -0
- package/dist/src/components/user-input/slider/NeonSlider.vue.d.ts +2 -0
- package/dist/src/components/user-input/switch/NeonSwitch.d.ts +143 -0
- package/dist/src/components/user-input/switch/NeonSwitch.vue.d.ts +2 -0
- package/dist/src/components/user-input/toggle/NeonToggle.d.ts +138 -0
- package/dist/src/components/user-input/toggle/NeonToggle.vue.d.ts +2 -0
- package/dist/src/components/user-input/toggle-chip/NeonToggleChip.d.ts +110 -0
- package/dist/src/components/user-input/toggle-chip/NeonToggleChip.vue.d.ts +2 -0
- package/dist/src/neon.d.ts +124 -0
- package/package.json +8 -5
- package/src/sass/components/_button.scss +4 -8
- package/src/sass/components/_top-nav.scss +0 -1
- package/src/sass/variables.scss +2 -2
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_32308d32_lang.cjs.js +0 -2
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_32308d32_lang.cjs.js.map +0 -1
- package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_32308d32_lang.es.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var r=require("./NeonLink.
|
|
1
|
+
"use strict";var r=require("./NeonLink.ts_vue_type_script_src_5a48e750_lang.cjs.js"),n=require("vue"),s=require("../../../_virtual/plugin-vue_export-helper.cjs.js");const a={class:"neon-link__label"},k=["href"],p={class:"neon-link__label"},u={class:"neon-link__label"};function d(e,o,c,C,v,w){const i=n.resolveComponent("router-link"),t=n.resolveComponent("neon-icon");return e.routerUrl?(n.openBlock(),n.createBlock(i,n.mergeProps({key:0,class:[[{"neon-link--no-style":e.noStyle,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--router-link"],to:e.routerUrl,tabindex:"0"},e.sanitizedAttributes,{onClick:e.onClick,onKeydown:[n.withKeys(e.onClick,["enter"]),n.withKeys(n.withModifiers(e.onClick,["stop","prevent"]),["space"])]}),{default:n.withCtx(()=>[n.createElementVNode("span",a,[n.renderSlot(e.$slots,"default")])]),_:3},16,["class","to","onClick","onKeydown"])):e.href?(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:1,class:[[{"neon-link--no-style":e.noStyle,"neon-link--with-external-indicator":e.externalIndicator,"neon-link--active":e.activeRoute,"neon-link--exact-active":e.exactRoute},`neon-link--outline-${e.outlineStyle}`],"neon-link neon-link--external-link"],href:e.href,rel:"noopener",tabindex:"0"},e.sanitizedAttributes,{onClick:o[0]||(o[0]=(...l)=>e.onClick&&e.onClick(...l)),onKeydown:[o[1]||(o[1]=n.withKeys((...l)=>e.onClick&&e.onClick(...l),["enter"])),o[2]||(o[2]=n.withKeys(n.withModifiers((...l)=>e.onClick&&e.onClick(...l),["stop","prevent"]),["space"]))]}),[n.createElementVNode("span",p,[n.renderSlot(e.$slots,"default"),e.externalIndicator?(n.openBlock(),n.createBlock(t,{key:0,class:"neon-link__external-indicator",color:"low-contrast",name:"link-external"})):n.createCommentVNode("",!0)])],16,k)):(n.openBlock(),n.createElementBlock("a",n.mergeProps({key:2,class:[[{"neon-link--no-style":e.noStyle},`neon-link--outline-${e.outlineStyle}`],"neon-link"],tabindex:"0"},e.sanitizedAttributes,{onClick:o[3]||(o[3]=(...l)=>e.onClick&&e.onClick(...l)),onKeydown:[o[4]||(o[4]=n.withKeys((...l)=>e.onClick&&e.onClick(...l),["enter"])),o[5]||(o[5]=n.withKeys(n.withModifiers((...l)=>e.onClick&&e.onClick(...l),["stop","prevent"]),["space"]))]}),[n.createElementVNode("span",u,[n.renderSlot(e.$slots,"default")])],16))}var y=s(r,[["render",d]]);module.exports=y;
|
|
2
2
|
//# sourceMappingURL=NeonLink.cjs.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _sfc_main from "./NeonLink.
|
|
2
|
-
import { resolveComponent, openBlock, createBlock, mergeProps, withKeys, withCtx, createElementVNode, renderSlot, createElementBlock, createCommentVNode } from "vue";
|
|
1
|
+
import _sfc_main from "./NeonLink.ts_vue_type_script_src_5a48e750_lang.es.js";
|
|
2
|
+
import { resolveComponent, openBlock, createBlock, mergeProps, withKeys, withModifiers, withCtx, createElementVNode, renderSlot, createElementBlock, createCommentVNode } from "vue";
|
|
3
3
|
import _export_sfc from "../../../_virtual/plugin-vue_export-helper.es.js";
|
|
4
4
|
const _hoisted_1 = { class: "neon-link__label" };
|
|
5
5
|
const _hoisted_2 = ["href"];
|
|
@@ -18,7 +18,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
18
18
|
tabindex: "0"
|
|
19
19
|
}, _ctx.sanitizedAttributes, {
|
|
20
20
|
onClick: _ctx.onClick,
|
|
21
|
-
onKeydown:
|
|
21
|
+
onKeydown: [
|
|
22
|
+
withKeys(_ctx.onClick, ["enter"]),
|
|
23
|
+
withKeys(withModifiers(_ctx.onClick, ["stop", "prevent"]), ["space"])
|
|
24
|
+
]
|
|
22
25
|
}), {
|
|
23
26
|
default: withCtx(() => [
|
|
24
27
|
createElementVNode("span", _hoisted_1, [
|
|
@@ -42,7 +45,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
42
45
|
tabindex: "0"
|
|
43
46
|
}, _ctx.sanitizedAttributes, {
|
|
44
47
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),
|
|
45
|
-
onKeydown:
|
|
48
|
+
onKeydown: [
|
|
49
|
+
_cache[1] || (_cache[1] = withKeys((...args) => _ctx.onClick && _ctx.onClick(...args), ["enter"])),
|
|
50
|
+
_cache[2] || (_cache[2] = withKeys(withModifiers((...args) => _ctx.onClick && _ctx.onClick(...args), ["stop", "prevent"]), ["space"]))
|
|
51
|
+
]
|
|
46
52
|
}), [
|
|
47
53
|
createElementVNode("span", _hoisted_3, [
|
|
48
54
|
renderSlot(_ctx.$slots, "default"),
|
|
@@ -58,8 +64,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
58
64
|
class: [[{ "neon-link--no-style": _ctx.noStyle }, `neon-link--outline-${_ctx.outlineStyle}`], "neon-link"],
|
|
59
65
|
tabindex: "0"
|
|
60
66
|
}, _ctx.sanitizedAttributes, {
|
|
61
|
-
onClick: _cache[
|
|
62
|
-
onKeydown:
|
|
67
|
+
onClick: _cache[3] || (_cache[3] = (...args) => _ctx.onClick && _ctx.onClick(...args)),
|
|
68
|
+
onKeydown: [
|
|
69
|
+
_cache[4] || (_cache[4] = withKeys((...args) => _ctx.onClick && _ctx.onClick(...args), ["enter"])),
|
|
70
|
+
_cache[5] || (_cache[5] = withKeys(withModifiers((...args) => _ctx.onClick && _ctx.onClick(...args), ["stop", "prevent"]), ["space"]))
|
|
71
|
+
]
|
|
63
72
|
}), [
|
|
64
73
|
createElementVNode("span", _hoisted_4, [
|
|
65
74
|
renderSlot(_ctx.$slots, "default")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonLink.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NeonLink.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";var e=require("vue"),f=require("../../../common/enums/NeonOutlineStyle.cjs.js"),d=require("../../presentation/icon/NeonIcon.cjs.js"),m=require("vue-router"),v=e.defineComponent({name:"NeonLink",components:{NeonIcon:d},props:{href:{type:String,default:null},noStyle:{type:Boolean,default:!1},outlineStyle:{type:String,default:f.NeonOutlineStyle.Text},externalIndicator:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:r}){const i=e.useAttrs(),o=m.useRoute(),c=e.computed(()=>{var n;return((n=t.href)==null?void 0:n.indexOf("//"))===-1?t.href:void 0}),u=e.computed(()=>t.href&&t.href.indexOf(o.fullPath)===0),l=e.computed(()=>u.value&&t.href===o.fullPath),s=e.computed(()=>{const{onClick:n,...a}=i;return a});return{routerUrl:c,sanitizedAttributes:s,activeRoute:u,exactRoute:l,onClick:()=>{r("click")}}}});module.exports=v;
|
|
2
|
-
//# sourceMappingURL=NeonLink.
|
|
2
|
+
//# sourceMappingURL=NeonLink.ts_vue_type_script_src_5a48e750_lang.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonLink.
|
|
1
|
+
{"version":3,"file":"NeonLink.ts_vue_type_script_src_5a48e750_lang.cjs.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=5a48e750&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('//') === -1 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n return {\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonIcon","NeonOutlineStyle","props","emit","attrs","useAttrs","route","useRoute","routerUrl","computed","_a","activeRoute","exactRoute","sanitizedAttributes","onClick","sanitized"],"mappings":"0KAQAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,WAAY,CACV,SAAAC,CACF,EACA,MAAO,CAIL,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAK,EAIpC,QAAS,CAAE,KAAM,QAAS,QAAS,EAAM,EAKzC,aAAc,CAAE,KAAM,OAAkC,QAASC,EAAAA,iBAAiB,IAAK,EAIvF,kBAAmB,CAAE,KAAM,QAAS,QAAS,EAAM,CACrD,EACA,MAAO,CAKL,OACF,EACA,MAAMC,EAAO,CAAE,KAAAC,GAAQ,CACrB,MAAMC,EAAQC,EAAAA,WACRC,EAAQC,EAAAA,WACRC,EAAYC,EAAS,SAAA,WAAO,QAAAC,EAAAR,EAAM,OAAN,YAAAQ,EAAY,QAAQ,SAAU,GAAKR,EAAM,KAAO,OAAU,EAEtFS,EAAcF,EAAAA,SAAS,IAAMP,EAAM,MAAQA,EAAM,KAAK,QAAQI,EAAM,QAAQ,IAAM,CAAC,EACnFM,EAAaH,WAAS,IAAME,EAAY,OAAST,EAAM,OAASI,EAAM,QAAQ,EAE9EO,EAAsBJ,EAAAA,SAAS,IAAM,CAEzC,KAAM,CAAE,QAAAK,KAAYC,CAAA,EAAcX,EAC3B,OAAAW,CAAA,CACR,EAMM,MAAA,CACL,UAAAP,EACA,oBAAAK,EACA,YAAAF,EACA,WAAAC,EACA,QATc,IAAM,CACpBT,EAAK,OAAO,CAAA,CAQZ,CAEJ,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonLink.
|
|
1
|
+
{"version":3,"file":"NeonLink.ts_vue_type_script_src_5a48e750_lang.es.js","sources":["../../../../src/components/navigation/link/NeonLink.ts?vue&type=script&src=5a48e750&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonOutlineStyle } from '@/common/enums/NeonOutlineStyle';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport { useRoute } from 'vue-router';\n\n/**\n * An HTML anchor component which handles VueRouter links (internal), href links (external) and clickable links (no href).\n */\nexport default defineComponent({\n name: 'NeonLink',\n components: {\n NeonIcon,\n },\n props: {\n /**\n * The href of the link, this can be an internal (relative or absolute) or an external link.\n */\n href: { type: String, default: null },\n /**\n * set to true if you would like a completely unstyled link. This is useful for creating a complex component which may use NeonLink.\n */\n noStyle: { type: Boolean, default: false },\n /**\n * Style of the outline to use when the link has focus, use <em>text</em> for wrapping text content and\n * <em>border</em> for tooltips wrapping \"block\" elements, e.g. buttons.\n */\n outlineStyle: { type: String as () => NeonOutlineStyle, default: NeonOutlineStyle.Text },\n /**\n * Display an external link icon to the right of the link indicating clicking it will take the user to another site.\n */\n externalIndicator: { type: Boolean, default: false },\n },\n emits: [\n /**\n * Emitted when the user triggers the link by clicking on it or hitting Enter when the link has focus.\n * @type {void}\n */\n 'click',\n ],\n setup(props, { emit }) {\n const attrs = useAttrs();\n const route = useRoute();\n const routerUrl = computed(() => (props.href?.indexOf('//') === -1 ? props.href : undefined));\n\n const activeRoute = computed(() => props.href && props.href.indexOf(route.fullPath) === 0);\n const exactRoute = computed(() => activeRoute.value && props.href === route.fullPath);\n\n const sanitizedAttributes = computed(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onClick, ...sanitized } = attrs;\n return sanitized;\n });\n\n const onClick = () => {\n emit('click');\n };\n\n return {\n routerUrl,\n sanitizedAttributes,\n activeRoute,\n exactRoute,\n onClick,\n };\n },\n});\n"],"names":["onClick"],"mappings":";;;;AAQA,IAAA,YAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IAIL,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAIpC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAKzC,cAAc,EAAE,MAAM,QAAkC,SAAS,iBAAiB,KAAK;AAAA,IAIvF,mBAAmB,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EACrD;AAAA,EACA,OAAO;AAAA,IAKL;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,QAAQ;AACd,UAAM,QAAQ;AACR,UAAA,YAAY,SAAS;;AAAO,0BAAM,SAAN,mBAAY,QAAQ,WAAU,KAAK,MAAM,OAAO;AAAA,KAAU;AAEtF,UAAA,cAAc,SAAS,MAAM,MAAM,QAAQ,MAAM,KAAK,QAAQ,MAAM,QAAQ,MAAM,CAAC;AACnF,UAAA,aAAa,SAAS,MAAM,YAAY,SAAS,MAAM,SAAS,MAAM,QAAQ;AAE9E,UAAA,sBAAsB,SAAS,MAAM;AAEzC,YAAM,EAAE,SAAAA,aAAY,UAAA,IAAc;AAC3B,aAAA;AAAA,IAAA,CACR;AAED,UAAM,UAAU,MAAM;AACpB,WAAK,OAAO;AAAA,IAAA;AAGP,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var r=require("./NeonIcon.
|
|
1
|
+
"use strict";var r=require("./NeonIcon.ts_vue_type_script_src_d3713f20_lang.cjs.js"),n=require("vue"),o=require("../../../_virtual/plugin-vue_export-helper.cjs.js");const s=["innerHTML"];function i(e,t,a,u,l,p){return e.icon?(n.openBlock(),n.createElementBlock("div",n.mergeProps({key:0,class:[[`neon-icon--name-${e.name}`,e.color?`neon-icon--${e.color}`:"",{"neon-icon--inverse":e.inverse,"neon-icon--disabled":e.disabled}],"neon-icon"]},e.attrs,{innerHTML:e.icon}),null,16,s)):n.createCommentVNode("",!0)}var c=o(r,[["render",i]]);module.exports=c;
|
|
2
2
|
//# sourceMappingURL=NeonIcon.cjs.js.map
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import _sfc_main from "./NeonIcon.
|
|
1
|
+
import _sfc_main from "./NeonIcon.ts_vue_type_script_src_d3713f20_lang.es.js";
|
|
2
2
|
import { openBlock, createElementBlock, mergeProps, createCommentVNode } from "vue";
|
|
3
3
|
import _export_sfc from "../../../_virtual/plugin-vue_export-helper.es.js";
|
|
4
4
|
const _hoisted_1 = ["innerHTML"];
|
|
5
5
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
6
6
|
return _ctx.icon ? (openBlock(), createElementBlock("div", mergeProps({
|
|
7
7
|
key: 0,
|
|
8
|
-
class: [[
|
|
8
|
+
class: [[
|
|
9
|
+
`neon-icon--name-${_ctx.name}`,
|
|
10
|
+
_ctx.color ? `neon-icon--${_ctx.color}` : "",
|
|
11
|
+
{ "neon-icon--inverse": _ctx.inverse, "neon-icon--disabled": _ctx.disabled }
|
|
12
|
+
], "neon-icon"]
|
|
9
13
|
}, _ctx.attrs, { innerHTML: _ctx.icon }), null, 16, _hoisted_1)) : createCommentVNode("", true);
|
|
10
14
|
}
|
|
11
15
|
var NeonIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonIcon.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NeonIcon.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";var e=require("vue"),s=require("../../../common/utils/NeonIconRegistry.cjs.js"),i=e.defineComponent({name:"NeonIcon",props:{name:{type:String,required:!0},color:{type:String,default:null},inverse:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(n){const t=e.useAttrs(),r=e.computed(()=>{const o=s.NeonIconRegistry.getIcon(n.name);return o||console.error(`icon ${n.name} doesn't exist! Register icon with NeonIconRegistry.addIcon(name, svg);`),o});return{attrs:t,icon:r}}});module.exports=i;
|
|
2
|
-
//# sourceMappingURL=NeonIcon.
|
|
2
|
+
//# sourceMappingURL=NeonIcon.ts_vue_type_script_src_d3713f20_lang.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonIcon.
|
|
1
|
+
{"version":3,"file":"NeonIcon.ts_vue_type_script_src_d3713f20_lang.cjs.js","sources":["../../../../src/components/presentation/icon/NeonIcon.ts?vue&type=script&src=d3713f20&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonIconRegistry } from '@/common/utils/NeonIconRegistry';\nimport type { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\n\n/**\n * <p>A component for rendering SVG images. These images are generally, but not limited to, <em>icons</em>. This\n * component can render any SVG of any size. Size is not restricted in the NeonIcon component but rather in the\n * components using the icons. Generally, when talking about icons, this component is only used to build other\n * components. But you may also find it useful for rendering SVG images, e.g. illustrations.</p>\n *\n * <p>There is an icon registry where strings containing SVGs can be registered with a name and that name can be used\n * with the NeonIcon component to render the image. Use the classes <em>neon-svg-fill</em> and <em>neon-svg--stroke</em>\n * in the SVG elements to automatically apply the functional colors.</p>\n *\n * <p>This provides the advantage of only registering the icons you actually need, dynamically switching colors in\n * Typescript/CSS without using a large icon font and not having to duplicate icon images to support multiple\n * color variations (including light and dark modes).</p>\n *\n * For more detailed information please see <a href=\"/presentation/icon\">Icons</a>.\n */\nexport default defineComponent({\n name: 'NeonIcon',\n props: {\n /**\n * The name of an icon registered in the icon registry.\n */\n name: { type: String, required: true },\n /**\n * The color to render the icon. By default, it will be the current text color (light text in dark mode or dark text in light mode).\n */\n color: { type: String as () => NeonFunctionalColor, default: null },\n /**\n * Set the icon color to the inverse text color\n */\n inverse: { type: Boolean, default: false },\n /**\n * Apply a disabled style to the icon\n */\n disabled: { type: Boolean, default: false },\n },\n setup(props) {\n const attrs = useAttrs();\n const icon = computed(() => {\n const _icon = NeonIconRegistry.getIcon(props.name);\n if (!_icon) {\n console.error(`icon ${props.name} doesn't exist! Register icon with NeonIconRegistry.addIcon(name, svg);`);\n }\n return _icon;\n });\n\n return {\n attrs,\n icon,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","props","attrs","useAttrs","icon","computed","_icon","NeonIconRegistry"],"mappings":"6FAoBAA,EAAeC,kBAAgB,CAC7B,KAAM,WACN,MAAO,CAIL,KAAM,CAAE,KAAM,OAAQ,SAAU,EAAK,EAIrC,MAAO,CAAE,KAAM,OAAqC,QAAS,IAAK,EAIlE,QAAS,CAAE,KAAM,QAAS,QAAS,EAAM,EAIzC,SAAU,CAAE,KAAM,QAAS,QAAS,EAAM,CAC5C,EACA,MAAMC,EAAO,CACX,MAAMC,EAAQC,EAAAA,WACRC,EAAOC,EAAAA,SAAS,IAAM,CAC1B,MAAMC,EAAQC,EAAA,iBAAiB,QAAQN,EAAM,IAAI,EACjD,OAAKK,GACK,QAAA,MAAM,QAAQL,EAAM,6EAA6E,EAEpGK,CAAA,CACR,EAEM,MAAA,CACL,MAAAJ,EACA,KAAAE,CAAA,CAEJ,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonIcon.
|
|
1
|
+
{"version":3,"file":"NeonIcon.ts_vue_type_script_src_d3713f20_lang.es.js","sources":["../../../../src/components/presentation/icon/NeonIcon.ts?vue&type=script&src=d3713f20&lang.ts"],"sourcesContent":["import { computed, defineComponent, useAttrs } from 'vue';\nimport { NeonIconRegistry } from '@/common/utils/NeonIconRegistry';\nimport type { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\n\n/**\n * <p>A component for rendering SVG images. These images are generally, but not limited to, <em>icons</em>. This\n * component can render any SVG of any size. Size is not restricted in the NeonIcon component but rather in the\n * components using the icons. Generally, when talking about icons, this component is only used to build other\n * components. But you may also find it useful for rendering SVG images, e.g. illustrations.</p>\n *\n * <p>There is an icon registry where strings containing SVGs can be registered with a name and that name can be used\n * with the NeonIcon component to render the image. Use the classes <em>neon-svg-fill</em> and <em>neon-svg--stroke</em>\n * in the SVG elements to automatically apply the functional colors.</p>\n *\n * <p>This provides the advantage of only registering the icons you actually need, dynamically switching colors in\n * Typescript/CSS without using a large icon font and not having to duplicate icon images to support multiple\n * color variations (including light and dark modes).</p>\n *\n * For more detailed information please see <a href=\"/presentation/icon\">Icons</a>.\n */\nexport default defineComponent({\n name: 'NeonIcon',\n props: {\n /**\n * The name of an icon registered in the icon registry.\n */\n name: { type: String, required: true },\n /**\n * The color to render the icon. By default, it will be the current text color (light text in dark mode or dark text in light mode).\n */\n color: { type: String as () => NeonFunctionalColor, default: null },\n /**\n * Set the icon color to the inverse text color\n */\n inverse: { type: Boolean, default: false },\n /**\n * Apply a disabled style to the icon\n */\n disabled: { type: Boolean, default: false },\n },\n setup(props) {\n const attrs = useAttrs();\n const icon = computed(() => {\n const _icon = NeonIconRegistry.getIcon(props.name);\n if (!_icon) {\n console.error(`icon ${props.name} doesn't exist! Register icon with NeonIconRegistry.addIcon(name, svg);`);\n }\n return _icon;\n });\n\n return {\n attrs,\n icon,\n };\n },\n});\n"],"names":[],"mappings":";;AAoBA,IAAA,YAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IAIL,MAAM,EAAE,MAAM,QAAQ,UAAU,KAAK;AAAA,IAIrC,OAAO,EAAE,MAAM,QAAqC,SAAS,KAAK;AAAA,IAIlE,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAIzC,UAAU,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,EAC5C;AAAA,EACA,MAAM,OAAO;AACX,UAAM,QAAQ;AACR,UAAA,OAAO,SAAS,MAAM;AAC1B,YAAM,QAAQ,iBAAiB,QAAQ,MAAM,IAAI;AACjD,UAAI,CAAC,OAAO;AACF,gBAAA,MAAM,QAAQ,MAAM,6EAA6E;AAAA,MAC3G;AACO,aAAA;AAAA,IAAA,CACR;AAEM,WAAA;AAAA,MACL;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var t=require("./NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js"),n=require("vue"),s=require("../../../_virtual/plugin-vue_export-helper.cjs.js");const a={key:1,class:"neon-button__label"},i=["disabled","tabindex"],d={key:1,class:"neon-button__label"};function u(e,p,b,m,k,v){const o=n.resolveComponent("neon-icon"),l=n.resolveComponent("neon-link"),r=n.resolveComponent("neon-expansion-indicator");return e.href?(n.openBlock(),n.createBlock(l,n.mergeProps({key:0,ref:"button",class:[e.classes,"neon-button"],href:e.href,tabindex:e.disabled?-1:0,"outline-style":"none",role:"button"},e.attrs),{default:n.withCtx(()=>[e.icon||e.state!=="ready"?(n.openBlock(),n.createBlock(o,{key:0,color:e.buttonStyle!=="solid"?e.color:void 0,inverse:e.buttonStyle==="solid"||e.inverse,name:e.iconName},null,8,["color","inverse","name"])):n.createCommentVNode("",!0),e.label?(n.openBlock(),n.createElementBlock("span",a,n.toDisplayString(e.label),1)):n.createCommentVNode("",!0)]),_:1},16,["class","href","tabindex"])):(n.openBlock(),n.createElementBlock("button",n.mergeProps({key:1,class:[e.classes,"neon-button"],disabled:e.disabled||e.state!=="ready",tabindex:e.disabled?-1:0},e.attrs),[e.icon||e.state!=="ready"?(n.openBlock(),n.createBlock(o,{key:0,color:e.buttonStyle!=="solid"?e.color:void 0,disabled:e.disabled,inverse:e.buttonStyle==="solid"||e.inverse,name:e.iconName},null,8,["color","disabled","inverse","name"])):n.createCommentVNode("",!0),e.label?(n.openBlock(),n.createElementBlock("span",d,n.toDisplayString(e.label),1)):n.createCommentVNode("",!0),e.indicator?(n.openBlock(),n.createBlock(r,{key:2,color:e.color,disabled:e.disabled,expanded:e.indicatorExpanded,inverse:e.buttonStyle==="solid"||e.inverse,class:"neon-button__indicator"},null,8,["color","disabled","expanded","inverse"])):n.createCommentVNode("",!0)],16,i))}var c=s(t,[["render",u]]);module.exports=c;
|
|
2
2
|
//# sourceMappingURL=NeonButton.cjs.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _sfc_main from "./NeonButton.
|
|
2
|
-
import { resolveComponent, openBlock, createBlock, mergeProps,
|
|
1
|
+
import _sfc_main from "./NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js";
|
|
2
|
+
import { resolveComponent, openBlock, createBlock, mergeProps, withCtx, createCommentVNode, createElementBlock, toDisplayString } from "vue";
|
|
3
3
|
import _export_sfc from "../../../_virtual/plugin-vue_export-helper.es.js";
|
|
4
4
|
const _hoisted_1 = {
|
|
5
5
|
key: 1,
|
|
@@ -22,11 +22,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
22
22
|
tabindex: !_ctx.disabled ? 0 : -1,
|
|
23
23
|
"outline-style": "none",
|
|
24
24
|
role: "button"
|
|
25
|
-
}, _ctx.attrs, {
|
|
26
|
-
onKeydown: _cache[0] || (_cache[0] = withKeys(($event) => _ctx.click(), ["space"])),
|
|
27
|
-
onKeypress: _cache[1] || (_cache[1] = withKeys(withModifiers(() => {
|
|
28
|
-
}, ["prevent"]), ["space"]))
|
|
29
|
-
}), {
|
|
25
|
+
}, _ctx.attrs), {
|
|
30
26
|
default: withCtx(() => [
|
|
31
27
|
_ctx.icon || _ctx.state !== "ready" ? (openBlock(), createBlock(_component_neon_icon, {
|
|
32
28
|
key: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonButton.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NeonButton.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var t=require("vue"),c=require("../../../common/enums/NeonButtonSize.cjs.js"),s=require("../../../common/enums/NeonFunctionalColor.cjs.js"),l=require("../../../common/enums/NeonButtonStyle.cjs.js"),d=require("../../../common/enums/NeonHorizontalPosition.cjs.js"),f=require("../../presentation/icon/NeonIcon.cjs.js"),b=require("../../navigation/link/NeonLink.cjs.js"),N=require("../../presentation/expansion-indicator/NeonExpansionIndicator.cjs.js"),e=require("../../../common/enums/NeonState.cjs.js"),S=t.defineComponent({name:"NeonButton",components:{NeonExpansionIndicator:N,NeonIcon:f,NeonLink:b},props:{href:{type:String,default:null},label:{type:String,default:null},size:{type:String,default:c.NeonButtonSize.Medium},color:{type:String,default:s.NeonFunctionalColor.LowContrast},inverse:{type:Boolean,default:!1},alternateColor:{type:String,default:null},icon:{type:String,default:null},iconPosition:{type:String,default:d.NeonHorizontalPosition.Left},buttonStyle:{type:String,default:l.NeonButtonStyle.Solid},state:{type:String,default:e.NeonState.Ready},disabled:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},outline:{type:Boolean,default:!0},circular:{type:Boolean,default:null},fullWidth:{type:Boolean,default:null},indicator:{type:Boolean,default:!1},indicatorExpanded:{type:Boolean,default:null}},setup(n){const a=t.useAttrs(),o=t.ref(null),u=t.computed(()=>{switch(n.state){case e.NeonState.Loading:return"loading";case e.NeonState.Success:return"check";case e.NeonState.Error:return"times";default:return n.icon}}),r=t.computed(()=>[`neon-button--${n.size}`,!n.inverse&&`neon-button--${n.color}`,`neon-button--${n.buttonStyle}`,`neon-button--state-${n.state}`,{"neon-button--text-transparent":n.transparent&&n.buttonStyle===l.NeonButtonStyle.Text,"neon-button--disabled":n.disabled,"neon-button--inverse":n.inverse,"neon-button--circular":n.circular,"neon-button--no-outline":!n.outline,"neon-button--full-width":n.fullWidth,"neon-button--with-icon neon-button--icon-only":!n.label&&n.icon&&!n.indicator,"neon-button--with-icon neon-button--icon-left":n.label&&n.icon&&n.iconPosition==="left","neon-button--with-icon neon-button--icon-right":n.label&&n.icon&&n.iconPosition==="right",[`neon-button--alternate-color-${n.alternateColor}`]:n.alternateColor}]);return{iconName:u,classes:r,button:o,attrs:a,click:()=>{var i;console.log(o.value),(i=o.value)==null||i.click()}}}});module.exports=S;
|
|
2
|
+
//# sourceMappingURL=NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js.map
|
package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonButton.ts_vue_type_script_src_7c4eb572_lang.cjs.js","sources":["../../../../src/components/user-input/button/NeonButton.ts?vue&type=script&src=7c4eb572&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonButtonSize } from '@/common/enums/NeonButtonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonButtonStyle } from '@/common/enums/NeonButtonStyle';\nimport { NeonHorizontalPosition } from '@/common/enums/NeonHorizontalPosition';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\nimport NeonExpansionIndicator from '@/components/presentation/expansion-indicator/NeonExpansionIndicator.vue';\nimport { NeonState } from '@/common/enums/NeonState';\n\n/**\n * A button component. Renders an HTML button or, if an href is provided, renders using NeonLink in the style of a button. NeonButton supports all events and attributes of HTML buttons, e.g, @click.\n */\nexport default defineComponent({\n name: 'NeonButton',\n components: {\n NeonExpansionIndicator,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * Optional href for rendering a button as a link\n */\n href: { type: String, default: null },\n /**\n * The text to display on a button\n */\n label: { type: String, default: null },\n /**\n * The button size\n */\n size: { type: String as () => NeonButtonSize, default: NeonButtonSize.Medium },\n /**\n * The button color\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Display the button as high-contrast with inverted colors. This is useful for placing a button on a colored background.\n * NOTE: Supports Solid & Outline button styles only (gradient & text buttons are not supported)\n */\n inverse: { type: Boolean, default: false },\n /**\n * Solid buttons ONLY. Alternate color for creating a gradient buttons. NOTE: can also be the same color as 'color'.\n */\n alternateColor: { type: String as () => NeonFunctionalColor, default: null },\n /**\n * Optional icon to display\n */\n icon: { type: String, default: null },\n /**\n * Position of the icon if combined with text\n */\n iconPosition: { type: String as () => NeonHorizontalPosition, default: NeonHorizontalPosition.Left },\n /**\n * The style of button\n */\n buttonStyle: { type: String as () => NeonButtonStyle, default: NeonButtonStyle.Solid },\n /**\n * Provide button states of <em>ready, loading, success or error</em> which change the display of the button (with icons) to reflect the state.\n */\n state: { type: String as () => NeonState, default: NeonState.Ready },\n /**\n * Whether the button is disabled\n */\n disabled: { type: Boolean, default: false },\n /**\n * For text buttons, do not display the background. This is useful for icon buttons in headers.\n */\n transparent: { type: Boolean, default: false },\n /**\n * Whether to display a button outline when the button has focus\n */\n outline: { type: Boolean, default: true },\n /**\n * Make the button circular. NOTE: This is only for icon only buttons.\n */\n circular: { type: Boolean, default: null },\n /**\n * Make a button extend to the full width of the parent container.\n */\n fullWidth: { type: Boolean, default: null },\n /**\n * INTERNAL USE ONLY: display a NeonExpansionIndicator on the button (used for dropdown buttons)\n * @ignore\n */\n indicator: { type: Boolean, default: false },\n /**\n * INTERNAL USE ONLY: display the NeonExpansionIndicator on the button as <em>open</em> or <em>closed</em>.\n * @ignore\n */\n indicatorExpanded: { type: Boolean, default: null },\n },\n setup(props) {\n const attrs = useAttrs();\n\n const button = ref<HTMLElement | null>(null);\n\n const iconName = computed(() => {\n switch (props.state) {\n case NeonState.Loading:\n return 'loading';\n case NeonState.Success:\n return 'check';\n case NeonState.Error:\n return 'times';\n default:\n return props.icon;\n }\n });\n\n const classes = computed(() => {\n return [\n `neon-button--${props.size}`,\n !props.inverse && `neon-button--${props.color}`,\n `neon-button--${props.buttonStyle}`,\n `neon-button--state-${props.state}`,\n {\n 'neon-button--text-transparent': props.transparent && props.buttonStyle === NeonButtonStyle.Text,\n 'neon-button--disabled': props.disabled,\n 'neon-button--inverse': props.inverse,\n 'neon-button--circular': props.circular,\n 'neon-button--no-outline': !props.outline,\n 'neon-button--full-width': props.fullWidth,\n 'neon-button--with-icon neon-button--icon-only': !props.label && props.icon && !props.indicator,\n 'neon-button--with-icon neon-button--icon-left': props.label && props.icon && props.iconPosition === 'left',\n 'neon-button--with-icon neon-button--icon-right': props.label && props.icon && props.iconPosition === 'right',\n [`neon-button--alternate-color-${props.alternateColor}`]: props.alternateColor,\n },\n ];\n });\n\n const click = () => {\n console.log(button.value);\n button.value?.click();\n };\n\n return {\n iconName,\n classes,\n button,\n attrs,\n click,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonExpansionIndicator","NeonIcon","NeonLink","NeonButtonSize","NeonFunctionalColor","NeonHorizontalPosition","NeonButtonStyle","NeonState","props","attrs","useAttrs","button","ref","iconName","computed","classes","_a"],"mappings":"kgBAaAA,EAAeC,kBAAgB,CAC7B,KAAM,aACN,WAAY,CACV,uBAAAC,EACA,SAAAC,EACA,SAAAC,CACF,EACA,MAAO,CAIL,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAK,EAIpC,MAAO,CAAE,KAAM,OAAQ,QAAS,IAAK,EAIrC,KAAM,CAAE,KAAM,OAAgC,QAASC,EAAAA,eAAe,MAAO,EAI7E,MAAO,CAAE,KAAM,OAAqC,QAASC,EAAAA,oBAAoB,WAAY,EAK7F,QAAS,CAAE,KAAM,QAAS,QAAS,EAAM,EAIzC,eAAgB,CAAE,KAAM,OAAqC,QAAS,IAAK,EAI3E,KAAM,CAAE,KAAM,OAAQ,QAAS,IAAK,EAIpC,aAAc,CAAE,KAAM,OAAwC,QAASC,EAAAA,uBAAuB,IAAK,EAInG,YAAa,CAAE,KAAM,OAAiC,QAASC,EAAAA,gBAAgB,KAAM,EAIrF,MAAO,CAAE,KAAM,OAA2B,QAASC,EAAAA,UAAU,KAAM,EAInE,SAAU,CAAE,KAAM,QAAS,QAAS,EAAM,EAI1C,YAAa,CAAE,KAAM,QAAS,QAAS,EAAM,EAI7C,QAAS,CAAE,KAAM,QAAS,QAAS,EAAK,EAIxC,SAAU,CAAE,KAAM,QAAS,QAAS,IAAK,EAIzC,UAAW,CAAE,KAAM,QAAS,QAAS,IAAK,EAK1C,UAAW,CAAE,KAAM,QAAS,QAAS,EAAM,EAK3C,kBAAmB,CAAE,KAAM,QAAS,QAAS,IAAK,CACpD,EACA,MAAMC,EAAO,CACX,MAAMC,EAAQC,EAAAA,WAERC,EAASC,MAAwB,IAAI,EAErCC,EAAWC,EAAAA,SAAS,IAAM,CAC9B,OAAQN,EAAM,YACPD,EAAU,UAAA,QACN,MAAA,eACJA,EAAU,UAAA,QACN,MAAA,aACJA,EAAU,UAAA,MACN,MAAA,gBAEP,OAAOC,EAAM,KAAA,CAElB,EAEKO,EAAUD,EAAAA,SAAS,IAChB,CACL,gBAAgBN,EAAM,OACtB,CAACA,EAAM,SAAW,gBAAgBA,EAAM,QACxC,gBAAgBA,EAAM,cACtB,sBAAsBA,EAAM,QAC5B,CACE,gCAAiCA,EAAM,aAAeA,EAAM,cAAgBF,EAAgB,gBAAA,KAC5F,wBAAyBE,EAAM,SAC/B,uBAAwBA,EAAM,QAC9B,wBAAyBA,EAAM,SAC/B,0BAA2B,CAACA,EAAM,QAClC,0BAA2BA,EAAM,UACjC,gDAAiD,CAACA,EAAM,OAASA,EAAM,MAAQ,CAACA,EAAM,UACtF,gDAAiDA,EAAM,OAASA,EAAM,MAAQA,EAAM,eAAiB,OACrG,iDAAkDA,EAAM,OAASA,EAAM,MAAQA,EAAM,eAAiB,QACtG,CAAC,gCAAgCA,EAAM,kBAAmBA,EAAM,cAClE,CAAA,CAEH,EAOM,MAAA,CACL,SAAAK,EACA,QAAAE,EACA,OAAAJ,EACA,MAAAF,EACA,MAVY,IAAM,OACV,QAAA,IAAIE,EAAO,KAAK,GACxBK,EAAAL,EAAO,QAAP,MAAAK,EAAc,OAAM,CAQpB,CAEJ,CACF,CAAC"}
|
|
@@ -26,6 +26,7 @@ var _sfc_main = defineComponent({
|
|
|
26
26
|
buttonStyle: { type: String, default: NeonButtonStyle.Solid },
|
|
27
27
|
state: { type: String, default: NeonState.Ready },
|
|
28
28
|
disabled: { type: Boolean, default: false },
|
|
29
|
+
transparent: { type: Boolean, default: false },
|
|
29
30
|
outline: { type: Boolean, default: true },
|
|
30
31
|
circular: { type: Boolean, default: null },
|
|
31
32
|
fullWidth: { type: Boolean, default: null },
|
|
@@ -54,6 +55,7 @@ var _sfc_main = defineComponent({
|
|
|
54
55
|
`neon-button--${props.buttonStyle}`,
|
|
55
56
|
`neon-button--state-${props.state}`,
|
|
56
57
|
{
|
|
58
|
+
"neon-button--text-transparent": props.transparent && props.buttonStyle === NeonButtonStyle.Text,
|
|
57
59
|
"neon-button--disabled": props.disabled,
|
|
58
60
|
"neon-button--inverse": props.inverse,
|
|
59
61
|
"neon-button--circular": props.circular,
|
|
@@ -68,7 +70,8 @@ var _sfc_main = defineComponent({
|
|
|
68
70
|
});
|
|
69
71
|
const click = () => {
|
|
70
72
|
var _a;
|
|
71
|
-
|
|
73
|
+
console.log(button.value);
|
|
74
|
+
(_a = button.value) == null ? void 0 : _a.click();
|
|
72
75
|
};
|
|
73
76
|
return {
|
|
74
77
|
iconName,
|
|
@@ -80,4 +83,4 @@ var _sfc_main = defineComponent({
|
|
|
80
83
|
}
|
|
81
84
|
});
|
|
82
85
|
export { _sfc_main as default };
|
|
83
|
-
//# sourceMappingURL=NeonButton.
|
|
86
|
+
//# sourceMappingURL=NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js.map
|
package/dist/components/user-input/button/NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonButton.ts_vue_type_script_src_7c4eb572_lang.es.js","sources":["../../../../src/components/user-input/button/NeonButton.ts?vue&type=script&src=7c4eb572&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonButtonSize } from '@/common/enums/NeonButtonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport { NeonButtonStyle } from '@/common/enums/NeonButtonStyle';\nimport { NeonHorizontalPosition } from '@/common/enums/NeonHorizontalPosition';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonLink from '@/components/navigation/link/NeonLink.vue';\nimport NeonExpansionIndicator from '@/components/presentation/expansion-indicator/NeonExpansionIndicator.vue';\nimport { NeonState } from '@/common/enums/NeonState';\n\n/**\n * A button component. Renders an HTML button or, if an href is provided, renders using NeonLink in the style of a button. NeonButton supports all events and attributes of HTML buttons, e.g, @click.\n */\nexport default defineComponent({\n name: 'NeonButton',\n components: {\n NeonExpansionIndicator,\n NeonIcon,\n NeonLink,\n },\n props: {\n /**\n * Optional href for rendering a button as a link\n */\n href: { type: String, default: null },\n /**\n * The text to display on a button\n */\n label: { type: String, default: null },\n /**\n * The button size\n */\n size: { type: String as () => NeonButtonSize, default: NeonButtonSize.Medium },\n /**\n * The button color\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.LowContrast },\n /**\n * Display the button as high-contrast with inverted colors. This is useful for placing a button on a colored background.\n * NOTE: Supports Solid & Outline button styles only (gradient & text buttons are not supported)\n */\n inverse: { type: Boolean, default: false },\n /**\n * Solid buttons ONLY. Alternate color for creating a gradient buttons. NOTE: can also be the same color as 'color'.\n */\n alternateColor: { type: String as () => NeonFunctionalColor, default: null },\n /**\n * Optional icon to display\n */\n icon: { type: String, default: null },\n /**\n * Position of the icon if combined with text\n */\n iconPosition: { type: String as () => NeonHorizontalPosition, default: NeonHorizontalPosition.Left },\n /**\n * The style of button\n */\n buttonStyle: { type: String as () => NeonButtonStyle, default: NeonButtonStyle.Solid },\n /**\n * Provide button states of <em>ready, loading, success or error</em> which change the display of the button (with icons) to reflect the state.\n */\n state: { type: String as () => NeonState, default: NeonState.Ready },\n /**\n * Whether the button is disabled\n */\n disabled: { type: Boolean, default: false },\n /**\n * For text buttons, do not display the background. This is useful for icon buttons in headers.\n */\n transparent: { type: Boolean, default: false },\n /**\n * Whether to display a button outline when the button has focus\n */\n outline: { type: Boolean, default: true },\n /**\n * Make the button circular. NOTE: This is only for icon only buttons.\n */\n circular: { type: Boolean, default: null },\n /**\n * Make a button extend to the full width of the parent container.\n */\n fullWidth: { type: Boolean, default: null },\n /**\n * INTERNAL USE ONLY: display a NeonExpansionIndicator on the button (used for dropdown buttons)\n * @ignore\n */\n indicator: { type: Boolean, default: false },\n /**\n * INTERNAL USE ONLY: display the NeonExpansionIndicator on the button as <em>open</em> or <em>closed</em>.\n * @ignore\n */\n indicatorExpanded: { type: Boolean, default: null },\n },\n setup(props) {\n const attrs = useAttrs();\n\n const button = ref<HTMLElement | null>(null);\n\n const iconName = computed(() => {\n switch (props.state) {\n case NeonState.Loading:\n return 'loading';\n case NeonState.Success:\n return 'check';\n case NeonState.Error:\n return 'times';\n default:\n return props.icon;\n }\n });\n\n const classes = computed(() => {\n return [\n `neon-button--${props.size}`,\n !props.inverse && `neon-button--${props.color}`,\n `neon-button--${props.buttonStyle}`,\n `neon-button--state-${props.state}`,\n {\n 'neon-button--text-transparent': props.transparent && props.buttonStyle === NeonButtonStyle.Text,\n 'neon-button--disabled': props.disabled,\n 'neon-button--inverse': props.inverse,\n 'neon-button--circular': props.circular,\n 'neon-button--no-outline': !props.outline,\n 'neon-button--full-width': props.fullWidth,\n 'neon-button--with-icon neon-button--icon-only': !props.label && props.icon && !props.indicator,\n 'neon-button--with-icon neon-button--icon-left': props.label && props.icon && props.iconPosition === 'left',\n 'neon-button--with-icon neon-button--icon-right': props.label && props.icon && props.iconPosition === 'right',\n [`neon-button--alternate-color-${props.alternateColor}`]: props.alternateColor,\n },\n ];\n });\n\n const click = () => {\n console.log(button.value);\n button.value?.click();\n };\n\n return {\n iconName,\n classes,\n button,\n attrs,\n click,\n };\n },\n});\n"],"names":[],"mappings":";;;;;;;;;AAaA,IAAA,YAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IAIL,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAIpC,OAAO,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAIrC,MAAM,EAAE,MAAM,QAAgC,SAAS,eAAe,OAAO;AAAA,IAI7E,OAAO,EAAE,MAAM,QAAqC,SAAS,oBAAoB,YAAY;AAAA,IAK7F,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAIzC,gBAAgB,EAAE,MAAM,QAAqC,SAAS,KAAK;AAAA,IAI3E,MAAM,EAAE,MAAM,QAAQ,SAAS,KAAK;AAAA,IAIpC,cAAc,EAAE,MAAM,QAAwC,SAAS,uBAAuB,KAAK;AAAA,IAInG,aAAa,EAAE,MAAM,QAAiC,SAAS,gBAAgB,MAAM;AAAA,IAIrF,OAAO,EAAE,MAAM,QAA2B,SAAS,UAAU,MAAM;AAAA,IAInE,UAAU,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAI1C,aAAa,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAI7C,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IAIxC,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IAIzC,WAAW,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,IAK1C,WAAW,EAAE,MAAM,SAAS,SAAS,MAAM;AAAA,IAK3C,mBAAmB,EAAE,MAAM,SAAS,SAAS,KAAK;AAAA,EACpD;AAAA,EACA,MAAM,OAAO;AACX,UAAM,QAAQ;AAER,UAAA,SAAS,IAAwB,IAAI;AAErC,UAAA,WAAW,SAAS,MAAM;AAC9B,cAAQ,MAAM;AAAA,aACP,UAAU;AACN,iBAAA;AAAA,aACJ,UAAU;AACN,iBAAA;AAAA,aACJ,UAAU;AACN,iBAAA;AAAA;AAEP,iBAAO,MAAM;AAAA;AAAA,IAAA,CAElB;AAEK,UAAA,UAAU,SAAS,MAAM;AACtB,aAAA;AAAA,QACL,gBAAgB,MAAM;AAAA,QACtB,CAAC,MAAM,WAAW,gBAAgB,MAAM;AAAA,QACxC,gBAAgB,MAAM;AAAA,QACtB,sBAAsB,MAAM;AAAA,QAC5B;AAAA,UACE,iCAAiC,MAAM,eAAe,MAAM,gBAAgB,gBAAgB;AAAA,UAC5F,yBAAyB,MAAM;AAAA,UAC/B,wBAAwB,MAAM;AAAA,UAC9B,yBAAyB,MAAM;AAAA,UAC/B,2BAA2B,CAAC,MAAM;AAAA,UAClC,2BAA2B,MAAM;AAAA,UACjC,iDAAiD,CAAC,MAAM,SAAS,MAAM,QAAQ,CAAC,MAAM;AAAA,UACtF,iDAAiD,MAAM,SAAS,MAAM,QAAQ,MAAM,iBAAiB;AAAA,UACrG,kDAAkD,MAAM,SAAS,MAAM,QAAQ,MAAM,iBAAiB;AAAA,UACtG,CAAC,gCAAgC,MAAM,mBAAmB,MAAM;AAAA,QAClE;AAAA,MAAA;AAAA,IACF,CACD;AAED,UAAM,QAAQ,MAAM;;AACV,cAAA,IAAI,OAAO,KAAK;AACxB,mBAAO,UAAP,mBAAc;AAAA,IAAM;AAGf,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var c=require("./NeonDatePicker.
|
|
1
|
+
"use strict";var c=require("./NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.cjs.js"),a=require("vue"),p=require("../../../_virtual/plugin-vue_export-helper.cjs.js");const u=["aria-label","tabindex"],b={ref:"calendarRef",class:"neon-date-picker__calendar"},k={class:"neon-date-picker__calendar-header"},m={class:"neon-date-picker__calendar-title-readonly"},v={class:"neon-date-picker__calendar-header-actions"},g=a.createElementVNode("hr",null,null,-1),h={class:"neon-date-picker__calendar-options"},y={class:"neon-date-picker__calendar-header"},D={key:0,class:"neon-date-picker__calendar-title-readonly"},N={class:"neon-date-picker__calendar-header-actions"},B=a.createElementVNode("hr",null,null,-1),V={class:"neon-date-picker__calendar-options"},$={class:"neon-date-picker__calendar-header"},E={key:0,class:"neon-date-picker__calendar-title-readonly"},C={class:"neon-date-picker__calendar-header-actions"},Y={class:"neon-date-picker__calendar-dows"},z=a.createElementVNode("hr",null,null,-1),M=a.createElementVNode("hr",null,null,-1),w={class:"neon-button-group"};function L(e,n,S,P,F,O){const d=a.resolveComponent("neon-input"),o=a.resolveComponent("neon-button"),s=a.resolveComponent("neon-dropdown");return a.openBlock(),a.createElementBlock("div",{class:a.normalizeClass([[`neon-date-picker--${e.size}`,`neon-date-picker--${e.color}`,{"neon-date-picker--disabled":e.disabled,"neon-date-picker--open":e.calendarOpen}],"neon-date-picker"])},[a.createVNode(s,{ref:"dropdown",modelValue:e.calendarOpen,"onUpdate:modelValue":[n[13]||(n[13]=l=>e.calendarOpen=l),n[14]||(n[14]=l=>e.resetToCalendar())],placement:e.placement},{"dropdown-button":a.withCtx(()=>[a.createVNode(d,{color:e.color,disabled:e.disabled,"icon-readonly":!0,"model-value":e.formattedValue,placeholder:e.placeholder,size:e.size,tabindex:-1,class:"neon-date-picker__button",icon:"calendar",type:"text"},null,8,["color","disabled","model-value","placeholder","size"]),a.createElementVNode("div",{"aria-label":e.openCalendarLabel,tabindex:e.disabled?-1:0,class:"neon-date-picker__button-click-capture",role:"button",onClick:n[0]||(n[0]=l=>!e.disabled&&e.openCalendar()),onKeydown:[n[1]||(n[1]=a.withKeys(a.withModifiers(l=>e.openCalendar(),["stop","prevent"]),["enter"])),n[2]||(n[2]=a.withKeys(a.withModifiers(l=>e.openCalendar(),["stop","prevent"]),["space"]))]},null,40,u)]),default:a.withCtx(()=>[a.createElementVNode("div",b,[e.yearSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:0},[a.createElementVNode("div",k,[a.createElementVNode("span",m,a.toDisplayString(`${e.calendar.pageDecadeStart}\u2013${e.calendar.pageDecadeStart+9}`),1),a.createElementVNode("div",v,[a.createVNode(o,{"aria-label":e.previousDecadeLabel,circular:!0,color:e.color,disabled:e.isPreviousDecadeDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClick:n[3]||(n[3]=l=>e.onPreviousDecade())},null,8,["aria-label","color","disabled"]),a.createVNode(o,{"aria-label":e.nextDecadeLabel,circular:!0,color:e.color,disabled:e.isNextDecadeDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClick:n[4]||(n[4]=l=>e.onNextDecade())},null,8,["aria-label","color","disabled"])])]),g,a.createElementVNode("div",h,[(a.openBlock(),a.createElementBlock(a.Fragment,null,a.renderList(10,l=>a.createVNode(o,{key:l,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":e.calendar.pageYear===e.calendar.pageDecadeStart+l-1,"neon-date-picker__calendar-option--today":e.calendar.today.year===e.calendar.pageDecadeStart+l-1,"neon-date-picker__calendar-option--disabled":e.isYearDisabled(e.calendar.pageDecadeStart+l-1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isYearDisabled(e.calendar.pageDecadeStart+l-1),"full-width":!0,label:`${e.calendar.pageDecadeStart+l-1}`,"button-style":"text",size:"s",onClick:r=>e.selectYear(e.calendar.pageDecadeStart+l-1)},null,8,["class","color","disabled","label","onClick"])),64))])],64)):e.monthSelectionOpen?(a.openBlock(),a.createElementBlock(a.Fragment,{key:1},[a.createElementVNode("div",y,[e.isChangeYearDisabled?(a.openBlock(),a.createElementBlock("span",D,a.toDisplayString(e.calendar.pageYear),1)):(a.openBlock(),a.createBlock(o,{key:1,"aria-label":e.changeYearLabel,label:`${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"switch","icon-position":"right",size:"m",onClick:n[5]||(n[5]=l=>e.changeYear())},null,8,["aria-label","label"])),a.createElementVNode("div",N,[a.createVNode(o,{"aria-label":e.previousYearLabel,circular:!0,color:e.color,disabled:e.isPreviousYearDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClick:n[6]||(n[6]=l=>e.onPreviousYear())},null,8,["aria-label","color","disabled"]),a.createVNode(o,{"aria-label":e.nextYearLabel,circular:!0,color:e.color,disabled:e.isNextYearDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClick:n[7]||(n[7]=l=>e.onNextYear())},null,8,["aria-label","color","disabled"])])]),B,a.createElementVNode("div",V,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.months,(l,r)=>(a.openBlock(),a.createBlock(o,{key:r,class:a.normalizeClass([{"neon-date-picker__calendar-option--selected":r+1===e.calendar.pageMonth,"neon-date-picker__calendar-option--today":r+1===e.calendar.today.month&&e.calendar.today.year===e.calendar.pageYear,"neon-date-picker__calendar-option--disabled":e.isMonthDisabled(e.calendar.pageYear,r+1)},"neon-date-picker__calendar-option"]),color:e.color,disabled:e.isMonthDisabled(e.calendar.pageYear,r+1),"full-width":!0,label:l,"button-style":"text",size:"s",onClick:t=>e.selectMonth(r+1)},null,8,["class","color","disabled","label","onClick"]))),128))])],64)):(a.openBlock(),a.createElementBlock(a.Fragment,{key:2},[a.createElementVNode("div",$,[e.isChangeDateDisabled?(a.openBlock(),a.createElementBlock("span",E,a.toDisplayString(`${e.calendar.pageMonthName} ${e.calendar.pageYear}`),1)):(a.openBlock(),a.createBlock(o,{key:1,"aria-label":e.changeMonthLabel,label:`${e.calendar.pageMonthName} ${e.calendar.pageYear}`,"button-style":"text",class:"neon-date-picker__calendar-header-title",color:"high-contrast",icon:"switch","icon-position":"right",size:"m",onClick:n[8]||(n[8]=l=>e.changeMonth())},null,8,["aria-label","label"])),a.createElementVNode("div",C,[a.createVNode(o,{"aria-label":e.previousMonthLabel,circular:!0,color:e.color,disabled:e.isPreviousDisabled,"button-style":"text",class:"neon-date-picker__previous-button",icon:"chevron-left",size:"m",onClick:n[9]||(n[9]=l=>e.onPrevious())},null,8,["aria-label","color","disabled"]),a.createVNode(o,{"aria-label":e.nextMonthLabel,circular:!0,color:e.color,disabled:e.isNextDisabled,"button-style":"text",class:"neon-date-picker__next-button",icon:"chevron-right",size:"m",onClick:n[10]||(n[10]=l=>e.onNext())},null,8,["aria-label","color","disabled"])])]),a.createElementVNode("div",Y,[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dowNames,l=>(a.openBlock(),a.createElementBlock("div",{key:l,class:"neon-date-picker__calendar-dow"},a.toDisplayString(l),1))),128))]),z,(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(e.calendar.dates,(l,r)=>(a.openBlock(),a.createElementBlock("div",{key:r,class:"neon-date-picker__calendar-dates"},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(l,(t,i)=>(a.openBlock(),a.createElementBlock(a.Fragment,null,[t?(a.openBlock(),a.createBlock(o,{key:i,circular:!0,class:a.normalizeClass([{"neon-date-picker__calendar-date--selected":e.modelValue===e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--today":e.today===e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear),"neon-date-picker__calendar-date--disabled":e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear))},"neon-date-picker__calendar-date"]),color:e.color,disabled:e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear)),label:`${t}`,tabindex:e.isDisabled(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear))?-1:0,transparent:!0,"button-style":"text",size:"m",onClick:j=>e.emitDate(e.isoDate(t,e.calendar.pageMonth,e.calendar.pageYear))},null,8,["class","color","disabled","label","tabindex","onClick"])):(a.openBlock(),a.createElementBlock("div",{key:`${i}-empty`,class:"neon-date-picker__calendar-date neon-date-picker__calendar-date--empty"}))],64))),256))]))),128))],64)),M,a.createElementVNode("div",w,[e.optional?(a.openBlock(),a.createBlock(o,{key:0,label:e.clearLabel,"button-style":"text",class:"neon-date-picker__calendar-clear-button",color:"high-contrast",size:"s",onClick:n[11]||(n[11]=l=>e.clear())},null,8,["label"])):a.createCommentVNode("",!0),a.createVNode(o,{color:e.color,label:e.doneLabel,"button-style":"text",class:"neon-date-picker__calendar-done-button",size:"s",onClick:n[12]||(n[12]=l=>e.done())},null,8,["color","label"])])],512)]),_:1},8,["modelValue","placement"]),a.createVNode(d,a.mergeProps({disabled:e.disabled,"hide-icon":!0,max:e.max,min:e.min,"model-value":e.modelValue,size:e.size,tabindex:-1,class:"neon-date-picker__native-input",type:"date"},e.attrs,{"onUpdate:modelValue":e.emitDate}),null,16,["disabled","max","min","model-value","size","onUpdate:modelValue"])],2)}var f=p(c,[["render",L]]);module.exports=f;
|
|
2
2
|
//# sourceMappingURL=NeonDatePicker.cjs.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import _sfc_main from "./NeonDatePicker.
|
|
1
|
+
import _sfc_main from "./NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.es.js";
|
|
2
2
|
import { resolveComponent, openBlock, createElementBlock, normalizeClass, createVNode, withCtx, createElementVNode, withKeys, withModifiers, Fragment, toDisplayString, renderList, createBlock, createCommentVNode, mergeProps } from "vue";
|
|
3
3
|
import _export_sfc from "../../../_virtual/plugin-vue_export-helper.es.js";
|
|
4
4
|
const _hoisted_1 = ["aria-label", "tabindex"];
|
|
@@ -255,6 +255,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255
255
|
disabled: _ctx.isDisabled(_ctx.isoDate(dateCol, _ctx.calendar.pageMonth, _ctx.calendar.pageYear)),
|
|
256
256
|
label: `${dateCol}`,
|
|
257
257
|
tabindex: _ctx.isDisabled(_ctx.isoDate(dateCol, _ctx.calendar.pageMonth, _ctx.calendar.pageYear)) ? -1 : 0,
|
|
258
|
+
transparent: true,
|
|
258
259
|
"button-style": "text",
|
|
259
260
|
size: "m",
|
|
260
261
|
onClick: ($event) => _ctx.emitDate(_ctx.isoDate(dateCol, _ctx.calendar.pageMonth, _ctx.calendar.pageYear))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDatePicker.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NeonDatePicker.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";var t=require("vue"),Z=require("../../../common/enums/NeonSize.cjs.js"),ee=require("../../../common/enums/NeonFunctionalColor.cjs.js"),ae=require("../../presentation/dropdown/NeonDropdown.cjs.js"),te=require("../button/NeonButton.cjs.js"),ne=require("../input/NeonInput.cjs.js"),r=require("../../../common/utils/NeonDateUtils.cjs.js"),le=require("../../../common/enums/NeonDropdownPlacement.cjs.js"),oe=t.defineComponent({name:"NeonDatePicker",components:{NeonButton:te,NeonDropdown:ae,NeonInput:ne},props:{modelValue:{type:String,default:null},locale:{type:String,default:null},disabled:{type:Boolean,default:!1},size:{type:String,default:Z.NeonSize.Medium},color:{type:String,default:ee.NeonFunctionalColor.Primary},min:{type:String,default:null},max:{type:String,default:null},placement:{type:String,default:le.NeonDropdownPlacement.BottomLeft},disabledDates:{type:Array,default:()=>[]},placeholder:{type:String,required:!1},openCalendarLabel:{type:String,default:"Open calendar"},doneLabel:{type:String,default:"Done"},clearLabel:{type:String,default:"Clear"},changeMonthLabel:{type:String,default:"Change month"},previousMonthLabel:{type:String,default:"Previous month"},nextMonthLabel:{type:String,default:"Next month"},changeYearLabel:{type:String,default:"Change year"},previousYearLabel:{type:String,default:"Previous year"},nextYearLabel:{type:String,default:"Next year"},previousDecadeLabel:{type:String,default:"Previous decade"},nextDecadeLabel:{type:String,default:"Next decade"}},setup(e,{emit:g}){const D=t.useAttrs(),L=!D.required,P=t.ref(null),v=t.ref(null),c=t.ref(!1),d=t.ref(!1),m=t.ref(!1),U=t.computed(()=>{if(e.modelValue){const a=r.NeonDateUtils.stringToNeonDate(e.modelValue,e.locale,!0);if(a){const{dayFormatted:n,monthShortName:u,yearFormatted:X}=a;return`${n} ${u} ${X}`}}return""}),p=(a,n,u)=>r.NeonDateUtils.dmyToIso(a,n,u),y=new Date,N=e.locale||navigator.language,o=t.ref(e.modelValue?+e.modelValue.substring(5,7):+y.toLocaleString(N,{month:"numeric"})),l=t.ref(e.modelValue?+e.modelValue.substring(0,4):+y.toLocaleString(N,{year:"numeric"})),i=t.ref(Math.floor(l.value/10)*10),s=t.computed(()=>r.NeonDateUtils.toCalendarConfiguration(e.modelValue,o.value,l.value,i.value,e.locale)),q=t.computed(()=>{const{day:a,month:n,year:u}=s.value.today;return r.NeonDateUtils.dmyToIso(a,n,u)}),T=()=>{if(!e.disabled&&(c.value=!0,v.value)){const a=v.value.querySelector(".neon-date-picker__calendar-date--selected");a&&setTimeout(()=>a.focus())}},V=a=>{g("update:modelValue",a)},I=()=>{o.value===1?(o.value=12,l.value=l.value-1):o.value=o.value-1},w=()=>{o.value===12?(o.value=1,l.value=l.value+1):o.value=o.value+1},O=()=>{d.value=!0},b=t.computed(()=>e.min&&e.min>=r.NeonDateUtils.dmyToIso(1,s.value.pageMonth,s.value.pageYear)),h=t.computed(()=>{const{pageYear:a,pageMonth:n,lastDayOfMonth:u}=s.value;return e.max&&e.max<=r.NeonDateUtils.dmyToIso(u,n,a)}),F=t.computed(()=>b.value&&h.value),$=()=>{l.value=l.value-1},z=()=>{l.value=l.value+1},B=()=>{m.value=!0},S=t.computed(()=>e.min&&e.min>=r.NeonDateUtils.dmyToIso(1,1,s.value.pageYear)),x=t.computed(()=>e.max&&e.max<=r.NeonDateUtils.dmyToIso(31,12,s.value.pageYear)),_=t.computed(()=>S.value&&x.value),k=()=>{i.value=i.value-10},A=()=>{i.value=i.value+10},R=t.computed(()=>e.min&&e.min>=r.NeonDateUtils.dmyToIso(1,1,Math.floor(s.value.pageYear/10)*10)),E=t.computed(()=>e.max&&e.max<=r.NeonDateUtils.dmyToIso(31,12,Math.floor(s.value.pageYear/10)*10+9)),f=()=>{d.value=!1,m.value=!1},G=()=>{c.value=!1,f()},H=()=>{g("update:modelValue",null),c.value=!1,f()},J=a=>{o.value=a,d.value=!1},K=a=>{l.value=a,m.value=!1},Q=a=>{var n;return((n=e.disabledDates)==null?void 0:n.indexOf(a))>=0||e.min&&e.min>a||e.max&&e.max<a},W=(a,n)=>{const u=`${a}-${n<10?"0"+n:n}`;return M.value&&M.value>u||C.value&&C.value<u},Y=t.computed(()=>e.min?+e.min.substring(0,4):null),M=t.computed(()=>e.min?e.min.substring(0,7):null),j=t.computed(()=>e.max?+e.max.substring(0,4):null),C=t.computed(()=>e.max?e.max.substring(0,7):null);return{attrs:D,calendar:s,calendarOpen:c,dropdown:P,formattedValue:U,isChangeDateDisabled:F,isChangeYearDisabled:_,isNextDisabled:h,isNextDecadeDisabled:E,isNextYearDisabled:x,isPreviousDisabled:b,isPreviousDecadeDisabled:R,isPreviousYearDisabled:S,monthSelectionOpen:d,optional:L,today:q,calendarRef:v,yearSelectionOpen:m,changeMonth:O,changeYear:B,clear:H,done:G,emitDate:V,isDisabled:Q,isoDate:p,isMonthDisabled:W,isYearDisabled:a=>Y.value&&Y.value>a||j.value&&j.value<a,openCalendar:T,onNext:w,onNextDecade:A,onNextYear:z,onPrevious:I,onPreviousDecade:k,onPreviousYear:$,resetToCalendar:f,selectMonth:J,selectYear:K}}});module.exports=oe;
|
|
2
|
-
//# sourceMappingURL=NeonDatePicker.
|
|
2
|
+
//# sourceMappingURL=NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonDatePicker.ts_vue_type_script_src_01c3f912_lang.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=01c3f912&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref(\n props.modelValue ? +props.modelValue.substring(5, 7) : +todayDate.toLocaleString(locale, { month: 'numeric' }),\n );\n const pageYear = ref(\n props.modelValue ? +props.modelValue.substring(0, 4) : +todayDate.toLocaleString(locale, { year: 'numeric' }),\n );\n const pageDecadeStart = ref(Math.floor(pageYear.value / 10) * 10);\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const openCalendar = () => {\n if (!props.disabled) {\n calendarOpen.value = true;\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n openCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","calendar","today","openCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NeonDatePicker.ts_vue_type_script_src_56e4ee8a_lang.cjs.js","sources":["../../../../src/components/user-input/date-picker/NeonDatePicker.ts?vue&type=script&src=56e4ee8a&lang.ts"],"sourcesContent":["import { computed, defineComponent, ref, useAttrs } from 'vue';\nimport { NeonSize } from '@/common/enums/NeonSize';\nimport { NeonFunctionalColor } from '@/common/enums/NeonFunctionalColor';\nimport NeonDropdown from '@/components/presentation/dropdown/NeonDropdown.vue';\nimport NeonButton from '@/components/user-input/button/NeonButton.vue';\nimport NeonInput from '@/components/user-input/input/NeonInput.vue';\nimport { NeonDateUtils } from '@/common/utils/NeonDateUtils';\nimport { NeonDropdownPlacement } from '@/common/enums/NeonDropdownPlacement';\n\n/**\n * <strong>NeonDatePicker</strong> is the equivalent of the native\n * <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date\" target=\"_blank\">HTML Date Input</a>.\n * It accepts an <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> date string &\n * allows the user to select a date. Dates are formatted with the provided locale, if none is provided the browser\n * locale is used as a default. On touch devices the native date picker is presented to the user.\n *\n * The input date is displayed to the user WITHOUT any adjustment for their timezone, however 'Today' on the calendar is\n * highlighted for the user's timezone.\n *\n * This component interaction was inspired by this <a href=\"https://icehaunter.github.io/vue3-datepicker\" target=\"_blank\">vue-datepicker</a>\n */\nexport default defineComponent({\n name: 'NeonDatePicker',\n components: {\n NeonButton,\n NeonDropdown,\n NeonInput,\n },\n props: {\n /**\n * The selected date. A date string in the\n * <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n modelValue: { type: String, default: null },\n /**\n * The locale used for display purposes. This defaults to the browser's locale if none is provided.\n */\n locale: { type: String, default: null },\n /**\n * Disable date picker\n */\n disabled: { type: Boolean, default: false },\n /**\n * The size of the date picker, one of NeonSize.Small | NeonSize.Medium | NeonSize.Large.\n */\n size: { type: String as () => NeonSize, default: NeonSize.Medium },\n /**\n * Color of the date picker\n */\n color: { type: String as () => NeonFunctionalColor, default: NeonFunctionalColor.Primary },\n /**\n * Minimum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n min: { type: String, default: null },\n /**\n * Maximum allowed date value in the <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.\n */\n max: { type: String, default: null },\n /**\n * The placement of the dropdown calendar popup.\n */\n placement: { type: String as () => NeonDropdownPlacement, default: NeonDropdownPlacement.BottomLeft },\n /**\n * Disabled dates, a list of <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format\n * dates for which to disable selection.\n */\n disabledDates: { type: Array as () => Array<string>, default: () => [] },\n /**\n * This is the placeholder for the text input when no value is provided.\n */\n placeholder: { type: String, required: false },\n /**\n * This is the label of the input field which opens the calendar. This is technically a button.\n */\n openCalendarLabel: { type: String, default: 'Open calendar' },\n /**\n * This is the label of the 'Done' button in the calendar popup.\n */\n doneLabel: { type: String, default: 'Done' },\n /**\n * This is the label of the 'Clear' button in the calendar popup.\n */\n clearLabel: { type: String, default: 'Clear' },\n /**\n * This is the ARIA label of the 'Change month' button in the calendar popup.\n */\n changeMonthLabel: { type: String, default: 'Change month' },\n /**\n * This is the ARIA label of the 'Previous month' button in the calendar popup.\n */\n previousMonthLabel: { type: String, default: 'Previous month' },\n /**\n * This is the ARIA label of the 'Next month' button in the calendar popup.\n */\n nextMonthLabel: { type: String, default: 'Next month' },\n /**\n * This is the ARIA label of the 'Change year' button in the calendar popup.\n */\n changeYearLabel: { type: String, default: 'Change year' },\n /**\n * This is the ARIA label of the 'Previous year' button in the calendar popup.\n */\n previousYearLabel: { type: String, default: 'Previous year' },\n /**\n * This is the ARIA label of the 'Next year' button in the calendar popup.\n */\n nextYearLabel: { type: String, default: 'Next year' },\n /**\n * This is the ARIA label of the 'Previous decade' button in the calendar popup.\n */\n previousDecadeLabel: { type: String, default: 'Previous decade' },\n /**\n * This is the ARIA label of the 'Next decade' button in the calendar popup.\n */\n nextDecadeLabel: { type: String, default: 'Next decade' },\n },\n setup(props, { emit }) {\n const attrs = useAttrs();\n const optional = !attrs.required;\n\n const dropdown = ref<HTMLElement | null>(null);\n const calendarRef = ref<HTMLElement | null>(null);\n const calendarOpen = ref<boolean>(false);\n const monthSelectionOpen = ref<boolean>(false);\n const yearSelectionOpen = ref<boolean>(false);\n\n const formattedValue = computed(() => {\n if (props.modelValue) {\n const formattedDate = NeonDateUtils.stringToNeonDate(props.modelValue, props.locale, true);\n if (formattedDate) {\n const { dayFormatted, monthShortName, yearFormatted } = formattedDate;\n return `${dayFormatted} ${monthShortName} ${yearFormatted}`;\n }\n }\n\n return '';\n });\n\n const isoDate = (day: number, month: number, year: number) => NeonDateUtils.dmyToIso(day, month, year);\n\n const todayDate = new Date();\n const locale = props.locale || navigator.language;\n\n const pageMonth = ref(\n props.modelValue ? +props.modelValue.substring(5, 7) : +todayDate.toLocaleString(locale, { month: 'numeric' }),\n );\n const pageYear = ref(\n props.modelValue ? +props.modelValue.substring(0, 4) : +todayDate.toLocaleString(locale, { year: 'numeric' }),\n );\n const pageDecadeStart = ref(Math.floor(pageYear.value / 10) * 10);\n\n const calendar = computed(() =>\n NeonDateUtils.toCalendarConfiguration(\n props.modelValue,\n pageMonth.value,\n pageYear.value,\n pageDecadeStart.value,\n props.locale,\n ),\n );\n\n const today = computed(() => {\n const { day, month, year } = calendar.value.today;\n return NeonDateUtils.dmyToIso(day, month, year);\n });\n\n const openCalendar = () => {\n if (!props.disabled) {\n calendarOpen.value = true;\n if (calendarRef.value) {\n const selected = calendarRef.value.querySelector('.neon-date-picker__calendar-date--selected') as HTMLElement;\n if (selected) {\n setTimeout(() => selected.focus());\n }\n }\n }\n };\n\n const emitDate = (newDate: string) => {\n emit('update:modelValue', newDate);\n };\n\n const onPrevious = () => {\n if (pageMonth.value === 1) {\n pageMonth.value = 12;\n pageYear.value = pageYear.value - 1;\n } else {\n pageMonth.value = pageMonth.value - 1;\n }\n };\n\n const onNext = () => {\n if (pageMonth.value === 12) {\n pageMonth.value = 1;\n pageYear.value = pageYear.value + 1;\n } else {\n pageMonth.value = pageMonth.value + 1;\n }\n };\n\n const changeMonth = () => {\n monthSelectionOpen.value = true;\n };\n\n const isPreviousDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, calendar.value.pageMonth, calendar.value.pageYear),\n );\n const isNextDisabled = computed(() => {\n const { pageYear, pageMonth, lastDayOfMonth } = calendar.value;\n return props.max && props.max <= NeonDateUtils.dmyToIso(lastDayOfMonth, pageMonth, pageYear);\n });\n const isChangeDateDisabled = computed(() => isPreviousDisabled.value && isNextDisabled.value);\n\n const onPreviousYear = () => {\n pageYear.value = pageYear.value - 1;\n };\n\n const onNextYear = () => {\n pageYear.value = pageYear.value + 1;\n };\n\n const changeYear = () => {\n yearSelectionOpen.value = true;\n };\n\n const isPreviousYearDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, calendar.value.pageYear),\n );\n const isNextYearDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, calendar.value.pageYear),\n );\n const isChangeYearDisabled = computed(() => isPreviousYearDisabled.value && isNextYearDisabled.value);\n\n const onPreviousDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value - 10;\n };\n\n const onNextDecade = () => {\n pageDecadeStart.value = pageDecadeStart.value + 10;\n };\n\n const isPreviousDecadeDisabled = computed(\n () => props.min && props.min >= NeonDateUtils.dmyToIso(1, 1, Math.floor(calendar.value.pageYear / 10) * 10),\n );\n const isNextDecadeDisabled = computed(\n () => props.max && props.max <= NeonDateUtils.dmyToIso(31, 12, Math.floor(calendar.value.pageYear / 10) * 10 + 9),\n );\n\n const resetToCalendar = () => {\n monthSelectionOpen.value = false;\n yearSelectionOpen.value = false;\n };\n\n const done = () => {\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const clear = () => {\n emit('update:modelValue', null);\n calendarOpen.value = false;\n resetToCalendar();\n };\n\n const selectMonth = (month: number) => {\n pageMonth.value = month;\n monthSelectionOpen.value = false;\n };\n\n const selectYear = (year: number) => {\n pageYear.value = year;\n yearSelectionOpen.value = false;\n };\n\n const isDisabled = (isoDate: string) => {\n return (\n props.disabledDates?.indexOf(isoDate) >= 0 ||\n (props.min && props.min > isoDate) ||\n (props.max && props.max < isoDate)\n );\n };\n\n const isMonthDisabled = (year: number, month: number) => {\n const dateStr = `${year}-${month < 10 ? '0' + month : month}`;\n return (\n (minYearMonth.value && minYearMonth.value > dateStr) || (maxYearMonth.value && maxYearMonth.value < dateStr)\n );\n };\n\n const minYear = computed<number | null>(() => (props.min ? +props.min.substring(0, 4) : null));\n const minYearMonth = computed<string | null>(() => (props.min ? props.min.substring(0, 7) : null));\n const maxYear = computed<number | null>(() => (props.max ? +props.max.substring(0, 4) : null));\n const maxYearMonth = computed<string | null>(() => (props.max ? props.max.substring(0, 7) : null));\n\n const isYearDisabled = (year: number) => {\n return (minYear.value && minYear.value > year) || (maxYear.value && maxYear.value < year);\n };\n\n return {\n attrs,\n calendar,\n calendarOpen,\n dropdown,\n formattedValue,\n isChangeDateDisabled,\n isChangeYearDisabled,\n isNextDisabled,\n isNextDecadeDisabled,\n isNextYearDisabled,\n isPreviousDisabled,\n isPreviousDecadeDisabled,\n isPreviousYearDisabled,\n monthSelectionOpen,\n optional,\n today,\n calendarRef,\n yearSelectionOpen,\n changeMonth,\n changeYear,\n clear,\n done,\n emitDate,\n isDisabled,\n isoDate,\n isMonthDisabled,\n isYearDisabled,\n openCalendar,\n onNext,\n onNextDecade,\n onNextYear,\n onPrevious,\n onPreviousDecade,\n onPreviousYear,\n resetToCalendar,\n selectMonth,\n selectYear,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonButton","NeonDropdown","NeonInput","NeonSize","NeonFunctionalColor","NeonDropdownPlacement","props","emit","attrs","useAttrs","optional","dropdown","ref","calendarRef","calendarOpen","monthSelectionOpen","yearSelectionOpen","formattedValue","computed","formattedDate","NeonDateUtils","dayFormatted","monthShortName","yearFormatted","isoDate","day","month","year","todayDate","locale","pageMonth","pageYear","pageDecadeStart","calendar","today","openCalendar","selected","emitDate","newDate","onPrevious","onNext","changeMonth","isPreviousDisabled","isNextDisabled","lastDayOfMonth","isChangeDateDisabled","onPreviousYear","onNextYear","changeYear","isPreviousYearDisabled","isNextYearDisabled","isChangeYearDisabled","onPreviousDecade","onNextDecade","isPreviousDecadeDisabled","isNextDecadeDisabled","resetToCalendar","done","clear","selectMonth","selectYear","isDisabled","_a","isMonthDisabled","dateStr","minYearMonth","maxYearMonth","minYear","maxYear"],"mappings":"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"}
|