@gcsa/console-vue 0.1.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/ConsoleHeader.vue.d.ts +18 -0
- package/dist/components/ConsoleHeader.vue.js +37 -0
- package/dist/components/ConsoleHeader.vue.js.map +1 -0
- package/dist/components/ConsoleHeader2.vue.js +5 -0
- package/dist/components/ConsoleHeader2.vue.js.map +1 -0
- package/dist/components/ConsolePage.vue.d.ts +18 -0
- package/dist/components/ConsolePage.vue.js +31 -0
- package/dist/components/ConsolePage.vue.js.map +1 -0
- package/dist/components/ConsolePage2.vue.js +5 -0
- package/dist/components/ConsolePage2.vue.js.map +1 -0
- package/dist/components/ConsoleShell.vue.d.ts +40 -0
- package/dist/components/ConsoleShell.vue.js +166 -0
- package/dist/components/ConsoleShell.vue.js.map +1 -0
- package/dist/components/ConsoleShell2.vue.js +5 -0
- package/dist/components/ConsoleShell2.vue.js.map +1 -0
- package/dist/components/ConsoleSidebar.vue.d.ts +13 -0
- package/dist/components/ConsoleSidebar.vue.js +52 -0
- package/dist/components/ConsoleSidebar.vue.js.map +1 -0
- package/dist/components/ConsoleSidebar2.vue.js +5 -0
- package/dist/components/ConsoleSidebar2.vue.js.map +1 -0
- package/dist/components/GcsaAlert.vue.d.ts +20 -0
- package/dist/components/GcsaAlert.vue.js +32 -0
- package/dist/components/GcsaAlert.vue.js.map +1 -0
- package/dist/components/GcsaAlert2.vue.js +5 -0
- package/dist/components/GcsaAlert2.vue.js.map +1 -0
- package/dist/components/GcsaAutoComplete.vue.d.ts +17 -0
- package/dist/components/GcsaAutoComplete.vue.js +136 -0
- package/dist/components/GcsaAutoComplete.vue.js.map +1 -0
- package/dist/components/GcsaAutoComplete2.vue.js +5 -0
- package/dist/components/GcsaAutoComplete2.vue.js.map +1 -0
- package/dist/components/GcsaAvatar.vue.d.ts +21 -0
- package/dist/components/GcsaAvatar.vue.js +23 -0
- package/dist/components/GcsaAvatar.vue.js.map +1 -0
- package/dist/components/GcsaAvatar2.vue.js +5 -0
- package/dist/components/GcsaAvatar2.vue.js.map +1 -0
- package/dist/components/GcsaBadge.vue.d.ts +20 -0
- package/dist/components/GcsaBadge.vue.js +20 -0
- package/dist/components/GcsaBadge.vue.js.map +1 -0
- package/dist/components/GcsaBadge2.vue.js +5 -0
- package/dist/components/GcsaBadge2.vue.js.map +1 -0
- package/dist/components/GcsaBrandMark.vue.d.ts +3 -0
- package/dist/components/GcsaBrandMark.vue.js +30 -0
- package/dist/components/GcsaBrandMark.vue.js.map +1 -0
- package/dist/components/GcsaBrandMark2.vue.js +5 -0
- package/dist/components/GcsaBrandMark2.vue.js.map +1 -0
- package/dist/components/GcsaBreadcrumb.vue.d.ts +3 -0
- package/dist/components/GcsaBreadcrumb.vue.js +37 -0
- package/dist/components/GcsaBreadcrumb.vue.js.map +1 -0
- package/dist/components/GcsaBreadcrumb2.vue.js +5 -0
- package/dist/components/GcsaBreadcrumb2.vue.js.map +1 -0
- package/dist/components/GcsaButton.vue.d.ts +23 -0
- package/dist/components/GcsaButton.vue.js +34 -0
- package/dist/components/GcsaButton.vue.js.map +1 -0
- package/dist/components/GcsaButton2.vue.js +5 -0
- package/dist/components/GcsaButton2.vue.js.map +1 -0
- package/dist/components/GcsaCalendar.vue.d.ts +11 -0
- package/dist/components/GcsaCalendar.vue.js +154 -0
- package/dist/components/GcsaCalendar.vue.js.map +1 -0
- package/dist/components/GcsaCalendar2.vue.js +5 -0
- package/dist/components/GcsaCalendar2.vue.js.map +1 -0
- package/dist/components/GcsaCard.vue.d.ts +19 -0
- package/dist/components/GcsaCard.vue.js +32 -0
- package/dist/components/GcsaCard.vue.js.map +1 -0
- package/dist/components/GcsaCard2.vue.js +5 -0
- package/dist/components/GcsaCard2.vue.js.map +1 -0
- package/dist/components/GcsaCascader.vue.d.ts +15 -0
- package/dist/components/GcsaCascader.vue.js +114 -0
- package/dist/components/GcsaCascader.vue.js.map +1 -0
- package/dist/components/GcsaCascader2.vue.js +5 -0
- package/dist/components/GcsaCascader2.vue.js.map +1 -0
- package/dist/components/GcsaChatPanel.vue.d.ts +61 -0
- package/dist/components/GcsaChatPanel.vue.js +291 -0
- package/dist/components/GcsaChatPanel.vue.js.map +1 -0
- package/dist/components/GcsaChatPanel2.vue.js +5 -0
- package/dist/components/GcsaChatPanel2.vue.js.map +1 -0
- package/dist/components/GcsaCheckbox.vue.d.ts +22 -0
- package/dist/components/GcsaCheckbox.vue.js +71 -0
- package/dist/components/GcsaCheckbox.vue.js.map +1 -0
- package/dist/components/GcsaCheckbox2.vue.js +5 -0
- package/dist/components/GcsaCheckbox2.vue.js.map +1 -0
- package/dist/components/GcsaCollapse.vue.d.ts +31 -0
- package/dist/components/GcsaCollapse.vue.js +71 -0
- package/dist/components/GcsaCollapse.vue.js.map +1 -0
- package/dist/components/GcsaCollapse2.vue.js +5 -0
- package/dist/components/GcsaCollapse2.vue.js.map +1 -0
- package/dist/components/GcsaConfigProvider.vue.d.ts +23 -0
- package/dist/components/GcsaConfigProvider.vue.js +103 -0
- package/dist/components/GcsaConfigProvider.vue.js.map +1 -0
- package/dist/components/GcsaConfigProvider2.vue.js +5 -0
- package/dist/components/GcsaConfigProvider2.vue.js.map +1 -0
- package/dist/components/GcsaDataTable.vue.d.ts +84 -0
- package/dist/components/GcsaDataTable.vue.js +1020 -0
- package/dist/components/GcsaDataTable.vue.js.map +1 -0
- package/dist/components/GcsaDataTable2.vue.js +5 -0
- package/dist/components/GcsaDataTable2.vue.js.map +1 -0
- package/dist/components/GcsaDatePicker.vue.d.ts +10 -0
- package/dist/components/GcsaDatePicker.vue.js +319 -0
- package/dist/components/GcsaDatePicker.vue.js.map +1 -0
- package/dist/components/GcsaDatePicker2.vue.js +5 -0
- package/dist/components/GcsaDatePicker2.vue.js.map +1 -0
- package/dist/components/GcsaDateRangeMonthPanel.vue.d.ts +3 -0
- package/dist/components/GcsaDateRangeMonthPanel.vue.js +110 -0
- package/dist/components/GcsaDateRangeMonthPanel.vue.js.map +1 -0
- package/dist/components/GcsaDateRangeMonthPanel2.vue.js +5 -0
- package/dist/components/GcsaDateRangeMonthPanel2.vue.js.map +1 -0
- package/dist/components/GcsaDateRangePicker.vue.d.ts +10 -0
- package/dist/components/GcsaDateRangePicker.vue.js +252 -0
- package/dist/components/GcsaDateRangePicker.vue.js.map +1 -0
- package/dist/components/GcsaDateRangePicker2.vue.js +5 -0
- package/dist/components/GcsaDateRangePicker2.vue.js.map +1 -0
- package/dist/components/GcsaDateTimePicker.vue.d.ts +11 -0
- package/dist/components/GcsaDateTimePicker.vue.js +360 -0
- package/dist/components/GcsaDateTimePicker.vue.js.map +1 -0
- package/dist/components/GcsaDateTimePicker2.vue.js +5 -0
- package/dist/components/GcsaDateTimePicker2.vue.js.map +1 -0
- package/dist/components/GcsaDescriptions.vue.d.ts +3 -0
- package/dist/components/GcsaDescriptions.vue.js +23 -0
- package/dist/components/GcsaDescriptions.vue.js.map +1 -0
- package/dist/components/GcsaDescriptions2.vue.js +5 -0
- package/dist/components/GcsaDescriptions2.vue.js.map +1 -0
- package/dist/components/GcsaDivider.vue.d.ts +3 -0
- package/dist/components/GcsaDivider.vue.js +15 -0
- package/dist/components/GcsaDivider.vue.js.map +1 -0
- package/dist/components/GcsaDivider2.vue.js +5 -0
- package/dist/components/GcsaDivider2.vue.js.map +1 -0
- package/dist/components/GcsaDrawer.vue.d.ts +30 -0
- package/dist/components/GcsaDrawer.vue.js +115 -0
- package/dist/components/GcsaDrawer.vue.js.map +1 -0
- package/dist/components/GcsaDrawer2.vue.js +5 -0
- package/dist/components/GcsaDrawer2.vue.js.map +1 -0
- package/dist/components/GcsaDropdown.vue.d.ts +26 -0
- package/dist/components/GcsaDropdown.vue.js +108 -0
- package/dist/components/GcsaDropdown.vue.js.map +1 -0
- package/dist/components/GcsaDropdown2.vue.js +5 -0
- package/dist/components/GcsaDropdown2.vue.js.map +1 -0
- package/dist/components/GcsaEmpty.vue.d.ts +19 -0
- package/dist/components/GcsaEmpty.vue.js +39 -0
- package/dist/components/GcsaEmpty.vue.js.map +1 -0
- package/dist/components/GcsaEmpty2.vue.js +5 -0
- package/dist/components/GcsaEmpty2.vue.js.map +1 -0
- package/dist/components/GcsaField.vue.d.ts +18 -0
- package/dist/components/GcsaField.vue.js +73 -0
- package/dist/components/GcsaField.vue.js.map +1 -0
- package/dist/components/GcsaField2.vue.js +5 -0
- package/dist/components/GcsaField2.vue.js.map +1 -0
- package/dist/components/GcsaForm.vue.d.ts +32 -0
- package/dist/components/GcsaForm.vue.js +77 -0
- package/dist/components/GcsaForm.vue.js.map +1 -0
- package/dist/components/GcsaForm2.vue.js +5 -0
- package/dist/components/GcsaForm2.vue.js.map +1 -0
- package/dist/components/GcsaFormField.vue.d.ts +39 -0
- package/dist/components/GcsaFormField.vue.js +54 -0
- package/dist/components/GcsaFormField.vue.js.map +1 -0
- package/dist/components/GcsaFormField2.vue.js +5 -0
- package/dist/components/GcsaFormField2.vue.js.map +1 -0
- package/dist/components/GcsaIcon.vue.d.ts +5 -0
- package/dist/components/GcsaIcon.vue.js +21 -0
- package/dist/components/GcsaIcon.vue.js.map +1 -0
- package/dist/components/GcsaIcon2.vue.js +5 -0
- package/dist/components/GcsaIcon2.vue.js.map +1 -0
- package/dist/components/GcsaImagePreview.vue.d.ts +9 -0
- package/dist/components/GcsaImagePreview.vue.js +64 -0
- package/dist/components/GcsaImagePreview.vue.js.map +1 -0
- package/dist/components/GcsaImagePreview2.vue.js +5 -0
- package/dist/components/GcsaImagePreview2.vue.js.map +1 -0
- package/dist/components/GcsaInput.vue.d.ts +19 -0
- package/dist/components/GcsaInput.vue.js +67 -0
- package/dist/components/GcsaInput.vue.js.map +1 -0
- package/dist/components/GcsaInput2.vue.js +5 -0
- package/dist/components/GcsaInput2.vue.js.map +1 -0
- package/dist/components/GcsaInputGroup.vue.d.ts +22 -0
- package/dist/components/GcsaInputGroup.vue.js +38 -0
- package/dist/components/GcsaInputGroup.vue.js.map +1 -0
- package/dist/components/GcsaInputGroup2.vue.js +5 -0
- package/dist/components/GcsaInputGroup2.vue.js.map +1 -0
- package/dist/components/GcsaInputNumber.vue.d.ts +13 -0
- package/dist/components/GcsaInputNumber.vue.js +135 -0
- package/dist/components/GcsaInputNumber.vue.js.map +1 -0
- package/dist/components/GcsaInputNumber2.vue.js +5 -0
- package/dist/components/GcsaInputNumber2.vue.js.map +1 -0
- package/dist/components/GcsaLoadingMask.vue.d.ts +3 -0
- package/dist/components/GcsaLoadingMask.vue.js +47 -0
- package/dist/components/GcsaLoadingMask.vue.js.map +1 -0
- package/dist/components/GcsaLoadingMask2.vue.js +5 -0
- package/dist/components/GcsaLoadingMask2.vue.js.map +1 -0
- package/dist/components/GcsaMarkdownRenderer.vue.d.ts +7 -0
- package/dist/components/GcsaMarkdownRenderer.vue.js +35 -0
- package/dist/components/GcsaMarkdownRenderer.vue.js.map +1 -0
- package/dist/components/GcsaMarkdownRenderer2.vue.js +5 -0
- package/dist/components/GcsaMarkdownRenderer2.vue.js.map +1 -0
- package/dist/components/GcsaMenu.vue.d.ts +14 -0
- package/dist/components/GcsaMenu.vue.js +63 -0
- package/dist/components/GcsaMenu.vue.js.map +1 -0
- package/dist/components/GcsaMenu2.vue.js +5 -0
- package/dist/components/GcsaMenu2.vue.js.map +1 -0
- package/dist/components/GcsaMenuNodes.vue.d.ts +9 -0
- package/dist/components/GcsaMenuNodes.vue.js +306 -0
- package/dist/components/GcsaMenuNodes.vue.js.map +1 -0
- package/dist/components/GcsaMenuNodes2.vue.js +5 -0
- package/dist/components/GcsaMenuNodes2.vue.js.map +1 -0
- package/dist/components/GcsaModal.vue.d.ts +26 -0
- package/dist/components/GcsaModal.vue.js +127 -0
- package/dist/components/GcsaModal.vue.js.map +1 -0
- package/dist/components/GcsaModal2.vue.js +5 -0
- package/dist/components/GcsaModal2.vue.js.map +1 -0
- package/dist/components/GcsaMultiSelect.vue.d.ts +16 -0
- package/dist/components/GcsaMultiSelect.vue.js +235 -0
- package/dist/components/GcsaMultiSelect.vue.js.map +1 -0
- package/dist/components/GcsaMultiSelect2.vue.js +5 -0
- package/dist/components/GcsaMultiSelect2.vue.js.map +1 -0
- package/dist/components/GcsaPagination.vue.d.ts +15 -0
- package/dist/components/GcsaPagination.vue.js +119 -0
- package/dist/components/GcsaPagination.vue.js.map +1 -0
- package/dist/components/GcsaPagination2.vue.js +5 -0
- package/dist/components/GcsaPagination2.vue.js.map +1 -0
- package/dist/components/GcsaPopconfirm.vue.d.ts +29 -0
- package/dist/components/GcsaPopconfirm.vue.js +133 -0
- package/dist/components/GcsaPopconfirm.vue.js.map +1 -0
- package/dist/components/GcsaPopconfirm2.vue.js +5 -0
- package/dist/components/GcsaPopconfirm2.vue.js.map +1 -0
- package/dist/components/GcsaPopover.vue.d.ts +21 -0
- package/dist/components/GcsaPopover.vue.js +138 -0
- package/dist/components/GcsaPopover.vue.js.map +1 -0
- package/dist/components/GcsaPopover2.vue.js +5 -0
- package/dist/components/GcsaPopover2.vue.js.map +1 -0
- package/dist/components/GcsaPortal.vue.d.ts +21 -0
- package/dist/components/GcsaPortal.vue.js +32 -0
- package/dist/components/GcsaPortal.vue.js.map +1 -0
- package/dist/components/GcsaPortal2.vue.js +5 -0
- package/dist/components/GcsaPortal2.vue.js.map +1 -0
- package/dist/components/GcsaProgress.vue.d.ts +5 -0
- package/dist/components/GcsaProgress.vue.js +26 -0
- package/dist/components/GcsaProgress.vue.js.map +1 -0
- package/dist/components/GcsaProgress2.vue.js +5 -0
- package/dist/components/GcsaProgress2.vue.js.map +1 -0
- package/dist/components/GcsaRadioGroup.vue.d.ts +9 -0
- package/dist/components/GcsaRadioGroup.vue.js +61 -0
- package/dist/components/GcsaRadioGroup.vue.js.map +1 -0
- package/dist/components/GcsaRadioGroup2.vue.js +5 -0
- package/dist/components/GcsaRadioGroup2.vue.js.map +1 -0
- package/dist/components/GcsaResult.vue.d.ts +19 -0
- package/dist/components/GcsaResult.vue.js +37 -0
- package/dist/components/GcsaResult.vue.js.map +1 -0
- package/dist/components/GcsaResult2.vue.js +5 -0
- package/dist/components/GcsaResult2.vue.js.map +1 -0
- package/dist/components/GcsaRow.vue.d.ts +20 -0
- package/dist/components/GcsaRow.vue.js +19 -0
- package/dist/components/GcsaRow.vue.js.map +1 -0
- package/dist/components/GcsaRow2.vue.js +5 -0
- package/dist/components/GcsaRow2.vue.js.map +1 -0
- package/dist/components/GcsaSelect.vue.d.ts +15 -0
- package/dist/components/GcsaSelect.vue.js +183 -0
- package/dist/components/GcsaSelect.vue.js.map +1 -0
- package/dist/components/GcsaSelect2.vue.js +5 -0
- package/dist/components/GcsaSelect2.vue.js.map +1 -0
- package/dist/components/GcsaSkeleton.vue.d.ts +6 -0
- package/dist/components/GcsaSkeleton.vue.js +20 -0
- package/dist/components/GcsaSkeleton.vue.js.map +1 -0
- package/dist/components/GcsaSkeleton2.vue.js +5 -0
- package/dist/components/GcsaSkeleton2.vue.js.map +1 -0
- package/dist/components/GcsaSpace.vue.d.ts +18 -0
- package/dist/components/GcsaSpace.vue.js +19 -0
- package/dist/components/GcsaSpace.vue.js.map +1 -0
- package/dist/components/GcsaSpace2.vue.js +5 -0
- package/dist/components/GcsaSpace2.vue.js.map +1 -0
- package/dist/components/GcsaSpin.vue.d.ts +20 -0
- package/dist/components/GcsaSpin.vue.js +29 -0
- package/dist/components/GcsaSpin.vue.js.map +1 -0
- package/dist/components/GcsaSpin2.vue.js +5 -0
- package/dist/components/GcsaSpin2.vue.js.map +1 -0
- package/dist/components/GcsaStatistic.vue.d.ts +18 -0
- package/dist/components/GcsaStatistic.vue.js +23 -0
- package/dist/components/GcsaStatistic.vue.js.map +1 -0
- package/dist/components/GcsaStatistic2.vue.js +5 -0
- package/dist/components/GcsaStatistic2.vue.js.map +1 -0
- package/dist/components/GcsaSteps.vue.d.ts +14 -0
- package/dist/components/GcsaSteps.vue.js +77 -0
- package/dist/components/GcsaSteps.vue.js.map +1 -0
- package/dist/components/GcsaSteps2.vue.js +5 -0
- package/dist/components/GcsaSteps2.vue.js.map +1 -0
- package/dist/components/GcsaSwitch.vue.d.ts +22 -0
- package/dist/components/GcsaSwitch.vue.js +52 -0
- package/dist/components/GcsaSwitch.vue.js.map +1 -0
- package/dist/components/GcsaSwitch2.vue.js +5 -0
- package/dist/components/GcsaSwitch2.vue.js.map +1 -0
- package/dist/components/GcsaTabs.vue.d.ts +22 -0
- package/dist/components/GcsaTabs.vue.js +61 -0
- package/dist/components/GcsaTabs.vue.js.map +1 -0
- package/dist/components/GcsaTabs2.vue.js +5 -0
- package/dist/components/GcsaTabs2.vue.js.map +1 -0
- package/dist/components/GcsaTag.vue.d.ts +18 -0
- package/dist/components/GcsaTag.vue.js +19 -0
- package/dist/components/GcsaTag.vue.js.map +1 -0
- package/dist/components/GcsaTag2.vue.js +5 -0
- package/dist/components/GcsaTag2.vue.js.map +1 -0
- package/dist/components/GcsaTextarea.vue.d.ts +18 -0
- package/dist/components/GcsaTextarea.vue.js +66 -0
- package/dist/components/GcsaTextarea.vue.js.map +1 -0
- package/dist/components/GcsaTextarea2.vue.js +5 -0
- package/dist/components/GcsaTextarea2.vue.js.map +1 -0
- package/dist/components/GcsaTimePicker.vue.d.ts +17 -0
- package/dist/components/GcsaTimePicker.vue.js +264 -0
- package/dist/components/GcsaTimePicker.vue.js.map +1 -0
- package/dist/components/GcsaTimePicker2.vue.js +5 -0
- package/dist/components/GcsaTimePicker2.vue.js.map +1 -0
- package/dist/components/GcsaTimeline.vue.d.ts +3 -0
- package/dist/components/GcsaTimeline.vue.js +41 -0
- package/dist/components/GcsaTimeline.vue.js.map +1 -0
- package/dist/components/GcsaTimeline2.vue.js +5 -0
- package/dist/components/GcsaTimeline2.vue.js.map +1 -0
- package/dist/components/GcsaToastStack.vue.d.ts +3 -0
- package/dist/components/GcsaToastStack.vue.js +96 -0
- package/dist/components/GcsaToastStack.vue.js.map +1 -0
- package/dist/components/GcsaToastStack2.vue.js +5 -0
- package/dist/components/GcsaToastStack2.vue.js.map +1 -0
- package/dist/components/GcsaTooltip.vue.d.ts +28 -0
- package/dist/components/GcsaTooltip.vue.js +102 -0
- package/dist/components/GcsaTooltip.vue.js.map +1 -0
- package/dist/components/GcsaTooltip2.vue.js +5 -0
- package/dist/components/GcsaTooltip2.vue.js.map +1 -0
- package/dist/components/GcsaTransfer.vue.d.ts +12 -0
- package/dist/components/GcsaTransfer.vue.js +139 -0
- package/dist/components/GcsaTransfer.vue.js.map +1 -0
- package/dist/components/GcsaTransfer2.vue.js +5 -0
- package/dist/components/GcsaTransfer2.vue.js.map +1 -0
- package/dist/components/GcsaTree.vue.d.ts +14 -0
- package/dist/components/GcsaTree.vue.js +76 -0
- package/dist/components/GcsaTree.vue.js.map +1 -0
- package/dist/components/GcsaTree2.vue.js +5 -0
- package/dist/components/GcsaTree2.vue.js.map +1 -0
- package/dist/components/GcsaTypography.vue.d.ts +21 -0
- package/dist/components/GcsaTypography.vue.js +21 -0
- package/dist/components/GcsaTypography.vue.js.map +1 -0
- package/dist/components/GcsaTypography2.vue.js +5 -0
- package/dist/components/GcsaTypography2.vue.js.map +1 -0
- package/dist/components/GcsaUpload.vue.d.ts +26 -0
- package/dist/components/GcsaUpload.vue.js +160 -0
- package/dist/components/GcsaUpload.vue.js.map +1 -0
- package/dist/components/GcsaUpload2.vue.js +5 -0
- package/dist/components/GcsaUpload2.vue.js.map +1 -0
- package/dist/components/gcsaDataTableTypes.d.ts +18 -0
- package/dist/composables/gcsaFormTypes.d.ts +9 -0
- package/dist/composables/useDocumentThemeSync.d.ts +3 -0
- package/dist/composables/useDocumentThemeSync.js +7 -0
- package/dist/composables/useDocumentThemeSync.js.map +1 -0
- package/dist/composables/useGcsaComponentSize.d.ts +7 -0
- package/dist/composables/useGcsaComponentSize.js +26 -0
- package/dist/composables/useGcsaComponentSize.js.map +1 -0
- package/dist/composables/useGcsaFormField.d.ts +26 -0
- package/dist/composables/useGcsaFormField.js +47 -0
- package/dist/composables/useGcsaFormField.js.map +1 -0
- package/dist/composables/useGcsaFormSchema.d.ts +3 -0
- package/dist/composables/useGcsaFormSchema.js +7 -0
- package/dist/composables/useGcsaFormSchema.js.map +1 -0
- package/dist/composables/useGcsaLocale.d.ts +5 -0
- package/dist/composables/useGcsaLocale.js +17 -0
- package/dist/composables/useGcsaLocale.js.map +1 -0
- package/dist/composables/useGcsaMessage.d.ts +2 -0
- package/dist/composables/useGcsaMessage.js +12 -0
- package/dist/composables/useGcsaMessage.js.map +1 -0
- package/dist/composables/useGcsaPopupZIndex.d.ts +6 -0
- package/dist/composables/useGcsaPopupZIndex.js +16 -0
- package/dist/composables/useGcsaPopupZIndex.js.map +1 -0
- package/dist/composables/useGcsaTextCount.d.ts +17 -0
- package/dist/composables/useGcsaTextCount.js +21 -0
- package/dist/composables/useGcsaTextCount.js.map +1 -0
- package/dist/composables/useGcsaTheme.d.ts +3 -0
- package/dist/composables/useGcsaTheme.js +11 -0
- package/dist/composables/useGcsaTheme.js.map +1 -0
- package/dist/composables/useGcsaZIndex.d.ts +10 -0
- package/dist/composables/useGcsaZIndex.js +44 -0
- package/dist/composables/useGcsaZIndex.js.map +1 -0
- package/dist/composables/useMessage.d.ts +7 -0
- package/dist/composables/useMessage.js +5 -0
- package/dist/composables/useMessage.js.map +1 -0
- package/dist/composables/usePreserveScrollOnFocus.d.ts +4 -0
- package/dist/composables/usePreserveScrollOnFocus.js +86 -0
- package/dist/composables/usePreserveScrollOnFocus.js.map +1 -0
- package/dist/icons/iconNames.d.ts +7 -0
- package/dist/icons/iconNames.js +24 -0
- package/dist/icons/iconNames.js.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/registry.d.ts +3 -0
- package/dist/icons/registry.js +58 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons/svg/alert.svg.js +9 -0
- package/dist/icons/svg/alert.svg.js.map +1 -0
- package/dist/icons/svg/assets.svg.js +9 -0
- package/dist/icons/svg/assets.svg.js.map +1 -0
- package/dist/icons/svg/chat.svg.js +8 -0
- package/dist/icons/svg/chat.svg.js.map +1 -0
- package/dist/icons/svg/check.svg.js +8 -0
- package/dist/icons/svg/check.svg.js.map +1 -0
- package/dist/icons/svg/chevron-down.svg.js +8 -0
- package/dist/icons/svg/chevron-down.svg.js.map +1 -0
- package/dist/icons/svg/chevron-left.svg.js +8 -0
- package/dist/icons/svg/chevron-left.svg.js.map +1 -0
- package/dist/icons/svg/chevron-right.svg.js +8 -0
- package/dist/icons/svg/chevron-right.svg.js.map +1 -0
- package/dist/icons/svg/chevron-up.svg.js +8 -0
- package/dist/icons/svg/chevron-up.svg.js.map +1 -0
- package/dist/icons/svg/close.svg.js +6 -0
- package/dist/icons/svg/close.svg.js.map +1 -0
- package/dist/icons/svg/dashboard.svg.js +8 -0
- package/dist/icons/svg/dashboard.svg.js.map +1 -0
- package/dist/icons/svg/menu.svg.js +8 -0
- package/dist/icons/svg/menu.svg.js.map +1 -0
- package/dist/icons/svg/plus.svg.js +6 -0
- package/dist/icons/svg/plus.svg.js.map +1 -0
- package/dist/icons/svg/result-empty.svg.js +6 -0
- package/dist/icons/svg/result-empty.svg.js.map +1 -0
- package/dist/icons/svg/settings.svg.js +8 -0
- package/dist/icons/svg/settings.svg.js.map +1 -0
- package/dist/icons/svg/users.svg.js +11 -0
- package/dist/icons/svg/users.svg.js.map +1 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +172 -0
- package/dist/index.js.map +1 -0
- package/dist/loading/directive.d.ts +5 -0
- package/dist/loading/directive.js +57 -0
- package/dist/loading/directive.js.map +1 -0
- package/dist/loading/index.d.ts +7 -0
- package/dist/loading/index.js +14 -0
- package/dist/loading/index.js.map +1 -0
- package/dist/loading/service.d.ts +28 -0
- package/dist/loading/service.js +106 -0
- package/dist/loading/service.js.map +1 -0
- package/dist/resolver.d.ts +16 -0
- package/dist/resolver.js +16 -0
- package/dist/resolver.js.map +1 -0
- package/dist/style.css +8028 -0
- package/dist/types/componentProps.d.ts +565 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/shared.d.ts +42 -0
- package/dist/utils/gcsaDateValue.d.ts +24 -0
- package/dist/utils/gcsaDateValue.js +60 -0
- package/dist/utils/gcsaDateValue.js.map +1 -0
- package/dist/utils/gcsaTableColumns.d.ts +19 -0
- package/dist/utils/gcsaTableColumns.js +50 -0
- package/dist/utils/gcsaTableColumns.js.map +1 -0
- package/dist/utils/zodValidators.d.ts +21 -0
- package/dist/utils/zodValidators.js +35 -0
- package/dist/utils/zodValidators.js.map +1 -0
- package/package.json +67 -0
- package/src/components/ConsoleHeader.vue +22 -0
- package/src/components/ConsolePage.vue +17 -0
- package/src/components/ConsoleShell.vue +206 -0
- package/src/components/ConsoleSidebar.vue +61 -0
- package/src/components/GcsaAlert.vue +25 -0
- package/src/components/GcsaAutoComplete.vue +165 -0
- package/src/components/GcsaAvatar.vue +19 -0
- package/src/components/GcsaBadge.vue +16 -0
- package/src/components/GcsaBrandMark.vue +20 -0
- package/src/components/GcsaBreadcrumb.vue +20 -0
- package/src/components/GcsaButton.vue +32 -0
- package/src/components/GcsaCalendar.vue +39 -0
- package/src/components/GcsaCard.vue +20 -0
- package/src/components/GcsaCascader.vue +84 -0
- package/src/components/GcsaChatPanel.vue +249 -0
- package/src/components/GcsaCheckbox.vue +45 -0
- package/src/components/GcsaCollapse.vue +51 -0
- package/src/components/GcsaConfigProvider.vue +147 -0
- package/src/components/GcsaDataTable.vue +1183 -0
- package/src/components/GcsaDatePicker.vue +232 -0
- package/src/components/GcsaDateRangeMonthPanel.vue +66 -0
- package/src/components/GcsaDateRangePicker.vue +208 -0
- package/src/components/GcsaDateTimePicker.vue +379 -0
- package/src/components/GcsaDescriptions.vue +16 -0
- package/src/components/GcsaDivider.vue +11 -0
- package/src/components/GcsaDrawer.vue +97 -0
- package/src/components/GcsaDropdown.vue +84 -0
- package/src/components/GcsaEmpty.vue +28 -0
- package/src/components/GcsaField.vue +27 -0
- package/src/components/GcsaForm.vue +70 -0
- package/src/components/GcsaFormField.vue +53 -0
- package/src/components/GcsaIcon.vue +24 -0
- package/src/components/GcsaImagePreview.vue +28 -0
- package/src/components/GcsaInput.vue +80 -0
- package/src/components/GcsaInputGroup.vue +37 -0
- package/src/components/GcsaInputNumber.vue +165 -0
- package/src/components/GcsaLoadingMask.vue +49 -0
- package/src/components/GcsaMarkdownRenderer.vue +49 -0
- package/src/components/GcsaMenu.vue +86 -0
- package/src/components/GcsaMenuNodes.vue +226 -0
- package/src/components/GcsaModal.vue +106 -0
- package/src/components/GcsaMultiSelect.vue +197 -0
- package/src/components/GcsaPagination.vue +147 -0
- package/src/components/GcsaPopconfirm.vue +93 -0
- package/src/components/GcsaPopover.vue +121 -0
- package/src/components/GcsaPortal.vue +41 -0
- package/src/components/GcsaProgress.vue +16 -0
- package/src/components/GcsaRadioGroup.vue +45 -0
- package/src/components/GcsaResult.vue +23 -0
- package/src/components/GcsaRow.vue +16 -0
- package/src/components/GcsaSelect.vue +154 -0
- package/src/components/GcsaSkeleton.vue +21 -0
- package/src/components/GcsaSpace.vue +13 -0
- package/src/components/GcsaSpin.vue +25 -0
- package/src/components/GcsaStatistic.vue +16 -0
- package/src/components/GcsaSteps.vue +30 -0
- package/src/components/GcsaSwitch.vue +38 -0
- package/src/components/GcsaTabs.vue +55 -0
- package/src/components/GcsaTag.vue +13 -0
- package/src/components/GcsaTextarea.vue +77 -0
- package/src/components/GcsaTimePicker.vue +306 -0
- package/src/components/GcsaTimeline.vue +17 -0
- package/src/components/GcsaToastStack.vue +45 -0
- package/src/components/GcsaTooltip.vue +79 -0
- package/src/components/GcsaTransfer.vue +50 -0
- package/src/components/GcsaTree.vue +56 -0
- package/src/components/GcsaTypography.vue +28 -0
- package/src/components/GcsaUpload.vue +154 -0
- package/src/components/gcsaDataTableTypes.ts +18 -0
- package/src/composables/gcsaFormTypes.ts +30 -0
- package/src/composables/useDocumentThemeSync.ts +6 -0
- package/src/composables/useGcsaComponentSize.ts +30 -0
- package/src/composables/useGcsaFormField.ts +49 -0
- package/src/composables/useGcsaFormSchema.ts +6 -0
- package/src/composables/useGcsaLocale.ts +18 -0
- package/src/composables/useGcsaMessage.ts +10 -0
- package/src/composables/useGcsaPopupZIndex.ts +24 -0
- package/src/composables/useGcsaTextCount.ts +48 -0
- package/src/composables/useGcsaTheme.ts +9 -0
- package/src/composables/useGcsaZIndex.ts +62 -0
- package/src/composables/useMessage.ts +9 -0
- package/src/composables/usePreserveScrollOnFocus.ts +153 -0
- package/src/icons/iconNames.ts +27 -0
- package/src/icons/index.ts +8 -0
- package/src/icons/registry.ts +43 -0
- package/src/icons/svg/alert.svg +4 -0
- package/src/icons/svg/assets.svg +4 -0
- package/src/icons/svg/chat.svg +3 -0
- package/src/icons/svg/check.svg +3 -0
- package/src/icons/svg/chevron-down.svg +3 -0
- package/src/icons/svg/chevron-left.svg +3 -0
- package/src/icons/svg/chevron-right.svg +3 -0
- package/src/icons/svg/chevron-up.svg +3 -0
- package/src/icons/svg/close.svg +1 -0
- package/src/icons/svg/dashboard.svg +3 -0
- package/src/icons/svg/menu.svg +3 -0
- package/src/icons/svg/plus.svg +1 -0
- package/src/icons/svg/result-empty.svg +1 -0
- package/src/icons/svg/settings.svg +3 -0
- package/src/icons/svg/users.svg +6 -0
- package/src/index.ts +193 -0
- package/src/loading/directive.ts +104 -0
- package/src/loading/index.ts +19 -0
- package/src/loading/service.ts +216 -0
- package/src/resolver.ts +22 -0
- package/src/tanstack-table.d.ts +7 -0
- package/src/types/componentProps.ts +692 -0
- package/src/types/index.ts +2 -0
- package/src/types/shared.ts +55 -0
- package/src/utils/gcsaDateValue.ts +98 -0
- package/src/utils/gcsaTableColumns.ts +92 -0
- package/src/utils/zodValidators.ts +45 -0
- package/src/vite-env.d.ts +7 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { onUnmounted, watch, type Ref } from 'vue';
|
|
2
|
+
|
|
3
|
+
const POPUP_INTERACTION_SELECTOR =
|
|
4
|
+
'.gcsa-select-content, .gcsa-select-positioner, .gcsa-autocomplete__panel';
|
|
5
|
+
|
|
6
|
+
export const GCSA_PRESERVE_SCROLL_EVENT = 'gcsa-preserve-scroll';
|
|
7
|
+
|
|
8
|
+
function collectScrollTops(start: HTMLElement | null): Map<Element, number> {
|
|
9
|
+
const saved = new Map<Element, number>();
|
|
10
|
+
let el = start;
|
|
11
|
+
while (el) {
|
|
12
|
+
const { overflowY } = getComputedStyle(el);
|
|
13
|
+
if (
|
|
14
|
+
(overflowY === 'auto' || overflowY === 'scroll' || overflowY === 'overlay')
|
|
15
|
+
&& el.scrollHeight > el.clientHeight
|
|
16
|
+
) {
|
|
17
|
+
saved.set(el, el.scrollTop);
|
|
18
|
+
}
|
|
19
|
+
el = el.parentElement;
|
|
20
|
+
}
|
|
21
|
+
return saved;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function restoreScrollTops(saved: Map<Element, number>) {
|
|
25
|
+
saved.forEach((top, el) => {
|
|
26
|
+
if (el instanceof HTMLElement) el.scrollTop = top;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const patchedElements = new WeakSet<HTMLElement>();
|
|
31
|
+
|
|
32
|
+
function patchFocusPreventScroll(element: HTMLElement) {
|
|
33
|
+
if (patchedElements.has(element)) return;
|
|
34
|
+
if (!('focus' in element) || typeof element.focus !== 'function') return;
|
|
35
|
+
patchedElements.add(element);
|
|
36
|
+
const nativeFocus = element.focus.bind(element);
|
|
37
|
+
element.focus = (options?: FocusOptions) => nativeFocus({ ...options, preventScroll: true });
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function scheduleScrollRestore(saved: Map<Element, number>) {
|
|
41
|
+
restoreScrollTops(saved);
|
|
42
|
+
requestAnimationFrame(() => {
|
|
43
|
+
restoreScrollTops(saved);
|
|
44
|
+
requestAnimationFrame(() => restoreScrollTops(saved));
|
|
45
|
+
});
|
|
46
|
+
window.setTimeout(() => restoreScrollTops(saved), 0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function setupPreserveScrollOnFocus(root: HTMLElement) {
|
|
50
|
+
let savedScroll = collectScrollTops(root);
|
|
51
|
+
let lockedScroll: Map<Element, number> | null = null;
|
|
52
|
+
let lockUntil = 0;
|
|
53
|
+
|
|
54
|
+
const lockScroll = () => {
|
|
55
|
+
lockedScroll = collectScrollTops(root);
|
|
56
|
+
savedScroll = lockedScroll;
|
|
57
|
+
lockUntil = performance.now() + 480;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const saveScroll = () => {
|
|
61
|
+
if (lockedScroll && performance.now() < lockUntil) return;
|
|
62
|
+
savedScroll = collectScrollTops(root);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const restoreScroll = () => {
|
|
66
|
+
scheduleScrollRestore(lockedScroll ?? savedScroll);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const enforceLockedScroll = () => {
|
|
70
|
+
if (!lockedScroll || performance.now() >= lockUntil) return;
|
|
71
|
+
const lockedTop = lockedScroll.get(root);
|
|
72
|
+
if (lockedTop == null) return;
|
|
73
|
+
if (Math.abs(root.scrollTop - lockedTop) > 1) {
|
|
74
|
+
root.scrollTop = lockedTop;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const patchFocusables = () => {
|
|
79
|
+
root.querySelectorAll('input, textarea, select, button').forEach(el => {
|
|
80
|
+
if (el instanceof HTMLElement) patchFocusPreventScroll(el);
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const onScroll = () => {
|
|
85
|
+
if (lockedScroll && performance.now() < lockUntil) {
|
|
86
|
+
enforceLockedScroll();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
saveScroll();
|
|
90
|
+
};
|
|
91
|
+
const onPressStart = () => lockScroll();
|
|
92
|
+
const onFocusIn = (event: FocusEvent) => {
|
|
93
|
+
if (!(event.target instanceof Node) || !root.contains(event.target)) return;
|
|
94
|
+
restoreScroll();
|
|
95
|
+
};
|
|
96
|
+
const onDocPointerDown = (event: PointerEvent) => {
|
|
97
|
+
const target = event.target;
|
|
98
|
+
if (!(target instanceof Node)) return;
|
|
99
|
+
if (root.contains(target)) {
|
|
100
|
+
lockScroll();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (target instanceof Element && target.closest(POPUP_INTERACTION_SELECTOR)) {
|
|
104
|
+
lockScroll();
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const onPreserveEvent = () => restoreScroll();
|
|
108
|
+
|
|
109
|
+
patchFocusables();
|
|
110
|
+
const observer = new MutationObserver(() => patchFocusables());
|
|
111
|
+
|
|
112
|
+
root.addEventListener('scroll', onScroll, { passive: true });
|
|
113
|
+
root.addEventListener('pointerdown', onPressStart, true);
|
|
114
|
+
root.addEventListener('mousedown', onPressStart, true);
|
|
115
|
+
root.addEventListener('focusin', onFocusIn);
|
|
116
|
+
root.addEventListener(GCSA_PRESERVE_SCROLL_EVENT, onPreserveEvent);
|
|
117
|
+
document.addEventListener('pointerdown', onDocPointerDown, true);
|
|
118
|
+
observer.observe(root, { childList: true, subtree: true });
|
|
119
|
+
|
|
120
|
+
return () => {
|
|
121
|
+
root.removeEventListener('scroll', onScroll);
|
|
122
|
+
root.removeEventListener('pointerdown', onPressStart, true);
|
|
123
|
+
root.removeEventListener('mousedown', onPressStart, true);
|
|
124
|
+
root.removeEventListener('focusin', onFocusIn);
|
|
125
|
+
root.removeEventListener(GCSA_PRESERVE_SCROLL_EVENT, onPreserveEvent);
|
|
126
|
+
document.removeEventListener('pointerdown', onDocPointerDown, true);
|
|
127
|
+
observer.disconnect();
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** Drawer/Modal 内容区:pointer / focus 后恢复滚动。`active` 须与 Drawer open 同步。 */
|
|
132
|
+
export function usePreserveScrollOnFocus(
|
|
133
|
+
rootRef: Ref<HTMLElement | null | undefined>,
|
|
134
|
+
active: Ref<boolean> | boolean = true,
|
|
135
|
+
) {
|
|
136
|
+
let cleanup: (() => void) | undefined;
|
|
137
|
+
|
|
138
|
+
const stop = watch(
|
|
139
|
+
[() => rootRef.value, () => (typeof active === 'boolean' ? active : active.value)],
|
|
140
|
+
([root, isActive]) => {
|
|
141
|
+
cleanup?.();
|
|
142
|
+
cleanup = undefined;
|
|
143
|
+
if (!isActive || !root) return;
|
|
144
|
+
cleanup = setupPreserveScrollOnFocus(root);
|
|
145
|
+
},
|
|
146
|
+
{ flush: 'post', immediate: true },
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
onUnmounted(() => {
|
|
150
|
+
stop();
|
|
151
|
+
cleanup?.();
|
|
152
|
+
});
|
|
153
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** 导航侧栏图标 — 与 @gcsa/console-core GcsaNavItem.iconKey 对齐 */
|
|
2
|
+
export const GCSA_NAV_ICON_NAMES = [
|
|
3
|
+
'dashboard',
|
|
4
|
+
'alert',
|
|
5
|
+
'assets',
|
|
6
|
+
'settings',
|
|
7
|
+
'users',
|
|
8
|
+
'chat'
|
|
9
|
+
] as const;
|
|
10
|
+
|
|
11
|
+
/** 组件内部 UI 图标(文件名 kebab-case → 注册为 camelCase key) */
|
|
12
|
+
export const GCSA_UI_ICON_NAMES = [
|
|
13
|
+
'chevronDown',
|
|
14
|
+
'chevronUp',
|
|
15
|
+
'chevronLeft',
|
|
16
|
+
'chevronRight',
|
|
17
|
+
'check',
|
|
18
|
+
'close',
|
|
19
|
+
'menu',
|
|
20
|
+
'plus',
|
|
21
|
+
'resultEmpty'
|
|
22
|
+
] as const;
|
|
23
|
+
|
|
24
|
+
export const GCSA_ICON_NAMES = [...GCSA_NAV_ICON_NAMES, ...GCSA_UI_ICON_NAMES] as const;
|
|
25
|
+
|
|
26
|
+
export type GcsaNavIconName = (typeof GCSA_NAV_ICON_NAMES)[number];
|
|
27
|
+
export type GcsaIconName = (typeof GCSA_ICON_NAMES)[number];
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GCSA_ICON_NAMES,
|
|
3
|
+
type GcsaIconName
|
|
4
|
+
} from './iconNames';
|
|
5
|
+
// 显式导入:避免 dev 下 glob 缓存未收录新 SVG 时模块加载即抛错白屏
|
|
6
|
+
import chevronLeftSvg from './svg/chevron-left.svg?raw';
|
|
7
|
+
import menuSvg from './svg/menu.svg?raw';
|
|
8
|
+
|
|
9
|
+
const svgModules = import.meta.glob('./svg/*.svg', {
|
|
10
|
+
query: '?raw',
|
|
11
|
+
import: 'default',
|
|
12
|
+
eager: true
|
|
13
|
+
}) as Record<string, string>;
|
|
14
|
+
|
|
15
|
+
function fileStem(path: string): string {
|
|
16
|
+
const file = path.slice(path.lastIndexOf('/') + 1);
|
|
17
|
+
return file.replace(/\.svg$/, '');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** kebab-case 文件名 → camelCase 注册 key(chevron-down → chevronDown) */
|
|
21
|
+
function toIconKey(stem: string): string {
|
|
22
|
+
return stem.replace(/-([a-z])/g, (_, letter: string) => letter.toUpperCase());
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const registry = {
|
|
26
|
+
...Object.fromEntries(
|
|
27
|
+
Object.entries(svgModules).map(([path, svg]) => [toIconKey(fileStem(path)), svg])
|
|
28
|
+
),
|
|
29
|
+
menu: menuSvg,
|
|
30
|
+
chevronLeft: chevronLeftSvg
|
|
31
|
+
} as Record<GcsaIconName, string>;
|
|
32
|
+
|
|
33
|
+
for (const name of GCSA_ICON_NAMES) {
|
|
34
|
+
if (!registry[name]) {
|
|
35
|
+
throw new Error(`[gcsa-icons] missing svg file for icon "${name}"`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const GcsaIcons = registry;
|
|
40
|
+
|
|
41
|
+
export function getGcsaIconSvg(name: GcsaIconName): string {
|
|
42
|
+
return GcsaIcons[name];
|
|
43
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg viewBox="0 0 17.1429 17.1429" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
2
|
+
<path d="M8.57108 2.06954C8.8166 2.06954 9.05831 2.13268 9.27225 2.25313C9.48607 2.37358 9.66548 2.54721 9.79276 2.75704L15.8426 12.8566C15.9673 13.0727 16.0333 13.3181 16.034 13.5676C16.0346 13.8169 15.9699 14.0619 15.8465 14.2785C15.7229 14.4952 15.5449 14.6764 15.3299 14.8029C15.1149 14.9294 14.8703 14.9975 14.6209 15.0002H2.52127C2.27191 14.9975 2.02724 14.9294 1.81229 14.8029C1.5973 14.6764 1.41921 14.4952 1.29569 14.2785C1.17227 14.0619 1.10753 13.8169 1.10819 13.5676C1.10888 13.3181 1.17486 13.0727 1.29959 12.8566L7.3494 2.75704C7.47668 2.54721 7.65608 2.37358 7.86991 2.25313C8.08385 2.13268 8.32555 2.06954 8.57108 2.06954ZM7.75076 11.094V12.5227H9.17948V11.094H7.75076ZM7.75076 6.09395V9.66524H9.17948V6.09395H7.75076Z" fill="currentColor" />
|
|
3
|
+
<path d="M8.57129 12.1428H8.57772" stroke="currentColor" stroke-width="1.42857" />
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
2
|
+
<path d="M5 6.42853L13.1357 3.31417C13.1812 3.30135 13.2289 3.29788 13.2757 3.30397C13.3226 3.31007 13.3678 3.3256 13.4085 3.34963C13.4492 3.37366 13.4847 3.40569 13.5127 3.44379C13.5407 3.4819 13.5607 3.52527 13.5714 3.57131L14.6429 6.07139" stroke="currentColor" stroke-width="1.42857" stroke-linecap="square" stroke-linejoin="round" />
|
|
3
|
+
<path d="M15.3102 5.71431C15.6065 5.71443 15.8907 5.83136 16.1003 6.03951C16.3099 6.24788 16.4274 6.53096 16.4274 6.82564V8.57174H12.1423C11.7481 8.57198 11.4286 8.89148 11.4284 9.2856V12.143C11.4285 12.4881 11.6733 12.7766 11.9987 12.8432L12.1423 12.8579H16.4274V14.603C16.4274 14.8977 16.3099 15.1807 16.1003 15.3891C15.8907 15.5973 15.6065 15.7142 15.3102 15.7143H4.68913C4.39265 15.7143 4.10777 15.5974 3.89811 15.3891C3.68844 15.1807 3.57096 14.8977 3.57096 14.603V6.82564C3.57096 6.53096 3.68844 6.24788 3.89811 6.03951C4.10776 5.83124 4.39269 5.71431 4.68913 5.71431H15.3102ZM16.4274 11.4292H12.8571V10.0004H16.4274V11.4292Z" fill="currentColor" />
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
2
|
+
<path d="M9.99984 2.85712C13.9448 2.85712 17.1427 6.05498 17.1427 9.99998C17.1427 13.945 13.9448 17.1428 9.99984 17.1428C6.05484 17.1428 2.85699 13.945 2.85699 9.99998C2.85699 6.05498 6.05484 2.85712 9.99984 2.85712ZM9.99984 4.99998C9.02451 4.9999 8.07045 5.28508 7.25516 5.8204C6.43986 6.35571 5.79893 7.11779 5.4113 8.01278C5.02367 8.90778 4.90625 9.8966 5.07352 10.8575C5.24079 11.8184 5.68544 12.7093 6.3527 13.4207L6.46413 13.535L7.47413 12.525C6.91785 11.9691 6.5606 11.2452 6.45781 10.4655C6.35502 9.68585 6.51243 8.89406 6.90563 8.213C7.29883 7.53195 7.90582 6.99971 8.63242 6.69889C9.35902 6.39806 10.1646 6.34547 10.9241 6.54927L12.0413 5.43498C11.3991 5.14749 10.7034 4.99923 9.99984 4.99998ZM14.5656 7.95927L13.4506 9.07498C13.6122 9.68067 13.6118 10.3182 13.4495 10.9237C13.2871 11.5292 12.9685 12.0814 12.5256 12.525L13.5356 13.5357C14.0005 13.0719 14.3693 12.5207 14.6206 11.914C14.8719 11.3072 15.0008 10.6567 14.9998 9.99998C15.0007 9.29671 14.8527 8.60123 14.5656 7.95927ZM13.0298 5.95927L10.3691 8.61998C10.1575 8.5638 9.93584 8.55693 9.72116 8.5999C9.50647 8.64288 9.30452 8.73455 9.13084 8.86786C8.95716 9.00117 8.8164 9.17256 8.71939 9.36884C8.62237 9.56512 8.5717 9.78104 8.57127 9.99998C8.57126 10.2033 8.61466 10.4043 8.69857 10.5895C8.78247 10.7747 8.90495 10.9399 9.05781 11.074C9.21067 11.2081 9.3904 11.308 9.58497 11.367C9.77954 11.4261 9.98448 11.4429 10.1861 11.4164C10.3877 11.3899 10.5813 11.3207 10.754 11.2133C10.9267 11.106 11.0745 10.963 11.1875 10.794C11.3005 10.6249 11.3761 10.4337 11.4093 10.2331C11.4424 10.0325 11.4324 9.82712 11.3798 9.63069L14.0406 6.96927L13.0306 5.95927H13.0298Z" fill="currentColor" />
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M0 11.5C0 10.6716 0.671573 10 1.5 10H21.5C22.3284 10 23 10.6716 23 11.5C23 12.3284 22.3284 13 21.5 13H1.5C0.671573 13 0 12.3284 0 11.5Z" fill="currentColor"/><path d="M11.5 0C12.3284 0 13 0.671574 13 1.5V21.5C13 22.3284 12.3284 23 11.5 23C10.6716 23 10 22.3284 10 21.5V1.5C10 0.671573 10.6716 0 11.5 0Z" fill="currentColor"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg viewBox="0 0 29 36" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path opacity="0.3" d="M2 0C0.895432 0 0 0.895431 0 2V34C0 35.1046 0.895431 36 2 36H27C28.1046 36 29 35.1046 29 34V11H17.9511V0H2Z" fill="currentColor"/><path d="M14.1667 23.5V21.8333H15C16.4167 21.8333 17.5 20.75 17.5 19.3333V18.5C17.5 17.0833 16.4167 16 15 16C13.5833 16 12.5 17.0833 12.5 18.5V19.3333H10.8333V18.5C10.8333 16.1667 12.6667 14.3333 15 14.3333C17.3333 14.3333 19.1667 16.1667 19.1667 18.5V19.3333C19.1667 21.3333 17.75 23 15.8333 23.4167V25.1667H14.1667V23.5ZM14.1667 26H15.8333V27.6667H14.1667V26Z" fill="currentColor"/><path opacity="0.3" d="M20.0234 0V9H29L20.0234 0Z" fill="currentColor"/></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
|
|
2
|
+
<path d="M9.63281 2.71987C9.8588 2.5845 10.1412 2.5845 10.3672 2.71987L15.9033 6.04214C16.1184 6.17124 16.25 6.40361 16.25 6.65444V13.3449C16.25 13.5958 16.1185 13.8291 15.9033 13.9582L10.3672 17.2794C10.1411 17.4149 9.85887 17.4149 9.63281 17.2794L4.09668 13.9582C3.88154 13.8291 3.75 13.5958 3.75 13.3449V6.65444C3.75 6.40361 3.88163 6.17124 4.09668 6.04214L9.63281 2.71987ZM10 7.50015C8.61929 7.50015 7.5 8.61943 7.5 10.0001C7.5001 11.3808 8.61935 12.5001 10 12.5001C11.3807 12.5001 12.4999 11.3808 12.5 10.0001C12.5 8.61943 11.3807 7.50015 10 7.50015Z" fill="currentColor" />
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
|
2
|
+
<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
|
|
3
|
+
<circle cx="9" cy="7" r="4" />
|
|
4
|
+
<path d="M22 21v-2a4 4 0 0 0-3-3.87" />
|
|
5
|
+
<path d="M16 3.13a4 4 0 0 1 0 7.75" />
|
|
6
|
+
</svg>
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
export { default as GcsaConfigProvider } from './components/GcsaConfigProvider.vue';
|
|
2
|
+
export { default as ConsoleShell } from './components/ConsoleShell.vue';
|
|
3
|
+
export { default as ConsoleSidebar } from './components/ConsoleSidebar.vue';
|
|
4
|
+
export { default as ConsoleHeader } from './components/ConsoleHeader.vue';
|
|
5
|
+
export { default as ConsolePage } from './components/ConsolePage.vue';
|
|
6
|
+
export { default as GcsaBrandMark } from './components/GcsaBrandMark.vue';
|
|
7
|
+
|
|
8
|
+
export { default as GcsaButton } from './components/GcsaButton.vue';
|
|
9
|
+
export { default as GcsaBadge } from './components/GcsaBadge.vue';
|
|
10
|
+
export { default as GcsaCard } from './components/GcsaCard.vue';
|
|
11
|
+
export { default as GcsaField } from './components/GcsaField.vue';
|
|
12
|
+
export { default as GcsaInput } from './components/GcsaInput.vue';
|
|
13
|
+
export { default as GcsaInputGroup } from './components/GcsaInputGroup.vue';
|
|
14
|
+
export { default as GcsaTextarea } from './components/GcsaTextarea.vue';
|
|
15
|
+
export { default as GcsaSelect } from './components/GcsaSelect.vue';
|
|
16
|
+
export { default as GcsaMultiSelect } from './components/GcsaMultiSelect.vue';
|
|
17
|
+
export { default as GcsaAutoComplete } from './components/GcsaAutoComplete.vue';
|
|
18
|
+
export { default as GcsaCheckbox } from './components/GcsaCheckbox.vue';
|
|
19
|
+
export { default as GcsaRadioGroup } from './components/GcsaRadioGroup.vue';
|
|
20
|
+
export { default as GcsaSwitch } from './components/GcsaSwitch.vue';
|
|
21
|
+
export { default as GcsaInputNumber } from './components/GcsaInputNumber.vue';
|
|
22
|
+
export { default as GcsaDatePicker } from './components/GcsaDatePicker.vue';
|
|
23
|
+
export { default as GcsaCalendar } from './components/GcsaCalendar.vue';
|
|
24
|
+
export { default as GcsaDateRangePicker } from './components/GcsaDateRangePicker.vue';
|
|
25
|
+
export { default as GcsaDateTimePicker } from './components/GcsaDateTimePicker.vue';
|
|
26
|
+
export { default as GcsaTimePicker } from './components/GcsaTimePicker.vue';
|
|
27
|
+
export { default as GcsaUpload } from './components/GcsaUpload.vue';
|
|
28
|
+
export { default as GcsaCollapse } from './components/GcsaCollapse.vue';
|
|
29
|
+
export { default as GcsaTree } from './components/GcsaTree.vue';
|
|
30
|
+
export { default as GcsaCascader } from './components/GcsaCascader.vue';
|
|
31
|
+
export { default as GcsaTransfer } from './components/GcsaTransfer.vue';
|
|
32
|
+
export { default as GcsaImagePreview } from './components/GcsaImagePreview.vue';
|
|
33
|
+
export { default as GcsaSteps } from './components/GcsaSteps.vue';
|
|
34
|
+
export { default as GcsaTimeline } from './components/GcsaTimeline.vue';
|
|
35
|
+
export type { GcsaCollapseItem, GcsaTreeNode } from './types';
|
|
36
|
+
|
|
37
|
+
export { default as GcsaDataTable } from './components/GcsaDataTable.vue';
|
|
38
|
+
export type { GcsaDataTableApi } from './components/gcsaDataTableTypes';
|
|
39
|
+
export { default as GcsaForm } from './components/GcsaForm.vue';
|
|
40
|
+
export { default as GcsaFormField } from './components/GcsaFormField.vue';
|
|
41
|
+
export { default as GcsaPagination } from './components/GcsaPagination.vue';
|
|
42
|
+
|
|
43
|
+
export { default as GcsaAlert } from './components/GcsaAlert.vue';
|
|
44
|
+
export { default as GcsaSpin } from './components/GcsaSpin.vue';
|
|
45
|
+
export { default as GcsaLoadingMask } from './components/GcsaLoadingMask.vue';
|
|
46
|
+
export {
|
|
47
|
+
GcsaLoading,
|
|
48
|
+
GcsaLoadingPlugin,
|
|
49
|
+
LoadingService,
|
|
50
|
+
vGcsaLoading
|
|
51
|
+
} from './loading';
|
|
52
|
+
export type { GcsaLoadingInstance, GcsaLoadingOptions } from './loading';
|
|
53
|
+
export { default as GcsaSkeleton } from './components/GcsaSkeleton.vue';
|
|
54
|
+
export { default as GcsaModal } from './components/GcsaModal.vue';
|
|
55
|
+
export { default as GcsaDrawer } from './components/GcsaDrawer.vue';
|
|
56
|
+
export { default as GcsaProgress } from './components/GcsaProgress.vue';
|
|
57
|
+
export { default as GcsaResult } from './components/GcsaResult.vue';
|
|
58
|
+
|
|
59
|
+
export { default as GcsaTabs } from './components/GcsaTabs.vue';
|
|
60
|
+
export { default as GcsaBreadcrumb } from './components/GcsaBreadcrumb.vue';
|
|
61
|
+
export { default as GcsaTag } from './components/GcsaTag.vue';
|
|
62
|
+
export { default as GcsaStatistic } from './components/GcsaStatistic.vue';
|
|
63
|
+
export { default as GcsaDescriptions } from './components/GcsaDescriptions.vue';
|
|
64
|
+
export { default as GcsaAvatar } from './components/GcsaAvatar.vue';
|
|
65
|
+
export { default as GcsaEmpty } from './components/GcsaEmpty.vue';
|
|
66
|
+
export { default as GcsaChatPanel } from './components/GcsaChatPanel.vue';
|
|
67
|
+
export { default as GcsaMarkdownRenderer } from './components/GcsaMarkdownRenderer.vue';
|
|
68
|
+
|
|
69
|
+
export { default as GcsaDivider } from './components/GcsaDivider.vue';
|
|
70
|
+
export { default as GcsaSpace } from './components/GcsaSpace.vue';
|
|
71
|
+
export { default as GcsaTypography } from './components/GcsaTypography.vue';
|
|
72
|
+
export { default as GcsaRow } from './components/GcsaRow.vue';
|
|
73
|
+
export { default as GcsaIcon } from './components/GcsaIcon.vue';
|
|
74
|
+
export { default as GcsaTooltip } from './components/GcsaTooltip.vue';
|
|
75
|
+
export { default as GcsaPopover } from './components/GcsaPopover.vue';
|
|
76
|
+
export { default as GcsaDropdown } from './components/GcsaDropdown.vue';
|
|
77
|
+
export { default as GcsaMenu } from './components/GcsaMenu.vue';
|
|
78
|
+
export { default as GcsaPopconfirm } from './components/GcsaPopconfirm.vue';
|
|
79
|
+
|
|
80
|
+
export { useGcsaMessage } from './composables/useGcsaMessage';
|
|
81
|
+
export { useGcsaTheme } from './composables/useGcsaTheme';
|
|
82
|
+
export { useGcsaComponentSize, useGcsaComponentSizeConfig, useGcsaButtonSize } from './composables/useGcsaComponentSize';
|
|
83
|
+
export { useGcsaLocale, useGcsaLocaleMessages } from './composables/useGcsaLocale';
|
|
84
|
+
export { useGcsaZIndex } from './composables/useGcsaZIndex';
|
|
85
|
+
export { GCSA_RESTORE_DOCUMENT_THEME_KEY } from './composables/useDocumentThemeSync';
|
|
86
|
+
export {
|
|
87
|
+
gcsaBooleanFieldBindings,
|
|
88
|
+
gcsaFieldError,
|
|
89
|
+
gcsaFieldInvalid,
|
|
90
|
+
gcsaNumberFieldBindings,
|
|
91
|
+
gcsaRadioFieldBindings,
|
|
92
|
+
gcsaTextFieldBindings
|
|
93
|
+
} from './composables/useGcsaFormField';
|
|
94
|
+
export type { GcsaAnyFieldApi } from './composables/useGcsaFormField';
|
|
95
|
+
export type { GcsaFormApi, GcsaFormValues } from './composables/gcsaFormTypes';
|
|
96
|
+
export type {
|
|
97
|
+
GcsaAutoCompleteOption,
|
|
98
|
+
GcsaDropdownItem,
|
|
99
|
+
GcsaMenuItem,
|
|
100
|
+
GcsaMenuMode,
|
|
101
|
+
GcsaPopconfirmPlacement,
|
|
102
|
+
GcsaPopoverPlacement,
|
|
103
|
+
GcsaPopoverSize,
|
|
104
|
+
GcsaToastItem,
|
|
105
|
+
GcsaTooltipPlacement
|
|
106
|
+
} from './types';
|
|
107
|
+
export type { GcsaIconName, GcsaNavIconName } from './icons';
|
|
108
|
+
export { GCSA_ICON_NAMES, GCSA_NAV_ICON_NAMES, GCSA_UI_ICON_NAMES } from './icons';
|
|
109
|
+
export type { GcsaTextCountFormatter } from './composables/useGcsaTextCount';
|
|
110
|
+
export type {
|
|
111
|
+
ConsoleHeaderProps,
|
|
112
|
+
ConsolePageProps,
|
|
113
|
+
ConsoleShellProps,
|
|
114
|
+
ConsoleSidebarProps,
|
|
115
|
+
GcsaAlertProps,
|
|
116
|
+
GcsaAutoCompleteProps,
|
|
117
|
+
GcsaAvatarProps,
|
|
118
|
+
GcsaBadgeProps,
|
|
119
|
+
GcsaBreadcrumbItem,
|
|
120
|
+
GcsaBreadcrumbProps,
|
|
121
|
+
GcsaBrandMarkProps,
|
|
122
|
+
GcsaButtonProps,
|
|
123
|
+
GcsaCalendarProps,
|
|
124
|
+
GcsaCardProps,
|
|
125
|
+
GcsaCascaderProps,
|
|
126
|
+
GcsaChatPanelProps,
|
|
127
|
+
GcsaCheckboxProps,
|
|
128
|
+
GcsaCollapseProps,
|
|
129
|
+
GcsaConfigProviderProps,
|
|
130
|
+
GcsaDataTableProps,
|
|
131
|
+
GcsaDateRangeMonthPanelProps,
|
|
132
|
+
GcsaDatePickerProps,
|
|
133
|
+
GcsaDateRangePickerProps,
|
|
134
|
+
GcsaDateTimePickerProps,
|
|
135
|
+
GcsaDescriptionsItem,
|
|
136
|
+
GcsaDescriptionsProps,
|
|
137
|
+
GcsaDividerProps,
|
|
138
|
+
GcsaDrawerProps,
|
|
139
|
+
GcsaDrawerSize,
|
|
140
|
+
GcsaDropdownPlacement,
|
|
141
|
+
GcsaDropdownProps,
|
|
142
|
+
GcsaEmptyProps,
|
|
143
|
+
GcsaFieldProps,
|
|
144
|
+
GcsaFormFieldProps,
|
|
145
|
+
GcsaFormProps,
|
|
146
|
+
GcsaIconProps,
|
|
147
|
+
GcsaImagePreviewProps,
|
|
148
|
+
GcsaInputGroupProps,
|
|
149
|
+
GcsaInputNumberProps,
|
|
150
|
+
GcsaInputProps,
|
|
151
|
+
GcsaLoadingMaskProps,
|
|
152
|
+
GcsaMarkdownRendererProps,
|
|
153
|
+
GcsaMenuNodesProps,
|
|
154
|
+
GcsaMenuProps,
|
|
155
|
+
GcsaModalProps,
|
|
156
|
+
GcsaMultiSelectPlacement,
|
|
157
|
+
GcsaMultiSelectProps,
|
|
158
|
+
GcsaPaginationProps,
|
|
159
|
+
GcsaPopconfirmProps,
|
|
160
|
+
GcsaPopoverProps,
|
|
161
|
+
GcsaPortalProps,
|
|
162
|
+
GcsaProgressProps,
|
|
163
|
+
GcsaRadioGroupProps,
|
|
164
|
+
GcsaResultProps,
|
|
165
|
+
GcsaRowProps,
|
|
166
|
+
GcsaSelectPlacement,
|
|
167
|
+
GcsaSelectProps,
|
|
168
|
+
GcsaSkeletonProps,
|
|
169
|
+
GcsaSpaceProps,
|
|
170
|
+
GcsaSpinProps,
|
|
171
|
+
GcsaStatisticProps,
|
|
172
|
+
GcsaStepsProps,
|
|
173
|
+
GcsaSwitchProps,
|
|
174
|
+
GcsaTabItem,
|
|
175
|
+
GcsaTabsProps,
|
|
176
|
+
GcsaTagProps,
|
|
177
|
+
GcsaTextareaProps,
|
|
178
|
+
GcsaTimelineProps,
|
|
179
|
+
GcsaTimePickerProps,
|
|
180
|
+
GcsaToastStackProps,
|
|
181
|
+
GcsaTooltipProps,
|
|
182
|
+
GcsaTransferProps,
|
|
183
|
+
GcsaTreeProps,
|
|
184
|
+
GcsaTypographyProps,
|
|
185
|
+
GcsaUploadProps
|
|
186
|
+
} from './types';
|
|
187
|
+
export type { GcsaTableCellSlotProps, GcsaTableHeaderSlotProps } from './utils/gcsaTableColumns';
|
|
188
|
+
export { gcsaTableColumnsToDefs, resolveGcsaTableColumns } from './utils/gcsaTableColumns';
|
|
189
|
+
|
|
190
|
+
export { gcsaLoginSchema, gcsaNotifySchema } from '@gcsa/console-core';
|
|
191
|
+
export type * from '@gcsa/console-core';
|
|
192
|
+
|
|
193
|
+
export { GcsaConsoleResolver } from './resolver';
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ref, type AppContext, type Directive, type DirectiveBinding } from 'vue';
|
|
2
|
+
import LoadingService, { type GcsaLoadingInstance, type GcsaLoadingOptions } from './service';
|
|
3
|
+
|
|
4
|
+
const isObject = (val: unknown): val is Record<string, unknown> => typeof val === 'object' && val !== null;
|
|
5
|
+
const isString = (val: unknown): val is string => typeof val === 'string';
|
|
6
|
+
|
|
7
|
+
const INSTANCE_KEY = Symbol('GcsaLoading');
|
|
8
|
+
|
|
9
|
+
type StoredInstance = {
|
|
10
|
+
options: Record<string, { value: unknown }>;
|
|
11
|
+
instance: GcsaLoadingInstance;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
type ElWithLoading = HTMLElement & { [INSTANCE_KEY]?: StoredInstance };
|
|
15
|
+
|
|
16
|
+
const getAttributeName = (name: string) =>
|
|
17
|
+
`gcsa-loading-${name.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`)}`;
|
|
18
|
+
|
|
19
|
+
const resolveExpression = (key: unknown, vm?: Record<string, unknown>) => {
|
|
20
|
+
return ref(isString(key) && vm?.[key as string] ? vm[key as string] : key);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const createInstance = (el: HTMLElement, binding: DirectiveBinding) => {
|
|
24
|
+
const vm = binding.instance as unknown as Record<string, unknown> | undefined;
|
|
25
|
+
const getBindingProp = (key: string) =>
|
|
26
|
+
isObject(binding.value) ? (binding.value as Record<string, unknown>)[key] : undefined;
|
|
27
|
+
|
|
28
|
+
const getProp = (name: string) =>
|
|
29
|
+
resolveExpression(getBindingProp(name) || el.getAttribute(getAttributeName(name)), vm);
|
|
30
|
+
|
|
31
|
+
const fullscreen = getBindingProp('fullscreen') ?? binding.modifiers.fullscreen;
|
|
32
|
+
|
|
33
|
+
const options: GcsaLoadingOptions = {
|
|
34
|
+
text: getProp('text').value as string,
|
|
35
|
+
background: getProp('background').value as string,
|
|
36
|
+
customClass: getProp('customClass').value as string,
|
|
37
|
+
fullscreen: Boolean(fullscreen),
|
|
38
|
+
target: (getBindingProp('target') as HTMLElement | undefined) ?? (fullscreen ? undefined : el),
|
|
39
|
+
body: Boolean(getBindingProp('body') ?? binding.modifiers.body),
|
|
40
|
+
lock: Boolean(getBindingProp('lock') ?? binding.modifiers.lock)
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const instance = LoadingService(options, vGcsaLoading._context || undefined)!;
|
|
44
|
+
(el as ElWithLoading)[INSTANCE_KEY] = {
|
|
45
|
+
options: {
|
|
46
|
+
text: getProp('text'),
|
|
47
|
+
background: getProp('background'),
|
|
48
|
+
customClass: getProp('customClass')
|
|
49
|
+
},
|
|
50
|
+
instance
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const updateOptions = (stored: StoredInstance, newOptions: Record<string, unknown>) => {
|
|
55
|
+
if (newOptions.text !== undefined && newOptions.text !== null) {
|
|
56
|
+
stored.instance.setText(String(newOptions.text));
|
|
57
|
+
}
|
|
58
|
+
Object.keys(stored.options).forEach(key => {
|
|
59
|
+
if (key === 'text') return;
|
|
60
|
+
stored.options[key].value = newOptions[key];
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const vGcsaLoading: Directive<HTMLElement, boolean | Record<string, unknown>> & {
|
|
65
|
+
_context: AppContext | null;
|
|
66
|
+
} = {
|
|
67
|
+
mounted(el, binding) {
|
|
68
|
+
if (binding.value) {
|
|
69
|
+
createInstance(el, binding);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
updated(el, binding) {
|
|
73
|
+
const stored = (el as ElWithLoading)[INSTANCE_KEY];
|
|
74
|
+
if (!binding.value) {
|
|
75
|
+
stored?.instance.close();
|
|
76
|
+
(el as ElWithLoading)[INSTANCE_KEY] = undefined;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (!stored) {
|
|
81
|
+
createInstance(el, binding);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
updateOptions(
|
|
86
|
+
stored,
|
|
87
|
+
isObject(binding.value)
|
|
88
|
+
? binding.value
|
|
89
|
+
: {
|
|
90
|
+
text: el.getAttribute(getAttributeName('text')),
|
|
91
|
+
background: el.getAttribute(getAttributeName('background')),
|
|
92
|
+
customClass: el.getAttribute(getAttributeName('customClass'))
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
},
|
|
96
|
+
unmounted(el) {
|
|
97
|
+
const stored = (el as ElWithLoading)[INSTANCE_KEY];
|
|
98
|
+
stored?.instance.close();
|
|
99
|
+
(el as ElWithLoading)[INSTANCE_KEY] = undefined;
|
|
100
|
+
},
|
|
101
|
+
_context: null
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default vGcsaLoading;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { App, Plugin } from 'vue';
|
|
2
|
+
import LoadingService, { GcsaLoading } from './service';
|
|
3
|
+
import { vGcsaLoading } from './directive';
|
|
4
|
+
|
|
5
|
+
export type { GcsaLoadingInstance, GcsaLoadingOptions } from './service';
|
|
6
|
+
export { LoadingService, GcsaLoading, vGcsaLoading };
|
|
7
|
+
|
|
8
|
+
export const GcsaLoadingPlugin: Plugin = {
|
|
9
|
+
install(app: App) {
|
|
10
|
+
LoadingService._context = app._context;
|
|
11
|
+
GcsaLoading._context = app._context;
|
|
12
|
+
vGcsaLoading._context = app._context;
|
|
13
|
+
app.directive('loading', vGcsaLoading);
|
|
14
|
+
app.directive('gcsa-loading', vGcsaLoading);
|
|
15
|
+
app.config.globalProperties.$loading = LoadingService;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export default GcsaLoadingPlugin;
|