@platforma-sdk/ui-vue 1.58.8 → 1.58.10
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/.turbo/turbo-build.log +195 -181
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +2 -2
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +14 -0
- package/dist/AgGridVue/createAgGridColDef.js +73 -43
- package/dist/AgGridVue/createAgGridColDef.js.map +1 -1
- package/dist/AgGridVue/selection.js +55 -47
- package/dist/AgGridVue/selection.js.map +1 -1
- package/dist/AgGridVue/useAgGridOptions.js +212 -229
- package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
- package/dist/_virtual/_plugin-vue_export-helper.js +5 -9
- package/dist/_virtual/_rolldown/runtime.js +15 -0
- package/dist/aggrid.js +48 -46
- package/dist/aggrid.js.map +1 -1
- package/dist/assets/block.css +1 -1
- package/dist/assets/ui.css +1 -0
- package/dist/components/BlockLayout.js +7 -0
- package/dist/components/BlockLayout.js.map +1 -0
- package/dist/components/BlockLayout.style.js +4 -0
- package/dist/components/BlockLayout.style.js.map +1 -0
- package/dist/components/BlockLayout.vue.css +1 -0
- package/dist/components/BlockLayout.vue2.js +42 -54
- package/dist/components/BlockLayout.vue2.js.map +1 -1
- package/dist/components/BlockLoader.js +5 -0
- package/dist/components/BlockLoader.js.map +1 -0
- package/dist/components/BlockLoader.vue2.js +22 -5
- package/dist/components/BlockLoader.vue2.js.map +1 -1
- package/dist/components/LoaderPage.js +10 -0
- package/dist/components/LoaderPage.js.map +1 -0
- package/dist/components/NotFound.js +5 -0
- package/dist/components/NotFound.js.map +1 -0
- package/dist/components/NotFound.vue2.js +18 -5
- package/dist/components/NotFound.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.js +7 -0
- package/dist/components/PlAdvancedFilter/FilterEditor.js.map +1 -0
- package/dist/components/PlAdvancedFilter/FilterEditor.style.js +18 -0
- package/dist/components/PlAdvancedFilter/FilterEditor.style.js.map +1 -0
- package/dist/components/PlAdvancedFilter/FilterEditor.vue.css +1 -0
- package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js +291 -322
- package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/OperandButton.js +7 -0
- package/dist/components/PlAdvancedFilter/OperandButton.js.map +1 -0
- package/dist/components/PlAdvancedFilter/OperandButton.style.js +8 -0
- package/dist/components/PlAdvancedFilter/OperandButton.style.js.map +1 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue.css +1 -0
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js +19 -24
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.js +7 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.js.map +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.style.js +12 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.style.js.map +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.css +1 -0
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts +1 -3
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +239 -238
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/constants.js +115 -58
- package/dist/components/PlAdvancedFilter/constants.js.map +1 -1
- package/dist/components/PlAdvancedFilter/index.js +6 -6
- package/dist/components/PlAdvancedFilter/index.js.map +1 -1
- package/dist/components/PlAdvancedFilter/utils.js +49 -64
- package/dist/components/PlAdvancedFilter/utils.js.map +1 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.js +5 -0
- package/dist/components/PlAgCellFile/PlAgCellFile.js.map +1 -0
- package/dist/components/PlAgCellFile/PlAgCellFile.vue2.js +36 -5
- package/dist/components/PlAgCellFile/PlAgCellFile.vue2.js.map +1 -1
- package/dist/components/PlAgCellProgress/PlAgCellProgress.js +5 -0
- package/dist/components/PlAgCellProgress/PlAgCellProgress.js.map +1 -0
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js +13 -5
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js.map +1 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.js +6 -0
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.js.map +1 -0
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue2.js +12 -0
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue2.js.map +1 -0
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.js +6 -0
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.js.map +1 -0
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.style.css +1 -0
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue2.js +31 -0
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue2.js.map +1 -0
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.js +6 -0
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.js.map +1 -0
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.style.css +1 -0
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue2.js +19 -0
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue2.js.map +1 -0
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.js +5 -0
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.js.map +1 -0
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js +68 -5
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js.map +1 -1
- package/dist/components/PlAgColumnHeader/pl-ag-column-header.css +1 -1
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.js +5 -0
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.js.map +1 -0
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js +26 -5
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js.map +1 -1
- package/dist/components/PlAgCsvExporter/export-csv.js +36 -43
- package/dist/components/PlAgCsvExporter/export-csv.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.js +7 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.style.js +4 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.style.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue.css +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js +68 -72
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.js +7 -0
- package/dist/components/PlAgDataTable/PlAgDataTableV2.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableV2.style.js +7 -0
- package/dist/components/PlAgDataTable/PlAgDataTableV2.style.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.css +1 -0
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +325 -336
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.js +5 -0
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js +26 -5
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.js +6 -0
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.js.map +1 -0
- package/dist/components/PlAgDataTable/{PlAgOverlayNoRows.css → PlAgOverlayNoRows.style.css} +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue2.js +14 -0
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue2.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgRowCount.js +5 -0
- package/dist/components/PlAgDataTable/PlAgRowCount.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgRowCount.vue2.js +23 -5
- package/dist/components/PlAgDataTable/PlAgRowCount.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/ag-override.js +4 -0
- package/dist/components/PlAgDataTable/ag-override.js.map +1 -0
- package/dist/components/PlAgDataTable/compositions/useFilterableColumns.js +25 -30
- package/dist/components/PlAgDataTable/compositions/useFilterableColumns.js.map +1 -1
- package/dist/components/PlAgDataTable/compositions/useGrid.js +102 -112
- package/dist/components/PlAgDataTable/compositions/useGrid.js.map +1 -1
- package/dist/components/PlAgDataTable/pl-ag-overlay-loading.css +1 -1
- package/dist/components/PlAgDataTable/pl-ag-overlay-loading.module.js +9 -0
- package/dist/components/PlAgDataTable/pl-ag-overlay-loading.module.js.map +1 -0
- package/dist/components/PlAgDataTable/sources/common.js +6 -8
- package/dist/components/PlAgDataTable/sources/common.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/focus-row.js +36 -51
- package/dist/components/PlAgDataTable/sources/focus-row.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/menu-items.js +10 -6
- package/dist/components/PlAgDataTable/sources/menu-items.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/row-number.js +82 -94
- package/dist/components/PlAgDataTable/sources/row-number.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-source-v2.js +178 -199
- package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/table-state-v2.js +155 -132
- package/dist/components/PlAgDataTable/sources/table-state-v2.js.map +1 -1
- package/dist/components/PlAgDataTable/sources/value-rendering.js +33 -38
- package/dist/components/PlAgDataTable/sources/value-rendering.js.map +1 -1
- package/dist/components/PlAgDataTable/types.js +54 -43
- package/dist/components/PlAgDataTable/types.js.map +1 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.js +7 -0
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.js.map +1 -0
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.style.js +4 -0
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.style.js.map +1 -0
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js +89 -100
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js.map +1 -1
- package/dist/components/PlAgGridColumnManager/useFilteredItems.js +46 -33
- package/dist/components/PlAgGridColumnManager/useFilteredItems.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.js +5 -0
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.js.map +1 -0
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.d.ts.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js +37 -5
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.css +1 -1
- package/dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.js +10 -0
- package/dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.js.map +1 -0
- package/dist/components/PlAgRowNumHeader.js +5 -0
- package/dist/components/PlAgRowNumHeader.js.map +1 -0
- package/dist/components/PlAgRowNumHeader.vue2.js +38 -5
- package/dist/components/PlAgRowNumHeader.vue2.js.map +1 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.js +5 -0
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.js.map +1 -0
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js +32 -5
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js.map +1 -1
- package/dist/components/PlAgTextAndButtonCell/pl-ag-text-and-button-cell.css +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.js +7 -0
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.js.map +1 -0
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.style.js +11 -0
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.style.js.map +1 -0
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue.css +1 -0
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +102 -113
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.js +7 -0
- package/dist/components/PlAnnotations/components/FilterSidebar.js.map +1 -0
- package/dist/components/PlAnnotations/components/FilterSidebar.style.js +7 -0
- package/dist/components/PlAnnotations/components/FilterSidebar.style.js.map +1 -0
- package/dist/components/PlAnnotations/components/FilterSidebar.vue.css +1 -0
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +121 -129
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.js +7 -0
- package/dist/components/PlAnnotations/components/PlAnnotations.js.map +1 -0
- package/dist/components/PlAnnotations/components/PlAnnotations.style.js +4 -0
- package/dist/components/PlAnnotations/components/PlAnnotations.style.js.map +1 -0
- package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js +73 -65
- package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.js +7 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.js.map +1 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.style.js +7 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.style.js.map +1 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js +58 -52
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/style.css +1 -1
- package/dist/components/PlAnnotations/components/style.module.js +8 -0
- package/dist/components/PlAnnotations/components/style.module.js.map +1 -0
- package/dist/components/PlAnnotations/utils.js +6 -8
- package/dist/components/PlAnnotations/utils.js.map +1 -1
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.js +5 -0
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.js.map +1 -0
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue2.js +57 -5
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue2.js.map +1 -1
- package/dist/components/PlAppErrorNotificationAlert/pl-app-error-notification-alert.css +1 -1
- package/dist/components/PlBtnExportArchive/Item.js +7 -0
- package/dist/components/PlBtnExportArchive/Item.js.map +1 -0
- package/dist/components/PlBtnExportArchive/Item.style.js +9 -0
- package/dist/components/PlBtnExportArchive/Item.style.js.map +1 -0
- package/dist/components/PlBtnExportArchive/Item.vue.css +1 -0
- package/dist/components/PlBtnExportArchive/Item.vue2.js +28 -42
- package/dist/components/PlBtnExportArchive/Item.vue2.js.map +1 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.js +7 -0
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.js.map +1 -0
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.style.js +8 -0
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.style.js.map +1 -0
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.css +1 -0
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js +161 -159
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Summary.js +7 -0
- package/dist/components/PlBtnExportArchive/Summary.js.map +1 -0
- package/dist/components/PlBtnExportArchive/Summary.style.js +8 -0
- package/dist/components/PlBtnExportArchive/Summary.style.js.map +1 -0
- package/dist/components/PlBtnExportArchive/Summary.vue.css +1 -0
- package/dist/components/PlBtnExportArchive/Summary.vue2.js +26 -41
- package/dist/components/PlBtnExportArchive/Summary.vue2.js.map +1 -1
- package/dist/components/PlTableFastSearch/PlTableFastSearch.js +5 -0
- package/dist/components/PlTableFastSearch/PlTableFastSearch.js.map +1 -0
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js +41 -5
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.js +7 -0
- package/dist/components/PlTableFilters/PlTableFiltersV2.js.map +1 -0
- package/dist/components/PlTableFilters/PlTableFiltersV2.style.js +4 -0
- package/dist/components/PlTableFilters/PlTableFiltersV2.style.js.map +1 -0
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.css +1 -0
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +97 -106
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
- package/dist/composition/fileContent.js +169 -200
- package/dist/composition/fileContent.js.map +1 -1
- package/dist/computedResult.js +47 -18
- package/dist/computedResult.js.map +1 -1
- package/dist/createModel.js +44 -60
- package/dist/createModel.js.map +1 -1
- package/dist/defineApp.js +87 -113
- package/dist/defineApp.js.map +1 -1
- package/dist/defineStore.js +15 -16
- package/dist/defineStore.js.map +1 -1
- package/dist/index.js +39 -98
- package/dist/index.js.map +1 -1
- package/dist/internal/UpdateSerializer.js +50 -66
- package/dist/internal/UpdateSerializer.js.map +1 -1
- package/dist/internal/createAppModel.js +54 -68
- package/dist/internal/createAppModel.js.map +1 -1
- package/dist/internal/createAppV1.js +140 -193
- package/dist/internal/createAppV1.js.map +1 -1
- package/dist/internal/createAppV2.d.ts.map +1 -1
- package/dist/internal/createAppV2.js +149 -193
- package/dist/internal/createAppV2.js.map +1 -1
- package/dist/internal/createAppV3.d.ts.map +1 -1
- package/dist/internal/createAppV3.js +157 -202
- package/dist/internal/createAppV3.js.map +1 -1
- package/dist/internal/test-helpers/utils.d.ts.map +1 -1
- package/dist/lib/util/helpers/dist/error.js +1 -0
- package/dist/lib/util/helpers/dist/functions.js +8 -9
- package/dist/lib/util/helpers/dist/functions.js.map +1 -1
- package/dist/lib/util/helpers/dist/hash.js +5 -0
- package/dist/lib/util/helpers/dist/hash.js.map +1 -0
- package/dist/lib/util/helpers/dist/index.js +9 -0
- package/dist/lib/util/helpers/dist/objects.js +75 -42
- package/dist/lib/util/helpers/dist/objects.js.map +1 -1
- package/dist/lib/util/helpers/dist/prettyBytes.js +60 -26
- package/dist/lib/util/helpers/dist/prettyBytes.js.map +1 -1
- package/dist/lib/util/helpers/dist/random.js +6 -8
- package/dist/lib/util/helpers/dist/random.js.map +1 -1
- package/dist/lib/util/helpers/dist/strings.js +11 -14
- package/dist/lib/util/helpers/dist/strings.js.map +1 -1
- package/dist/lib/util/helpers/dist/uniqId.js +7 -0
- package/dist/lib/util/helpers/dist/uniqId.js.map +1 -0
- package/dist/lib/util/helpers/dist/utils.js +34 -50
- package/dist/lib/util/helpers/dist/utils.js.map +1 -1
- package/dist/lib.js +38 -0
- package/dist/objectHash.js +13 -10
- package/dist/objectHash.js.map +1 -1
- package/dist/plugins/Monetization/EndOfPeriod.js +7 -0
- package/dist/plugins/Monetization/EndOfPeriod.js.map +1 -0
- package/dist/plugins/Monetization/EndOfPeriod.style.js +4 -0
- package/dist/plugins/Monetization/EndOfPeriod.style.js.map +1 -0
- package/dist/plugins/Monetization/EndOfPeriod.vue.css +1 -0
- package/dist/plugins/Monetization/EndOfPeriod.vue2.js +15 -23
- package/dist/plugins/Monetization/EndOfPeriod.vue2.js.map +1 -1
- package/dist/plugins/Monetization/LimitCard.js +7 -0
- package/dist/plugins/Monetization/LimitCard.js.map +1 -0
- package/dist/plugins/Monetization/LimitCard.style.js +18 -0
- package/dist/plugins/Monetization/LimitCard.style.js.map +1 -0
- package/dist/plugins/Monetization/LimitCard.vue.css +1 -0
- package/dist/plugins/Monetization/LimitCard.vue2.js +47 -84
- package/dist/plugins/Monetization/LimitCard.vue2.js.map +1 -1
- package/dist/plugins/Monetization/MonetizationSidebar.js +5 -0
- package/dist/plugins/Monetization/MonetizationSidebar.js.map +1 -0
- package/dist/plugins/Monetization/MonetizationSidebar.vue2.js +106 -5
- package/dist/plugins/Monetization/MonetizationSidebar.vue2.js.map +1 -1
- package/dist/plugins/Monetization/RunStatus.js +7 -0
- package/dist/plugins/Monetization/RunStatus.js.map +1 -0
- package/dist/plugins/Monetization/RunStatus.style.js +13 -0
- package/dist/plugins/Monetization/RunStatus.style.js.map +1 -0
- package/dist/plugins/Monetization/RunStatus.vue.css +1 -0
- package/dist/plugins/Monetization/RunStatus.vue2.js +21 -40
- package/dist/plugins/Monetization/RunStatus.vue2.js.map +1 -1
- package/dist/plugins/Monetization/UserCabinetCard.js +7 -0
- package/dist/plugins/Monetization/UserCabinetCard.js.map +1 -0
- package/dist/plugins/Monetization/UserCabinetCard.style.js +12 -0
- package/dist/plugins/Monetization/UserCabinetCard.style.js.map +1 -0
- package/dist/plugins/Monetization/UserCabinetCard.vue.css +1 -0
- package/dist/plugins/Monetization/UserCabinetCard.vue2.js +50 -70
- package/dist/plugins/Monetization/UserCabinetCard.vue2.js.map +1 -1
- package/dist/plugins/Monetization/useButtonTarget.js +15 -16
- package/dist/plugins/Monetization/useButtonTarget.js.map +1 -1
- package/dist/plugins/Monetization/useInfo.js +36 -71
- package/dist/plugins/Monetization/useInfo.js.map +1 -1
- package/dist/plugins/Monetization/validation.js +34 -42
- package/dist/plugins/Monetization/validation.js.map +1 -1
- package/dist/urls.d.ts.map +1 -1
- package/dist/urls.js +4 -5
- package/dist/urls.js.map +1 -1
- package/dist/usePlugin.js +32 -12
- package/dist/usePlugin.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +29 -54
- package/dist/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/components/PlAgDataTable/PlAgDataTableV2.vue +57 -9
- package/dist/_virtual/_plugin-vue_export-helper.js.map +0 -1
- package/dist/components/BlockLayout.css +0 -1
- package/dist/components/BlockLayout.vue.js +0 -10
- package/dist/components/BlockLayout.vue.js.map +0 -1
- package/dist/components/BlockLayout.vue3.js +0 -8
- package/dist/components/BlockLayout.vue3.js.map +0 -1
- package/dist/components/BlockLoader.vue.js +0 -26
- package/dist/components/BlockLoader.vue.js.map +0 -1
- package/dist/components/LoaderPage.vue.js +0 -15
- package/dist/components/LoaderPage.vue.js.map +0 -1
- package/dist/components/NotFound.vue.js +0 -26
- package/dist/components/NotFound.vue.js.map +0 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.css +0 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.vue.js +0 -10
- package/dist/components/PlAdvancedFilter/FilterEditor.vue.js.map +0 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.vue3.js +0 -32
- package/dist/components/PlAdvancedFilter/FilterEditor.vue3.js.map +0 -1
- package/dist/components/PlAdvancedFilter/OperandButton.css +0 -1
- package/dist/components/PlAdvancedFilter/OperandButton.vue.js +0 -10
- package/dist/components/PlAdvancedFilter/OperandButton.vue.js.map +0 -1
- package/dist/components/PlAdvancedFilter/OperandButton.vue3.js +0 -12
- package/dist/components/PlAdvancedFilter/OperandButton.vue3.js.map +0 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.css +0 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js +0 -10
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js.map +0 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js +0 -20
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue3.js.map +0 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.vue.js +0 -32
- package/dist/components/PlAgCellFile/PlAgCellFile.vue.js.map +0 -1
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue.js +0 -16
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue.js.map +0 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js +0 -22
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js.map +0 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue3.js +0 -6
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue3.js.map +0 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.css +0 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js +0 -32
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js.map +0 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue3.js +0 -6
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue3.js.map +0 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.css +0 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js +0 -24
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js.map +0 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue3.js +0 -6
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue3.js.map +0 -1
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js +0 -97
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js.map +0 -1
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js +0 -33
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.css +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue.js +0 -10
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue3.js +0 -8
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue3.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.css +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.js +0 -10
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue3.js +0 -10
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue3.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js +0 -48
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue.js +0 -22
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue3.js +0 -6
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue3.js.map +0 -1
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +0 -26
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +0 -1
- package/dist/components/PlAgDataTable/ag-override.css.js +0 -31
- package/dist/components/PlAgDataTable/ag-override.css.js.map +0 -1
- package/dist/components/PlAgDataTable/pl-ag-overlay-loading.module.scss.js +0 -14
- package/dist/components/PlAgDataTable/pl-ag-overlay-loading.module.scss.js.map +0 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js +0 -10
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js.map +0 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue3.js +0 -8
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue3.js.map +0 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +0 -48
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +0 -1
- package/dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.scss.js +0 -15
- package/dist/components/PlAgRowNumCheckbox/pl-ag-row-num-checkbox.module.scss.js.map +0 -1
- package/dist/components/PlAgRowNumHeader.vue.js +0 -39
- package/dist/components/PlAgRowNumHeader.vue.js.map +0 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js +0 -45
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js.map +0 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.css +0 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue.js +0 -10
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue.js.map +0 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js +0 -18
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js.map +0 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.css +0 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue.js +0 -10
- package/dist/components/PlAnnotations/components/FilterSidebar.vue.js.map +0 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue3.js +0 -10
- package/dist/components/PlAnnotations/components/FilterSidebar.vue3.js.map +0 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue.js +0 -10
- package/dist/components/PlAnnotations/components/PlAnnotations.vue.js.map +0 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue3.js +0 -8
- package/dist/components/PlAnnotations/components/PlAnnotations.vue3.js.map +0 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue.js +0 -10
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue.js.map +0 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue3.js +0 -10
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue3.js.map +0 -1
- package/dist/components/PlAnnotations/components/style.module.css.js +0 -12
- package/dist/components/PlAnnotations/components/style.module.css.js.map +0 -1
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js +0 -79
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js.map +0 -1
- package/dist/components/PlBtnExportArchive/Item.css +0 -1
- package/dist/components/PlBtnExportArchive/Item.vue.js +0 -10
- package/dist/components/PlBtnExportArchive/Item.vue.js.map +0 -1
- package/dist/components/PlBtnExportArchive/Item.vue3.js +0 -14
- package/dist/components/PlBtnExportArchive/Item.vue3.js.map +0 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.css +0 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.js +0 -10
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.js.map +0 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue3.js +0 -12
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue3.js.map +0 -1
- package/dist/components/PlBtnExportArchive/Summary.css +0 -1
- package/dist/components/PlBtnExportArchive/Summary.vue.js +0 -10
- package/dist/components/PlBtnExportArchive/Summary.vue.js.map +0 -1
- package/dist/components/PlBtnExportArchive/Summary.vue3.js +0 -12
- package/dist/components/PlBtnExportArchive/Summary.vue3.js.map +0 -1
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.js +0 -54
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.css +0 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.js +0 -10
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.js.map +0 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js +0 -8
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue3.js.map +0 -1
- package/dist/plugins/Monetization/EndOfPeriod.css +0 -1
- package/dist/plugins/Monetization/EndOfPeriod.vue.js +0 -10
- package/dist/plugins/Monetization/EndOfPeriod.vue.js.map +0 -1
- package/dist/plugins/Monetization/EndOfPeriod.vue3.js +0 -8
- package/dist/plugins/Monetization/EndOfPeriod.vue3.js.map +0 -1
- package/dist/plugins/Monetization/LimitCard.css +0 -1
- package/dist/plugins/Monetization/LimitCard.vue.js +0 -10
- package/dist/plugins/Monetization/LimitCard.vue.js.map +0 -1
- package/dist/plugins/Monetization/LimitCard.vue3.js +0 -32
- package/dist/plugins/Monetization/LimitCard.vue3.js.map +0 -1
- package/dist/plugins/Monetization/MonetizationSidebar.vue.js +0 -138
- package/dist/plugins/Monetization/MonetizationSidebar.vue.js.map +0 -1
- package/dist/plugins/Monetization/RunStatus.css +0 -1
- package/dist/plugins/Monetization/RunStatus.vue.js +0 -10
- package/dist/plugins/Monetization/RunStatus.vue.js.map +0 -1
- package/dist/plugins/Monetization/RunStatus.vue3.js +0 -20
- package/dist/plugins/Monetization/RunStatus.vue3.js.map +0 -1
- package/dist/plugins/Monetization/UserCabinetCard.css +0 -1
- package/dist/plugins/Monetization/UserCabinetCard.vue.js +0 -10
- package/dist/plugins/Monetization/UserCabinetCard.vue.js.map +0 -1
- package/dist/plugins/Monetization/UserCabinetCard.vue3.js +0 -20
- package/dist/plugins/Monetization/UserCabinetCard.vue3.js.map +0 -1
- /package/dist/components/PlAgCellStatusTag/{PlAgCellStatusTag.css → PlAgCellStatusTag.style.css} +0 -0
- /package/dist/components/PlAgGridColumnManager/{PlAgGridColumnManager.css → PlAgGridColumnManager.vue.css} +0 -0
- /package/dist/components/PlAnnotations/components/{PlAnnotations.css → PlAnnotations.vue.css} +0 -0
- /package/dist/components/PlAnnotations/components/{PlAnnotationsModal.css → PlAnnotationsModal.vue.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunStatus.
|
|
1
|
+
{"version":3,"file":"RunStatus.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../src/plugins/Monetization/RunStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nconst props = defineProps<{\n canRun: boolean | undefined;\n statusText: string | undefined;\n isLoading?: boolean;\n}>();\n\nconst badgeText = computed(() => {\n if (props.isLoading) {\n return \"Updating...\";\n }\n\n if (props.canRun) {\n return \"Ready to run\";\n }\n\n return \"Cannot run\";\n});\n</script>\n\n<template>\n <div>\n <div :class=\"[{ [$style['can-run']]: canRun, [$style.loading]: isLoading }, $style.container]\">\n <div :class=\"$style.badge\">\n <i :class=\"$style.blob\">\n <span>\n <span :class=\"$style.dot\" />\n </span>\n </i>\n <span>{{ badgeText }}</span>\n </div>\n <slot />\n </div>\n <div v-if=\"statusText\" :class=\"$style.statusText\">{{ statusText }}</div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n align-items: center;\n gap: 8px;\n --blob-color: #ff5c5c;\n --badge-background: rgba(255, 92, 92, 0.12);\n\n &.can-run {\n --blob-color: #49cc49;\n --badge-background: rgba(99, 224, 36, 0.12);\n }\n\n &.loading {\n --blob-color: #ffad0a;\n --badge-background: rgba(255, 173, 10, 0.12);\n }\n}\n\n.statusText {\n margin-top: 6px;\n color: var(--txt-error);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.badge {\n display: flex;\n gap: 6px;\n height: 40px;\n padding: 6px 16px 6px 8px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--badge-background);\n background: var(--badge-background);\n}\n\n.blob {\n width: 24px;\n height: 24px;\n display: flex;\n place-items: center;\n place-content: center;\n\n > span {\n display: flex;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n place-content: center;\n place-items: center;\n background-color: rgb(from var(--blob-color) r g b / 0.24);\n }\n\n .dot {\n border-radius: 50%;\n height: 8px;\n width: 8px;\n transform: scale(1);\n\n background: var(--blob-color);\n box-shadow: 0 0 0 0 var(--blob-color);\n animation: pulse-glob 1s infinite;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;EAGA,IAAM,IAAQ,GAMR,IAAY,QACZ,EAAM,YACD,gBAGL,EAAM,SACD,iBAGF,aACP;yBAIA,EAaM,OAAA,MAAA,CAZJ,EAUM,OAAA,EAVA,OAAK,EAAA,CAAA;IAAMA,EAAAA,OAAM,aAAc,EAAA;IAASA,EAAAA,OAAO,UAAU,EAAA;GAAS,EAAIA,EAAAA,OAAO,UAAS,CAAA,EAAA,EAAA,CAC1F,EAOM,OAAA,EAPA,OAAK,EAAEA,EAAAA,OAAO,MAAK,EAAA,EAAA,CACvB,EAII,KAAA,EAJA,OAAK,EAAEA,EAAAA,OAAO,KAAI,EAAA,EAAA,CACpB,EAEO,QAAA,MAAA,CADL,EAA4B,QAAA,EAArB,OAAK,EAAEA,EAAAA,OAAO,IAAG,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAG5B,EAA4B,QAAA,MAAA,EAAnB,EAAA,MAAS,EAAA,EAAA,CAAA,EAAA,EAAA,EAEpB,EAAQ,EAAA,QAAA,UAAA,CAAA,EAAA,EAAA,EAEC,EAAA,cAAA,GAAA,EAAX,EAAwE,OAAA;;GAAhD,OAAK,EAAEA,EAAAA,OAAO,WAAU;OAAK,EAAA,WAAU,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import e from "../../_virtual/_plugin-vue_export-helper.js";
|
|
2
|
+
import t from "./UserCabinetCard.vue2.js";
|
|
3
|
+
import n from "./UserCabinetCard.style.js";
|
|
4
|
+
var r = /* @__PURE__ */ e(t, [["__cssModules", { $style: n }]]);
|
|
5
|
+
export { r as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=UserCabinetCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCabinetCard.js","names":[],"sources":["../../../src/plugins/Monetization/UserCabinetCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { PlTooltip, PlMaskIcon24 } from \"@milaboratories/uikit\";\n\nconst props = defineProps<{\n userCabinetUrl: string;\n email?: string;\n}>();\n\nconst copiedMessage = ref(\"\");\n\nconst iconName = computed(() => (copiedMessage.value ? \"clipboard-copied\" : \"clipboard\"));\n\nconst copyToClipboard = () => {\n if (props.userCabinetUrl) {\n navigator.clipboard\n .writeText(props.userCabinetUrl)\n .then(() => {\n copiedMessage.value = \"URL copied!\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n })\n .catch((err) => {\n console.error(\"Failed to copy text: \", err);\n copiedMessage.value = \"Copy failed\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n });\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"userCabinetUrl\" :class=\"$style.urlSection\">\n <div :class=\"$style.urlLabel\">Scientist cabinet URL:</div>\n <div :class=\"$style.urlActions\">\n <div :class=\"$style.urlDisplay\" :title=\"userCabinetUrl\">{{ userCabinetUrl }}</div>\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24\n :class=\"$style.copyIcon\"\n title=\"Copy content\"\n :name=\"iconName\"\n @click=\"copyToClipboard\"\n />\n <template #tooltip>{{ copiedMessage ? copiedMessage : \"Copy\" }}</template>\n </PlTooltip>\n </div>\n <div v-if=\"email\" :class=\"$style.email\">\n <span>License owner:</span>\n <span>{{ email }}</span>\n </div>\n </div>\n <div :class=\"$style.hint\">* Copy and paste the link into your browser</div>\n </div>\n</template>\n\n<style module>\n.hint {\n margin-top: 6px;\n color: var(--txt-03);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n}\n\n.email {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n color: var(--txt-03);\n\n > span:last-child {\n max-width: 200px;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n }\n}\n\n.copyIcon {\n cursor: pointer;\n}\n\n.urlSection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n background-color: #f7f8fa;\n border-radius: 6px;\n border: 1px solid #e1e3eb;\n}\n\n.urlLabel {\n font-weight: 500;\n color: #555;\n}\n\n.urlActions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: nowrap;\n}\n\n.urlDisplay {\n font-family: monospace;\n font-size: 14px;\n color: #0066cc;\n padding: 6px 10px 6px 0;\n border-radius: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n</style>\n"],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './UserCabinetCard.vue.css';var e = {
|
|
2
|
+
hint: "_hint_19ht8_2",
|
|
3
|
+
email: "_email_19ht8_10",
|
|
4
|
+
copyIcon: "_copyIcon_19ht8_26",
|
|
5
|
+
urlSection: "_urlSection_19ht8_30",
|
|
6
|
+
urlLabel: "_urlLabel_19ht8_40",
|
|
7
|
+
urlActions: "_urlActions_19ht8_45",
|
|
8
|
+
urlDisplay: "_urlDisplay_19ht8_52"
|
|
9
|
+
};
|
|
10
|
+
export { e as default };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=UserCabinetCard.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserCabinetCard.vue_vue_type_style_index_0_lang.module.js","names":[],"sources":["../../../src/plugins/Monetization/UserCabinetCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { PlTooltip, PlMaskIcon24 } from \"@milaboratories/uikit\";\n\nconst props = defineProps<{\n userCabinetUrl: string;\n email?: string;\n}>();\n\nconst copiedMessage = ref(\"\");\n\nconst iconName = computed(() => (copiedMessage.value ? \"clipboard-copied\" : \"clipboard\"));\n\nconst copyToClipboard = () => {\n if (props.userCabinetUrl) {\n navigator.clipboard\n .writeText(props.userCabinetUrl)\n .then(() => {\n copiedMessage.value = \"URL copied!\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n })\n .catch((err) => {\n console.error(\"Failed to copy text: \", err);\n copiedMessage.value = \"Copy failed\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n });\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"userCabinetUrl\" :class=\"$style.urlSection\">\n <div :class=\"$style.urlLabel\">Scientist cabinet URL:</div>\n <div :class=\"$style.urlActions\">\n <div :class=\"$style.urlDisplay\" :title=\"userCabinetUrl\">{{ userCabinetUrl }}</div>\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24\n :class=\"$style.copyIcon\"\n title=\"Copy content\"\n :name=\"iconName\"\n @click=\"copyToClipboard\"\n />\n <template #tooltip>{{ copiedMessage ? copiedMessage : \"Copy\" }}</template>\n </PlTooltip>\n </div>\n <div v-if=\"email\" :class=\"$style.email\">\n <span>License owner:</span>\n <span>{{ email }}</span>\n </div>\n </div>\n <div :class=\"$style.hint\">* Copy and paste the link into your browser</div>\n </div>\n</template>\n\n<style module>\n.hint {\n margin-top: 6px;\n color: var(--txt-03);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n}\n\n.email {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n color: var(--txt-03);\n\n > span:last-child {\n max-width: 200px;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n }\n}\n\n.copyIcon {\n cursor: pointer;\n}\n\n.urlSection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n background-color: #f7f8fa;\n border-radius: 6px;\n border: 1px solid #e1e3eb;\n}\n\n.urlLabel {\n font-weight: 500;\n color: #555;\n}\n\n.urlActions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: nowrap;\n}\n\n.urlDisplay {\n font-family: monospace;\n font-size: 14px;\n color: #0066cc;\n padding: 6px 10px 6px 0;\n border-radius: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n</style>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._hint_19ht8_2{color:var(--txt-03);margin-top:6px;font-size:12px;font-weight:500;line-height:16px}._email_19ht8_10{color:var(--txt-03);justify-content:space-between;align-items:center;font-size:12px;display:flex}._email_19ht8_10>span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:200px;display:block;overflow:hidden}._copyIcon_19ht8_26{cursor:pointer}._urlSection_19ht8_30{background-color:#f7f8fa;border:1px solid #e1e3eb;border-radius:6px;flex-direction:column;gap:8px;padding:12px;display:flex}._urlLabel_19ht8_40{color:#555;font-weight:500}._urlActions_19ht8_45{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}._urlDisplay_19ht8_52{color:#06c;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;max-width:300px;padding:6px 10px 6px 0;font-family:monospace;font-size:14px;overflow:hidden}
|
|
@@ -1,71 +1,51 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
onClick: C
|
|
49
|
-
}, null, 8, ["class", "name"])
|
|
50
|
-
]),
|
|
51
|
-
_: 1
|
|
52
|
-
})
|
|
53
|
-
], 2),
|
|
54
|
-
o.email ? (s(), i("div", {
|
|
55
|
-
key: 0,
|
|
56
|
-
class: t(e.$style.email)
|
|
57
|
-
}, [
|
|
58
|
-
c[0] || (c[0] = a("span", null, "License owner:", -1)),
|
|
59
|
-
a("span", null, n(o.email), 1)
|
|
60
|
-
], 2)) : u("", !0)
|
|
61
|
-
], 2)) : u("", !0),
|
|
62
|
-
a("div", {
|
|
63
|
-
class: t(e.$style.hint)
|
|
64
|
-
}, "* Copy and paste the link into your browser", 2)
|
|
65
|
-
]));
|
|
66
|
-
}
|
|
1
|
+
import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, normalizeClass as s, openBlock as c, ref as l, toDisplayString as u, unref as d, withCtx as f } from "vue";
|
|
2
|
+
import { PlMaskIcon24 as p, PlTooltip as m } from "@milaboratories/uikit";
|
|
3
|
+
var h = ["title"], g = /* @__PURE__ */ o({
|
|
4
|
+
__name: "UserCabinetCard",
|
|
5
|
+
props: {
|
|
6
|
+
userCabinetUrl: {},
|
|
7
|
+
email: {}
|
|
8
|
+
},
|
|
9
|
+
setup(o) {
|
|
10
|
+
let g = o, _ = l(""), v = e(() => _.value ? "clipboard-copied" : "clipboard"), y = () => {
|
|
11
|
+
g.userCabinetUrl && navigator.clipboard.writeText(g.userCabinetUrl).then(() => {
|
|
12
|
+
_.value = "URL copied!", setTimeout(() => {
|
|
13
|
+
_.value = "";
|
|
14
|
+
}, 2e3);
|
|
15
|
+
}).catch((e) => {
|
|
16
|
+
console.error("Failed to copy text: ", e), _.value = "Copy failed", setTimeout(() => {
|
|
17
|
+
_.value = "";
|
|
18
|
+
}, 2e3);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (e, l) => (c(), n("div", null, [o.userCabinetUrl ? (c(), n("div", {
|
|
22
|
+
key: 0,
|
|
23
|
+
class: s(e.$style.urlSection)
|
|
24
|
+
}, [
|
|
25
|
+
r("div", { class: s(e.$style.urlLabel) }, "Scientist cabinet URL:", 2),
|
|
26
|
+
r("div", { class: s(e.$style.urlActions) }, [r("div", {
|
|
27
|
+
class: s(e.$style.urlDisplay),
|
|
28
|
+
title: o.userCabinetUrl
|
|
29
|
+
}, u(o.userCabinetUrl), 11, h), a(d(m), {
|
|
30
|
+
"close-delay": 800,
|
|
31
|
+
position: "top"
|
|
32
|
+
}, {
|
|
33
|
+
tooltip: f(() => [i(u(_.value ? _.value : "Copy"), 1)]),
|
|
34
|
+
default: f(() => [a(d(p), {
|
|
35
|
+
class: s(e.$style.copyIcon),
|
|
36
|
+
title: "Copy content",
|
|
37
|
+
name: v.value,
|
|
38
|
+
onClick: y
|
|
39
|
+
}, null, 8, ["class", "name"])]),
|
|
40
|
+
_: 1
|
|
41
|
+
})], 2),
|
|
42
|
+
o.email ? (c(), n("div", {
|
|
43
|
+
key: 0,
|
|
44
|
+
class: s(e.$style.email)
|
|
45
|
+
}, [l[0] ||= r("span", null, "License owner:", -1), r("span", null, u(o.email), 1)], 2)) : t("", !0)
|
|
46
|
+
], 2)) : t("", !0), r("div", { class: s(e.$style.hint) }, "* Copy and paste the link into your browser", 2)]));
|
|
47
|
+
}
|
|
67
48
|
});
|
|
68
|
-
export {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=UserCabinetCard.vue2.js.map
|
|
49
|
+
export { g as default };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=UserCabinetCard.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserCabinetCard.
|
|
1
|
+
{"version":3,"file":"UserCabinetCard.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../src/plugins/Monetization/UserCabinetCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\";\nimport { PlTooltip, PlMaskIcon24 } from \"@milaboratories/uikit\";\n\nconst props = defineProps<{\n userCabinetUrl: string;\n email?: string;\n}>();\n\nconst copiedMessage = ref(\"\");\n\nconst iconName = computed(() => (copiedMessage.value ? \"clipboard-copied\" : \"clipboard\"));\n\nconst copyToClipboard = () => {\n if (props.userCabinetUrl) {\n navigator.clipboard\n .writeText(props.userCabinetUrl)\n .then(() => {\n copiedMessage.value = \"URL copied!\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n })\n .catch((err) => {\n console.error(\"Failed to copy text: \", err);\n copiedMessage.value = \"Copy failed\";\n setTimeout(() => {\n copiedMessage.value = \"\";\n }, 2000);\n });\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"userCabinetUrl\" :class=\"$style.urlSection\">\n <div :class=\"$style.urlLabel\">Scientist cabinet URL:</div>\n <div :class=\"$style.urlActions\">\n <div :class=\"$style.urlDisplay\" :title=\"userCabinetUrl\">{{ userCabinetUrl }}</div>\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24\n :class=\"$style.copyIcon\"\n title=\"Copy content\"\n :name=\"iconName\"\n @click=\"copyToClipboard\"\n />\n <template #tooltip>{{ copiedMessage ? copiedMessage : \"Copy\" }}</template>\n </PlTooltip>\n </div>\n <div v-if=\"email\" :class=\"$style.email\">\n <span>License owner:</span>\n <span>{{ email }}</span>\n </div>\n </div>\n <div :class=\"$style.hint\">* Copy and paste the link into your browser</div>\n </div>\n</template>\n\n<style module>\n.hint {\n margin-top: 6px;\n color: var(--txt-03);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n}\n\n.email {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n color: var(--txt-03);\n\n > span:last-child {\n max-width: 200px;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n }\n}\n\n.copyIcon {\n cursor: pointer;\n}\n\n.urlSection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n background-color: #f7f8fa;\n border-radius: 6px;\n border: 1px solid #e1e3eb;\n}\n\n.urlLabel {\n font-weight: 500;\n color: #555;\n}\n\n.urlActions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: nowrap;\n}\n\n.urlDisplay {\n font-family: monospace;\n font-size: 14px;\n color: #0066cc;\n padding: 6px 10px 6px 0;\n border-radius: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n</style>\n"],"mappings":";;;;;;;;;EAIA,IAAM,IAAQ,GAKR,IAAgB,EAAI,GAAG,EAEvB,IAAW,QAAgB,EAAc,QAAQ,qBAAqB,YAAa,EAEnF,UAAwB;AAC5B,GAAI,EAAM,kBACR,UAAU,UACP,UAAU,EAAM,eAAc,CAC9B,WAAW;AAEV,IADA,EAAc,QAAQ,eACtB,iBAAiB;AACf,OAAc,QAAQ;OACrB,IAAK;KACT,CACA,OAAO,MAAQ;AAGd,IAFA,QAAQ,MAAM,yBAAyB,EAAI,EAC3C,EAAc,QAAQ,eACtB,iBAAiB;AACf,OAAc,QAAQ;OACrB,IAAK;KACR;;yBAMN,EAqBM,OAAA,MAAA,CApBO,EAAA,kBAAA,GAAA,EAAX,EAkBM,OAAA;;GAlBsB,OAAK,EAAEA,EAAAA,OAAO,WAAU;;GAClD,EAA0D,OAAA,EAApD,OAAK,EAAEA,EAAAA,OAAO,SAAQ,EAAA,EAAE,0BAAsB,EAAA;GACpD,EAWM,OAAA,EAXA,OAAK,EAAEA,EAAAA,OAAO,WAAU,EAAA,EAAA,CAC5B,EAAkF,OAAA;IAA5E,OAAK,EAAEA,EAAAA,OAAO,WAAU;IAAG,OAAO,EAAA;QAAmB,EAAA,eAAc,EAAA,IAAA,EAAA,EACzE,EAQY,EAAA,EAAA,EAAA;IARA,eAAa;IAAK,UAAS;;IAO1B,SAAO,QAA6C,CAAA,EAAA,EAAzC,EAAA,QAAgB,EAAA,QAAa,OAAA,EAAA,EAAA,CAAA,CAAA;qBADjD,CALF,EAKE,EAAA,EAAA,EAAA;KAJC,OAAK,EAAEA,EAAAA,OAAO,SAAQ;KACvB,OAAM;KACL,MAAM,EAAA;KACN,SAAO;;;;GAKH,EAAA,SAAA,GAAA,EAAX,EAGM,OAAA;;IAHa,OAAK,EAAEA,EAAAA,OAAO,MAAK;gBACpC,EAA2B,QAAA,MAArB,kBAAc,GAAA,EACpB,EAAwB,QAAA,MAAA,EAAf,EAAA,MAAK,EAAA,EAAA,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA;sBAGlB,EAA2E,OAAA,EAArE,OAAK,EAAEA,EAAAA,OAAO,KAAI,EAAA,EAAE,+CAA2C,EAAA,CAAA,CAAA"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { nextTick as e, onMounted as t, onUpdated as n, ref as r } from "vue";
|
|
2
|
+
function i(i) {
|
|
3
|
+
let a = r(), o = ".pl-block-page__title__append", s = () => {
|
|
4
|
+
e(() => {
|
|
5
|
+
if (!i.value) {
|
|
6
|
+
a.value = void 0;
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
a.value = document.querySelector(o) ? o : void 0, a.value || console.error("[Monetization] use #title slot to place monetization button");
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
return t(s), n(s), a;
|
|
13
13
|
}
|
|
14
|
-
export {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
//# sourceMappingURL=useButtonTarget.js.map
|
|
14
|
+
export { i as useButtonTarget };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=useButtonTarget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useButtonTarget.js","sources":["../../../src/plugins/Monetization/useButtonTarget.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { ref, nextTick, onMounted, onUpdated } from \"vue\";\n\nexport function useButtonTarget(hasMonetization: Ref<boolean>) {\n const target = ref<string>();\n\n const selector = \".pl-block-page__title__append\";\n\n const check = () => {\n nextTick(() => {\n if (!hasMonetization.value) {\n target.value = undefined;\n return;\n }\n\n target.value = document.querySelector(selector) ? selector : undefined;\n if (!target.value) {\n console.error(`[Monetization] use #title slot to place monetization button`);\n }\n });\n };\n\n onMounted(check);\n onUpdated(check);\n\n return target;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"useButtonTarget.js","names":[],"sources":["../../../src/plugins/Monetization/useButtonTarget.ts"],"sourcesContent":["import type { Ref } from \"vue\";\nimport { ref, nextTick, onMounted, onUpdated } from \"vue\";\n\nexport function useButtonTarget(hasMonetization: Ref<boolean>) {\n const target = ref<string>();\n\n const selector = \".pl-block-page__title__append\";\n\n const check = () => {\n nextTick(() => {\n if (!hasMonetization.value) {\n target.value = undefined;\n return;\n }\n\n target.value = document.querySelector(selector) ? selector : undefined;\n if (!target.value) {\n console.error(`[Monetization] use #title slot to place monetization button`);\n }\n });\n };\n\n onMounted(check);\n onUpdated(check);\n\n return target;\n}\n"],"mappings":";AAGA,SAAgB,EAAgB,GAA+B;CAC7D,IAAM,IAAS,GAAa,EAEtB,IAAW,iCAEX,UAAc;AAClB,UAAe;AACb,OAAI,CAAC,EAAgB,OAAO;AAC1B,MAAO,QAAQ,KAAA;AACf;;AAIF,GADA,EAAO,QAAQ,SAAS,cAAc,EAAS,GAAG,IAAW,KAAA,GACxD,EAAO,SACV,QAAQ,MAAM,8DAA8D;IAE9E;;AAMJ,QAHA,EAAU,EAAM,EAChB,EAAU,EAAM,EAET"}
|
|
@@ -1,72 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { useIntervalFn as
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return (n = (e = o.value) == null ? void 0 : e.response) == null ? void 0 : n.result;
|
|
35
|
-
}), d = t(() => {
|
|
36
|
-
var e;
|
|
37
|
-
return !!((e = a.value) != null && e.canRun);
|
|
38
|
-
}), D = t(() => {
|
|
39
|
-
var e;
|
|
40
|
-
return m.value ? (e = a.value) == null ? void 0 : e.status : "";
|
|
41
|
-
}), O = t(() => {
|
|
42
|
-
var e;
|
|
43
|
-
return (e = a.value) == null ? void 0 : e.customerEmail;
|
|
44
|
-
}), P = t(() => {
|
|
45
|
-
var e;
|
|
46
|
-
return (e = a.value) == null ? void 0 : e.mnz.endOfBillingPeriod;
|
|
47
|
-
}), R = t(() => {
|
|
48
|
-
var e;
|
|
49
|
-
return (e = a.value) == null ? void 0 : e.mnz.limits;
|
|
50
|
-
}), p = () => {
|
|
51
|
-
u.value = !0, s.value.__mnzDate = (/* @__PURE__ */ new Date()).toISOString();
|
|
52
|
-
};
|
|
53
|
-
return _(d, (e) => {
|
|
54
|
-
r.value && (s.value.__mnzCanRun = e);
|
|
55
|
-
}), r.value && k(p, 6e4), {
|
|
56
|
-
hasMonetization: r,
|
|
57
|
-
result: a,
|
|
58
|
-
error: I,
|
|
59
|
-
canRun: d,
|
|
60
|
-
status: D,
|
|
61
|
-
customerEmail: O,
|
|
62
|
-
endOfBillingPeriod: P,
|
|
63
|
-
limits: R,
|
|
64
|
-
refresh: p,
|
|
65
|
-
version: i,
|
|
66
|
-
isLoading: u
|
|
67
|
-
};
|
|
1
|
+
import { useSdkPlugin as e } from "../../defineApp.js";
|
|
2
|
+
import { Response as t } from "./validation.js";
|
|
3
|
+
import { computed as n, ref as r, watch as i } from "vue";
|
|
4
|
+
import { useIntervalFn as a } from "@vueuse/core";
|
|
5
|
+
function o() {
|
|
6
|
+
let o = e(), s = n(() => o.loaded ? o.useApp() : void 0), c = (e) => e ? "data" in e ? e.data : "args" in e ? e.args : {} : {}, l = n(() => c(s.value?.model)), u = n(() => l.value && "__mnzDate" in l.value), d = n(() => t.safeParse(s.value?.model.outputs.__mnzInfo)), f = n(() => d.value?.data), p = n(() => d.value?.error ?? m.value?.response?.error), m = r(void 0), h = r(!1), g = r(0);
|
|
7
|
+
i([f], ([e]) => {
|
|
8
|
+
if (e) {
|
|
9
|
+
m.value = e;
|
|
10
|
+
let t = ++g.value;
|
|
11
|
+
setTimeout(() => {
|
|
12
|
+
g.value === t && (h.value = !1);
|
|
13
|
+
}, 1e3);
|
|
14
|
+
}
|
|
15
|
+
}, { immediate: !0 });
|
|
16
|
+
let _ = n(() => m.value?.response?.result), v = n(() => !!_.value?.canRun), y = n(() => f.value ? _.value?.status : ""), b = n(() => _.value?.customerEmail), x = n(() => _.value?.mnz.endOfBillingPeriod), S = n(() => _.value?.mnz.limits), C = () => {
|
|
17
|
+
h.value = !0, l.value.__mnzDate = (/* @__PURE__ */ new Date()).toISOString();
|
|
18
|
+
};
|
|
19
|
+
return i(v, (e) => {
|
|
20
|
+
u.value && (l.value.__mnzCanRun = e);
|
|
21
|
+
}), u.value && a(C, 6e4), {
|
|
22
|
+
hasMonetization: u,
|
|
23
|
+
result: _,
|
|
24
|
+
error: p,
|
|
25
|
+
canRun: v,
|
|
26
|
+
status: y,
|
|
27
|
+
customerEmail: b,
|
|
28
|
+
endOfBillingPeriod: x,
|
|
29
|
+
limits: S,
|
|
30
|
+
refresh: C,
|
|
31
|
+
version: g,
|
|
32
|
+
isLoading: h
|
|
33
|
+
};
|
|
68
34
|
}
|
|
69
|
-
export {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
//# sourceMappingURL=useInfo.js.map
|
|
35
|
+
export { o as useInfo };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=useInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInfo.js","sources":["../../../src/plugins/Monetization/useInfo.ts"],"sourcesContent":["import { computed, watch, ref } from \"vue\";\nimport { useSdkPlugin } from \"../../defineApp\";\nimport { Response } from \"./validation\";\nimport { useIntervalFn } from \"@vueuse/core\";\n\nexport function useInfo() {\n const sdk = useSdkPlugin();\n\n const app = computed(() => (sdk.loaded ? sdk.useApp() : undefined));\n\n // TODO use a separate plugin state when it's implemented\n const getModelArgsOrState = (model: Record<string, unknown> | undefined) => {\n if (!model) return {};\n if (\"data\" in model) {\n return model.data as Record<string, unknown>;\n } else if (\"args\" in model) {\n return model.args as Record<string, unknown>;\n }\n return {};\n };\n\n const inputData = computed(() => getModelArgsOrState(app.value?.model));\n\n const hasMonetization = computed(() => {\n return inputData.value && \"__mnzDate\" in inputData.value;\n });\n\n const parsed = computed(() => Response.safeParse(app.value?.model.outputs[\"__mnzInfo\"]));\n\n const currentInfo = computed<Response | undefined>(() => parsed.value?.data);\n\n const error = computed(() => parsed.value?.error ?? info.value?.response?.error);\n\n const info = ref<Response | undefined>(undefined);\n\n const isLoading = ref(false);\n\n const version = ref(0);\n\n watch(\n [currentInfo],\n ([i]) => {\n if (i) {\n info.value = i;\n const v = ++version.value;\n setTimeout(() => {\n if (version.value === v) {\n isLoading.value = false;\n }\n }, 1000);\n }\n },\n { immediate: true },\n );\n\n const result = computed(() => info.value?.response?.result);\n\n const canRun = computed(() => !!result.value?.canRun);\n\n const status = computed(() => (currentInfo.value ? result.value?.status : \"\"));\n\n const customerEmail = computed(() => result.value?.customerEmail);\n\n const endOfBillingPeriod = computed(() => result.value?.mnz.endOfBillingPeriod);\n\n const limits = computed(() => result.value?.mnz.limits);\n\n const refresh = () => {\n isLoading.value = true;\n inputData.value[\"__mnzDate\"] = new Date().toISOString();\n };\n\n watch(canRun, (v) => {\n if (hasMonetization.value) {\n (inputData.value as Record<string, unknown>)[\"__mnzCanRun\"] = v;\n }\n });\n\n if (hasMonetization.value) {\n useIntervalFn(refresh, 60_000); // 1 minute\n }\n\n return {\n hasMonetization,\n result,\n error,\n canRun,\n status,\n customerEmail,\n endOfBillingPeriod,\n limits,\n refresh,\n version,\n isLoading,\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"useInfo.js","names":[],"sources":["../../../src/plugins/Monetization/useInfo.ts"],"sourcesContent":["import { computed, watch, ref } from \"vue\";\nimport { useSdkPlugin } from \"../../defineApp\";\nimport { Response } from \"./validation\";\nimport { useIntervalFn } from \"@vueuse/core\";\n\nexport function useInfo() {\n const sdk = useSdkPlugin();\n\n const app = computed(() => (sdk.loaded ? sdk.useApp() : undefined));\n\n // TODO use a separate plugin state when it's implemented\n const getModelArgsOrState = (model: Record<string, unknown> | undefined) => {\n if (!model) return {};\n if (\"data\" in model) {\n return model.data as Record<string, unknown>;\n } else if (\"args\" in model) {\n return model.args as Record<string, unknown>;\n }\n return {};\n };\n\n const inputData = computed(() => getModelArgsOrState(app.value?.model));\n\n const hasMonetization = computed(() => {\n return inputData.value && \"__mnzDate\" in inputData.value;\n });\n\n const parsed = computed(() => Response.safeParse(app.value?.model.outputs[\"__mnzInfo\"]));\n\n const currentInfo = computed<Response | undefined>(() => parsed.value?.data);\n\n const error = computed(() => parsed.value?.error ?? info.value?.response?.error);\n\n const info = ref<Response | undefined>(undefined);\n\n const isLoading = ref(false);\n\n const version = ref(0);\n\n watch(\n [currentInfo],\n ([i]) => {\n if (i) {\n info.value = i;\n const v = ++version.value;\n setTimeout(() => {\n if (version.value === v) {\n isLoading.value = false;\n }\n }, 1000);\n }\n },\n { immediate: true },\n );\n\n const result = computed(() => info.value?.response?.result);\n\n const canRun = computed(() => !!result.value?.canRun);\n\n const status = computed(() => (currentInfo.value ? result.value?.status : \"\"));\n\n const customerEmail = computed(() => result.value?.customerEmail);\n\n const endOfBillingPeriod = computed(() => result.value?.mnz.endOfBillingPeriod);\n\n const limits = computed(() => result.value?.mnz.limits);\n\n const refresh = () => {\n isLoading.value = true;\n inputData.value[\"__mnzDate\"] = new Date().toISOString();\n };\n\n watch(canRun, (v) => {\n if (hasMonetization.value) {\n (inputData.value as Record<string, unknown>)[\"__mnzCanRun\"] = v;\n }\n });\n\n if (hasMonetization.value) {\n useIntervalFn(refresh, 60_000); // 1 minute\n }\n\n return {\n hasMonetization,\n result,\n error,\n canRun,\n status,\n customerEmail,\n endOfBillingPeriod,\n limits,\n refresh,\n version,\n isLoading,\n };\n}\n"],"mappings":";;;;AAKA,SAAgB,IAAU;CACxB,IAAM,IAAM,GAAc,EAEpB,IAAM,QAAgB,EAAI,SAAS,EAAI,QAAQ,GAAG,KAAA,EAAW,EAG7D,KAAuB,MACtB,IACD,UAAU,IACL,EAAM,OACJ,UAAU,IACZ,EAAM,OAER,EAAE,GANU,EAAE,EASjB,IAAY,QAAe,EAAoB,EAAI,OAAO,MAAM,CAAC,EAEjE,IAAkB,QACf,EAAU,SAAS,eAAe,EAAU,MACnD,EAEI,IAAS,QAAe,EAAS,UAAU,EAAI,OAAO,MAAM,QAAQ,UAAa,CAAC,EAElF,IAAc,QAAqC,EAAO,OAAO,KAAK,EAEtE,IAAQ,QAAe,EAAO,OAAO,SAAS,EAAK,OAAO,UAAU,MAAM,EAE1E,IAAO,EAA0B,KAAA,EAAU,EAE3C,IAAY,EAAI,GAAM,EAEtB,IAAU,EAAI,EAAE;AAEtB,GACE,CAAC,EAAY,GACZ,CAAC,OAAO;AACP,MAAI,GAAG;AACL,KAAK,QAAQ;GACb,IAAM,IAAI,EAAE,EAAQ;AACpB,oBAAiB;AACf,IAAI,EAAQ,UAAU,MACpB,EAAU,QAAQ;MAEnB,IAAK;;IAGZ,EAAE,WAAW,IAAM,CACpB;CAED,IAAM,IAAS,QAAe,EAAK,OAAO,UAAU,OAAO,EAErD,IAAS,QAAe,CAAC,CAAC,EAAO,OAAO,OAAO,EAE/C,IAAS,QAAgB,EAAY,QAAQ,EAAO,OAAO,SAAS,GAAI,EAExE,IAAgB,QAAe,EAAO,OAAO,cAAc,EAE3D,IAAqB,QAAe,EAAO,OAAO,IAAI,mBAAmB,EAEzE,IAAS,QAAe,EAAO,OAAO,IAAI,OAAO,EAEjD,UAAgB;AAEpB,EADA,EAAU,QAAQ,IAClB,EAAU,MAAM,6BAAe,IAAI,MAAM,EAAC,aAAa;;AAazD,QAVA,EAAM,IAAS,MAAM;AACnB,EAAI,EAAgB,UACjB,EAAU,MAAkC,cAAiB;GAEhE,EAEE,EAAgB,SAClB,EAAc,GAAS,IAAO,EAGzB;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,43 +1,35 @@
|
|
|
1
|
-
import { z as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
response: t.object({
|
|
33
|
-
result: r.optional(),
|
|
34
|
-
error: t.unknown().optional()
|
|
35
|
-
}).optional()
|
|
1
|
+
import { z as e } from "zod";
|
|
2
|
+
var t = e.literal("trial"), n = e.literal("free"), r = e.literal("single_payment"), i = e.literal("subscription"), a = e.union([
|
|
3
|
+
t,
|
|
4
|
+
n,
|
|
5
|
+
r,
|
|
6
|
+
i,
|
|
7
|
+
e.literal("base")
|
|
8
|
+
]);
|
|
9
|
+
const o = e.object({
|
|
10
|
+
type: e.union([e.literal("unique_launches"), e.literal("volume_limit")]),
|
|
11
|
+
used: e.number(),
|
|
12
|
+
toSpend: e.number(),
|
|
13
|
+
available: e.number().nullable()
|
|
14
|
+
});
|
|
15
|
+
var s = e.object({
|
|
16
|
+
productKey: e.string(),
|
|
17
|
+
productName: e.string().default("Unknown product"),
|
|
18
|
+
customerEmail: e.string().optional(),
|
|
19
|
+
canRun: e.boolean(),
|
|
20
|
+
status: e.string(),
|
|
21
|
+
mnz: e.object({
|
|
22
|
+
type: a.optional(),
|
|
23
|
+
endOfBillingPeriod: e.string().nullable().optional(),
|
|
24
|
+
limits: e.array(o).optional()
|
|
25
|
+
})
|
|
26
|
+
}, { message: "Invalid DryRunResult" }), c = e.object({
|
|
27
|
+
httpError: e.string().optional(),
|
|
28
|
+
response: e.object({
|
|
29
|
+
result: s.optional(),
|
|
30
|
+
error: e.unknown().optional()
|
|
31
|
+
}).optional()
|
|
36
32
|
}).optional();
|
|
37
|
-
export {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
l as MonetizationType,
|
|
41
|
-
u as Response
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=validation.js.map
|
|
33
|
+
export { c as Response };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sources":["../../../src/plugins/Monetization/validation.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst MonetizationTrial = z.literal(\"trial\");\nconst MonetizationFree = z.literal(\"free\");\nconst MonetizationSinglePayment = z.literal(\"single_payment\");\nconst MonetizationSubscription = z.literal(\"subscription\");\n\nconst MonetizationType = z.union([\n MonetizationTrial,\n MonetizationFree,\n MonetizationSinglePayment,\n MonetizationSubscription,\n z.literal(\"base\"), // outdated\n]);\n\nexport const Limit = z.object({\n type: z.union([z.literal(\"unique_launches\"), z.literal(\"volume_limit\")]),\n used: z.number(),\n toSpend: z.number(),\n available: z.number().nullable(), // null if unlimited\n});\n\nconst DryRunResult = z.object(\n {\n productKey: z.string(),\n productName: z.string().default(\"Unknown product\"),\n customerEmail: z.string().optional(),\n canRun: z.boolean(),\n status: z.string(), // 'select-tariff', 'active', 'payment_required', 'limits_exceeded', 'inactive', 'unknown',\n mnz: z.object({\n type: MonetizationType.optional(),\n endOfBillingPeriod: z.string().nullable().optional(),\n limits: z.array(Limit).optional(),\n }),\n },\n { message: \"Invalid DryRunResult\" },\n);\n\ntype DryRunResult = z.infer<typeof DryRunResult>;\n\nconst Response = z\n .object({\n httpError: z.string().optional(),\n response: z\n .object({\n result: DryRunResult.optional(),\n error: z.unknown().optional(),\n })\n .optional(),\n })\n .optional();\n\ntype Response = z.infer<typeof Response>;\n\nexport { MonetizationType, DryRunResult, Response };\n"],"
|
|
1
|
+
{"version":3,"file":"validation.js","names":[],"sources":["../../../src/plugins/Monetization/validation.ts"],"sourcesContent":["import { z } from \"zod\";\n\nconst MonetizationTrial = z.literal(\"trial\");\nconst MonetizationFree = z.literal(\"free\");\nconst MonetizationSinglePayment = z.literal(\"single_payment\");\nconst MonetizationSubscription = z.literal(\"subscription\");\n\nconst MonetizationType = z.union([\n MonetizationTrial,\n MonetizationFree,\n MonetizationSinglePayment,\n MonetizationSubscription,\n z.literal(\"base\"), // outdated\n]);\n\nexport const Limit = z.object({\n type: z.union([z.literal(\"unique_launches\"), z.literal(\"volume_limit\")]),\n used: z.number(),\n toSpend: z.number(),\n available: z.number().nullable(), // null if unlimited\n});\n\nconst DryRunResult = z.object(\n {\n productKey: z.string(),\n productName: z.string().default(\"Unknown product\"),\n customerEmail: z.string().optional(),\n canRun: z.boolean(),\n status: z.string(), // 'select-tariff', 'active', 'payment_required', 'limits_exceeded', 'inactive', 'unknown',\n mnz: z.object({\n type: MonetizationType.optional(),\n endOfBillingPeriod: z.string().nullable().optional(),\n limits: z.array(Limit).optional(),\n }),\n },\n { message: \"Invalid DryRunResult\" },\n);\n\ntype DryRunResult = z.infer<typeof DryRunResult>;\n\nconst Response = z\n .object({\n httpError: z.string().optional(),\n response: z\n .object({\n result: DryRunResult.optional(),\n error: z.unknown().optional(),\n })\n .optional(),\n })\n .optional();\n\ntype Response = z.infer<typeof Response>;\n\nexport { MonetizationType, DryRunResult, Response };\n"],"mappings":";AAEA,IAAM,IAAoB,EAAE,QAAQ,QAAQ,EACtC,IAAmB,EAAE,QAAQ,OAAO,EACpC,IAA4B,EAAE,QAAQ,iBAAiB,EACvD,IAA2B,EAAE,QAAQ,eAAe,EAEpD,IAAmB,EAAE,MAAM;CAC/B;CACA;CACA;CACA;CACA,EAAE,QAAQ,OAAO;CAClB,CAAC;AAEF,MAAa,IAAQ,EAAE,OAAO;CAC5B,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,kBAAkB,EAAE,EAAE,QAAQ,eAAe,CAAC,CAAC;CACxE,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAEF,IAAM,IAAe,EAAE,OACrB;CACE,YAAY,EAAE,QAAQ;CACtB,aAAa,EAAE,QAAQ,CAAC,QAAQ,kBAAkB;CAClD,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,QAAQ,EAAE,SAAS;CACnB,QAAQ,EAAE,QAAQ;CAClB,KAAK,EAAE,OAAO;EACZ,MAAM,EAAiB,UAAU;EACjC,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;EACpD,QAAQ,EAAE,MAAM,EAAM,CAAC,UAAU;EAClC,CAAC;CACH,EACD,EAAE,SAAS,wBAAwB,CACpC,EAIK,IAAW,EACd,OAAO;CACN,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,UAAU,EACP,OAAO;EACN,QAAQ,EAAa,UAAU;EAC/B,OAAO,EAAE,SAAS,CAAC,UAAU;EAC9B,CAAC,CACD,UAAU;CACd,CAAC,CACD,UAAU"}
|
package/dist/urls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../src/urls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,MAAM,EAAE,6BAO/C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,IAAI,SAAS,IAAI,MAAM,EAAE,EAAE,MAAM,IAAI,KACW,UAAU,CAAC,IAAI,CACzF,CAAC"}
|
package/dist/urls.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const e = (
|
|
2
|
-
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
//# sourceMappingURL=urls.js.map
|
|
1
|
+
const e = (e) => Object.fromEntries(new URL(e, "http://dummy").searchParams);
|
|
2
|
+
export { e as parseQuery };
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=urls.js.map
|
package/dist/urls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls.js","sources":["../src/urls.ts"],"sourcesContent":["import type { ParseQuery } from \"./types\";\n\nexport const parsePathname = (href: `/${string}`) => {\n try {\n return new URL(href, \"http://dummy\").pathname as `/${string}`;\n } catch {\n console.error(\"Invalid href\", href);\n return undefined;\n }\n};\n\nexport const parseQuery = <Href extends `/${string}`>(href: Href) => {\n return Object.fromEntries(new URL(href, \"http://dummy\").searchParams) as ParseQuery<Href>;\n};\n"],"
|
|
1
|
+
{"version":3,"file":"urls.js","names":[],"sources":["../src/urls.ts"],"sourcesContent":["import type { ParseQuery } from \"./types\";\n\nexport const parsePathname = (href: `/${string}`) => {\n try {\n return new URL(href, \"http://dummy\").pathname as `/${string}`;\n } catch {\n console.error(\"Invalid href\", href);\n return undefined;\n }\n};\n\nexport const parseQuery = <Href extends `/${string}`>(href: Href) => {\n return Object.fromEntries(new URL(href, \"http://dummy\").searchParams) as ParseQuery<Href>;\n};\n"],"mappings":"AAWA,MAAa,KAAyC,MAC7C,OAAO,YAAY,IAAI,IAAI,GAAM,eAAe,CAAC,aAAa"}
|
package/dist/usePlugin.js
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
|
+
import { pluginDataKey as e } from "./defineApp.js";
|
|
1
2
|
import { inject as t } from "vue";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Composable for accessing a plugin's reactive model: data, outputs, and outputErrors.
|
|
5
|
+
*
|
|
6
|
+
* Mirrors the `app.model` access pattern — `plugin.model.data` is reactive and deep-watched,
|
|
7
|
+
* mutations are automatically queued and sent to storage.
|
|
8
|
+
*
|
|
9
|
+
* @param handle - Opaque plugin handle obtained from `app.plugins`.
|
|
10
|
+
* @typeParam F - The plugin factory type (inferred from the handle)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```vue
|
|
14
|
+
* <script setup lang="ts">
|
|
15
|
+
* import { usePlugin, type InferPluginHandle } from '@platforma-sdk/ui-vue';
|
|
16
|
+
* import type { CounterPlugin } from './plugins/counter';
|
|
17
|
+
*
|
|
18
|
+
* const props = defineProps<{ instance: InferPluginHandle<CounterPlugin> }>();
|
|
19
|
+
* const plugin = usePlugin(props.instance);
|
|
20
|
+
*
|
|
21
|
+
* plugin.model.data.count += 1; // reactive, triggers storage update
|
|
22
|
+
* plugin.model.outputs.displayText // computed, plugin's own outputs only
|
|
23
|
+
* plugin.model.outputErrors.displayText // Error | undefined
|
|
24
|
+
* <\/script>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
function n(n) {
|
|
28
|
+
let r = t(e);
|
|
29
|
+
if (!r) throw Error("usePlugin requires a V3 block (BlockModelV3). Make sure the block uses apiVersion 3 and the plugin is installed.");
|
|
30
|
+
return r.getOrCreatePluginState(n);
|
|
10
31
|
}
|
|
11
|
-
export {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=usePlugin.js.map
|
|
32
|
+
export { n as usePlugin };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=usePlugin.js.map
|
package/dist/usePlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePlugin.js","sources":["../src/usePlugin.ts"],"sourcesContent":["import { inject, type Reactive } from \"vue\";\nimport { pluginDataKey } from \"./defineApp\";\nimport type {\n PluginHandle,\n InferFactoryData,\n InferFactoryOutputs,\n PluginFactoryLike,\n} from \"@platforma-sdk/model\";\n\n/** Per-plugin reactive model exposed to consumers via usePlugin(). */\nexport interface PluginState<Data = unknown, Outputs = unknown> {\n readonly model: Reactive<{\n data: Data;\n outputs: Outputs extends Record<string, unknown>\n ? { [K in keyof Outputs]: Outputs[K] | undefined }\n : Record<string, unknown>;\n outputErrors: Outputs extends Record<string, unknown>\n ? { [K in keyof Outputs]?: Error }\n : Record<string, Error | undefined>;\n }>;\n}\n\n/** Internal interface for plugin access — provided via Vue injection to usePlugin(). */\nexport interface PluginAccess {\n getOrCreatePluginState<F extends PluginFactoryLike>(\n handle: PluginHandle<F>,\n ): PluginState<InferFactoryData<F>, InferFactoryOutputs<F>>;\n}\n\n/**\n * Composable for accessing a plugin's reactive model: data, outputs, and outputErrors.\n *\n * Mirrors the `app.model` access pattern — `plugin.model.data` is reactive and deep-watched,\n * mutations are automatically queued and sent to storage.\n *\n * @param handle - Opaque plugin handle obtained from `app.plugins`.\n * @typeParam F - The plugin factory type (inferred from the handle)\n *\n * @example\n * ```vue\n * <script setup lang=\"ts\">\n * import { usePlugin, type InferPluginHandle } from '@platforma-sdk/ui-vue';\n * import type { CounterPlugin } from './plugins/counter';\n *\n * const props = defineProps<{ instance: InferPluginHandle<CounterPlugin> }>();\n * const plugin = usePlugin(props.instance);\n *\n * plugin.model.data.count += 1; // reactive, triggers storage update\n * plugin.model.outputs.displayText // computed, plugin's own outputs only\n * plugin.model.outputErrors.displayText // Error | undefined\n * </script>\n * ```\n */\nexport function usePlugin<F extends PluginFactoryLike>(handle: PluginHandle<F>) {\n const access = inject<PluginAccess>(pluginDataKey);\n\n if (!access) {\n throw new Error(\n \"usePlugin requires a V3 block (BlockModelV3). \" +\n \"Make sure the block uses apiVersion 3 and the plugin is installed.\",\n );\n }\n\n return access.getOrCreatePluginState<F>(handle);\n}\n"],"
|
|
1
|
+
{"version":3,"file":"usePlugin.js","names":[],"sources":["../src/usePlugin.ts"],"sourcesContent":["import { inject, type Reactive } from \"vue\";\nimport { pluginDataKey } from \"./defineApp\";\nimport type {\n PluginHandle,\n InferFactoryData,\n InferFactoryOutputs,\n PluginFactoryLike,\n} from \"@platforma-sdk/model\";\n\n/** Per-plugin reactive model exposed to consumers via usePlugin(). */\nexport interface PluginState<Data = unknown, Outputs = unknown> {\n readonly model: Reactive<{\n data: Data;\n outputs: Outputs extends Record<string, unknown>\n ? { [K in keyof Outputs]: Outputs[K] | undefined }\n : Record<string, unknown>;\n outputErrors: Outputs extends Record<string, unknown>\n ? { [K in keyof Outputs]?: Error }\n : Record<string, Error | undefined>;\n }>;\n}\n\n/** Internal interface for plugin access — provided via Vue injection to usePlugin(). */\nexport interface PluginAccess {\n getOrCreatePluginState<F extends PluginFactoryLike>(\n handle: PluginHandle<F>,\n ): PluginState<InferFactoryData<F>, InferFactoryOutputs<F>>;\n}\n\n/**\n * Composable for accessing a plugin's reactive model: data, outputs, and outputErrors.\n *\n * Mirrors the `app.model` access pattern — `plugin.model.data` is reactive and deep-watched,\n * mutations are automatically queued and sent to storage.\n *\n * @param handle - Opaque plugin handle obtained from `app.plugins`.\n * @typeParam F - The plugin factory type (inferred from the handle)\n *\n * @example\n * ```vue\n * <script setup lang=\"ts\">\n * import { usePlugin, type InferPluginHandle } from '@platforma-sdk/ui-vue';\n * import type { CounterPlugin } from './plugins/counter';\n *\n * const props = defineProps<{ instance: InferPluginHandle<CounterPlugin> }>();\n * const plugin = usePlugin(props.instance);\n *\n * plugin.model.data.count += 1; // reactive, triggers storage update\n * plugin.model.outputs.displayText // computed, plugin's own outputs only\n * plugin.model.outputErrors.displayText // Error | undefined\n * </script>\n * ```\n */\nexport function usePlugin<F extends PluginFactoryLike>(handle: PluginHandle<F>) {\n const access = inject<PluginAccess>(pluginDataKey);\n\n if (!access) {\n throw new Error(\n \"usePlugin requires a V3 block (BlockModelV3). \" +\n \"Make sure the block uses apiVersion 3 and the plugin is installed.\",\n );\n }\n\n return access.getOrCreatePluginState<F>(handle);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqDA,SAAgB,EAAuC,GAAyB;CAC9E,IAAM,IAAS,EAAqB,EAAc;AAElD,KAAI,CAAC,EACH,OAAU,MACR,mHAED;AAGH,QAAO,EAAO,uBAA0B,EAAO"}
|