@atlaskit/link-datasource 6.8.0 → 6.10.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/CHANGELOG.md +26 -0
- package/analytics/render-failed/package.json +4 -4
- package/assets-config-modal-with-wrappers/package.json +10 -0
- package/assets-modal/package.json +4 -4
- package/assets-modal/types/package.json +4 -4
- package/confluence-search-config-modal-with-wrappers/package.json +10 -0
- package/confluence-search-modal/package.json +4 -4
- package/confluence-search-modal/types/package.json +4 -4
- package/datasource-table-view/package.json +4 -4
- package/datasource-table-view-with-wrappers/package.json +10 -0
- package/dist/cjs/analytics/index.js +0 -7
- package/dist/cjs/analytics/ufoExperiences/addMetadataToExperience.js +12 -0
- package/dist/cjs/analytics/ufoExperiences/columnPickerCustomExperienceConfig.js +14 -0
- package/dist/cjs/analytics/ufoExperiences/datasourcePageSegmentLoadExperienceConfig.js +14 -0
- package/dist/cjs/analytics/ufoExperiences/failUfoExperience.js +15 -0
- package/dist/cjs/analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience.js +2 -2
- package/dist/cjs/analytics/ufoExperiences/hooks/useDataRenderedUfoExperience.js +6 -4
- package/dist/cjs/analytics/ufoExperiences/inlineEditCustomExperienceConfig.js +14 -0
- package/dist/cjs/analytics/ufoExperiences/startUfoExperience.js +16 -0
- package/dist/cjs/analytics/ufoExperiences/succeedUfoExperience.js +15 -0
- package/dist/cjs/analytics/ufoExperiences/ufoExperiences.js +15 -0
- package/dist/cjs/analytics/wrappers/render-failed/datasourceRenderFailedAnalyticsWrapper.js +2 -2
- package/dist/cjs/contexts/datasource-experience-id/datasource-experience-id-context.js +9 -0
- package/dist/cjs/contexts/datasource-experience-id/{index.js → datasource-experience-id-provider.js} +3 -10
- package/dist/cjs/contexts/datasource-experience-id/use-datasource-experience-id.js +15 -0
- package/dist/cjs/contexts/user-interactions/use-user-interactions.js +21 -0
- package/dist/cjs/contexts/user-interactions/user-interactions-context.js +9 -0
- package/dist/cjs/contexts/user-interactions/{index.js → user-interactions-provider.js} +3 -17
- package/dist/cjs/hooks/logToSentry.js +20 -0
- package/dist/cjs/hooks/useAssetsClient.js +9 -6
- package/dist/cjs/hooks/useDatasourceTableState.js +3 -3
- package/dist/cjs/hooks/useErrorLogger.js +3 -16
- package/dist/cjs/hooks/useObjectSchemas.js +2 -2
- package/dist/cjs/hooks/useValidateAqlText.js +2 -2
- package/dist/cjs/services/FetchError.js +27 -0
- package/dist/cjs/services/{cmdbService.utils.js → PermissionError.js} +1 -37
- package/dist/cjs/services/__clearMetaCacheForTests.js +13 -0
- package/dist/cjs/services/cmdbService.js +1 -205
- package/dist/cjs/services/fetchObjectSchema.js +51 -0
- package/dist/cjs/services/fetchObjectSchemas.js +55 -0
- package/dist/cjs/services/getMeta.js +2 -9
- package/dist/cjs/services/getStatusCodeGroup.js +25 -0
- package/dist/cjs/services/getWorkspaceId.js +58 -0
- package/dist/cjs/services/mapFetchErrors.js +13 -0
- package/dist/cjs/services/resolvePrimaryWorkspace.js +45 -0
- package/dist/cjs/services/validateAql.js +54 -0
- package/dist/cjs/state/actions/index.js +6 -150
- package/dist/cjs/state/actions/useDiscoverActions.js +26 -0
- package/dist/cjs/state/actions/useExecuteAtomicAction.js +139 -0
- package/dist/cjs/ui/assets-modal/AssetsConfigModalWithWrappers.js +26 -0
- package/dist/cjs/ui/assets-modal/index.js +24 -22
- package/dist/cjs/ui/assets-modal/modal/index.js +16 -14
- package/dist/cjs/ui/assets-modal/modal/render-assets-content/index.js +2 -1
- package/dist/cjs/ui/common/modal/count-view-smart-link/{index.js → smart-card-placeholder.js} +3 -12
- package/dist/cjs/ui/common/modal/count-view-smart-link/smart-link.compiled.css +1 -0
- package/dist/cjs/ui/common/modal/count-view-smart-link/smart-link.js +24 -0
- package/dist/cjs/ui/common/modal/datasource-context/DatasourceContext.js +9 -0
- package/dist/cjs/ui/common/modal/datasource-context/{index.js → DatasourceContextProvider.js} +3 -10
- package/dist/cjs/ui/common/modal/datasource-context/useDatasourceContext.js +15 -0
- package/dist/cjs/ui/common/modal/datasource-modal/createDatasourceModal.js +6 -6
- package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/index.js +6 -6
- package/dist/cjs/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +4 -4
- package/dist/cjs/ui/common/modal/insert-button/index.js +6 -6
- package/dist/cjs/ui/common/modal/mode-switcher/DatasourceViewModeDropDown.js +33 -0
- package/dist/cjs/ui/common/modal/mode-switcher/DatasourceViewModeProvider.js +31 -0
- package/dist/cjs/ui/common/modal/mode-switcher/{index.js → ModeSwitcher.js} +3 -25
- package/dist/cjs/ui/common/modal/mode-switcher/useViewModeContext.js +3 -26
- package/dist/cjs/ui/common/modal/popup-select/CustomControl.js +39 -0
- package/dist/cjs/ui/common/modal/popup-select/control.js +3 -35
- package/dist/cjs/ui/common/modal/search-count/AssetsItemCount.js +30 -0
- package/dist/cjs/ui/common/modal/search-count/ItemCountWrapper.js +39 -0
- package/dist/cjs/ui/common/modal/search-count/index.js +11 -60
- package/dist/cjs/ui/confluence-search-modal/ConfluenceSearchConfigModalWithWrappers.js +26 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getCurrentOptionLabel.js +32 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getDropdownLabel.js +21 -0
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +7 -5
- package/dist/cjs/ui/confluence-search-modal/basic-filters/filters/date-range-picker/{utils.js → useInvalidDateRange.js} +1 -39
- package/dist/cjs/ui/confluence-search-modal/index.js +24 -22
- package/dist/cjs/ui/confluence-search-modal/modal/ConfluenceSearchConfigModal.js +35 -0
- package/dist/cjs/ui/confluence-search-modal/modal/{index.js → PlainConfluenceSearchConfigModal.js} +13 -34
- package/dist/cjs/ui/datasource-table-view/DatasourceTableViewWithWrappers.js +26 -0
- package/dist/cjs/ui/datasource-table-view/datasourceTableView.js +11 -10
- package/dist/cjs/ui/datasource-table-view/index.js +21 -21
- package/dist/cjs/ui/issue-like-table/column-picker/concatenated-menu-list.compiled.css +1 -7
- package/dist/cjs/ui/issue-like-table/column-picker/concatenated-menu-list.js +2 -14
- package/dist/cjs/ui/issue-like-table/column-picker/index.js +12 -5
- package/dist/cjs/ui/issue-like-table/column-picker/menu-item.compiled.css +5 -0
- package/dist/cjs/ui/issue-like-table/column-picker/menu-item.js +27 -0
- package/dist/cjs/ui/issue-like-table/draggable-table-heading.js +12 -9
- package/dist/cjs/ui/issue-like-table/edit-type/editType.js +91 -0
- package/dist/cjs/ui/issue-like-table/edit-type/icon/index.js +8 -7
- package/dist/cjs/ui/issue-like-table/edit-type/index.js +2 -97
- package/dist/cjs/ui/issue-like-table/edit-type/isEditTypeSelectable.js +10 -0
- package/dist/cjs/ui/issue-like-table/edit-type/isEditTypeSupported.js +10 -0
- package/dist/cjs/ui/issue-like-table/edit-type/status/index.js +8 -7
- package/dist/cjs/ui/issue-like-table/edit-type/text/index.js +4 -4
- package/dist/cjs/ui/issue-like-table/edit-type/toValueType.js +10 -0
- package/dist/cjs/ui/issue-like-table/edit-type/user/index.js +8 -7
- package/dist/cjs/ui/issue-like-table/get-cleaned-select-props.js +18 -0
- package/dist/cjs/ui/issue-like-table/get-column-action.js +22 -0
- package/dist/cjs/ui/issue-like-table/get-column-min-width.js +18 -0
- package/dist/cjs/ui/issue-like-table/get-field-label-by-id.js +12 -0
- package/dist/cjs/ui/issue-like-table/get-ordered-columns.js +30 -0
- package/dist/cjs/ui/issue-like-table/get-width-css.js +31 -0
- package/dist/cjs/ui/issue-like-table/glyph-placeholder.js +17 -0
- package/dist/cjs/ui/issue-like-table/index.js +3 -785
- package/dist/cjs/ui/issue-like-table/issue-like-data-table-view.js +786 -0
- package/dist/cjs/ui/issue-like-table/render-type/date-range/getFormattedDateRange.js +160 -0
- package/dist/cjs/ui/issue-like-table/render-type/date-range/index.js +2 -155
- package/dist/cjs/ui/issue-like-table/render-type/date-time/getFormattedDate.js +40 -0
- package/dist/cjs/ui/issue-like-table/render-type/date-time/index.js +2 -35
- package/dist/cjs/ui/issue-like-table/render-type/index.js +12 -140
- package/dist/cjs/ui/issue-like-table/render-type/renderType.js +105 -0
- package/dist/cjs/ui/issue-like-table/render-type/richtext/index.js +3 -37
- package/dist/cjs/ui/issue-like-table/render-type/richtext/parseRichText.js +45 -0
- package/dist/cjs/ui/issue-like-table/render-type/stringifyType.js +49 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/get-issue-link-data.js +16 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/get-linked-cell-content.js +28 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/inline-edit.js +10 -41
- package/dist/cjs/ui/issue-like-table/table-cell-content/is-issue-type-column-fn.js +9 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/linked-cell-content-wrapped.js +25 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/new-get-backend-update-value.js +38 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/read-only-cell.js +50 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/table-cell-content-props.js +5 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/table-cell-content.js +151 -0
- package/dist/cjs/ui/issue-like-table/table-cell-content/tooltip-wrapper.js +37 -0
- package/dist/cjs/ui/issue-like-table/table-settings-menu/{index.js → TableSettingsMenu.js} +7 -10
- package/dist/cjs/ui/issue-like-table/table-settings-menu/hasAvailableTableSettings.js +15 -0
- package/dist/cjs/ui/issue-like-table/{custom-icons.js → unwrap-text-icon.js} +1 -24
- package/dist/cjs/ui/issue-like-table/utils.js +2 -76
- package/dist/cjs/ui/issue-like-table/wrap-text-icon.js +22 -0
- package/dist/cjs/ui/jira-issues-modal/JiraIssuesConfigModalWithWrappers.js +26 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/getAssigneeUnassignedFilterOption.js +14 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +9 -14
- package/dist/cjs/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +6 -6
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/checkAndConvertToAbsoluteUrl.js +15 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/getLozengeAppearance.js +13 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isClauseTooComplex.js +3 -9
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isColorName.js +10 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/isNonNullSelectOption.js +9 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToFilterOptions.js +22 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToPageCursor.js +11 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToTotalCount.js +11 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/mapHydrateResponseData.js +32 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/mapNodeToOption.js +66 -0
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/removeFuzzyCharacter.js +13 -0
- package/dist/cjs/ui/jira-issues-modal/index.js +24 -22
- package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +4 -4
- package/dist/cjs/ui/jira-issues-modal/modal/index.js +14 -13
- package/dist/cjs/ui/table-footer/index.js +3 -2
- package/dist/es2019/analytics/index.js +0 -1
- package/dist/es2019/analytics/ufoExperiences/addMetadataToExperience.js +7 -0
- package/dist/es2019/analytics/ufoExperiences/columnPickerCustomExperienceConfig.js +8 -0
- package/dist/es2019/analytics/ufoExperiences/datasourcePageSegmentLoadExperienceConfig.js +8 -0
- package/dist/es2019/analytics/ufoExperiences/failUfoExperience.js +10 -0
- package/dist/es2019/analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience.js +1 -1
- package/dist/es2019/analytics/ufoExperiences/hooks/useDataRenderedUfoExperience.js +3 -1
- package/dist/es2019/analytics/ufoExperiences/inlineEditCustomExperienceConfig.js +8 -0
- package/dist/es2019/analytics/ufoExperiences/startUfoExperience.js +11 -0
- package/dist/es2019/analytics/ufoExperiences/succeedUfoExperience.js +10 -0
- package/dist/es2019/analytics/ufoExperiences/ufoExperiences.js +9 -0
- package/dist/es2019/analytics/wrappers/render-failed/datasourceRenderFailedAnalyticsWrapper.js +1 -1
- package/dist/es2019/contexts/datasource-experience-id/datasource-experience-id-context.js +2 -0
- package/dist/es2019/contexts/datasource-experience-id/datasource-experience-id-provider.js +14 -0
- package/dist/es2019/contexts/datasource-experience-id/use-datasource-experience-id.js +9 -0
- package/dist/es2019/contexts/user-interactions/use-user-interactions.js +15 -0
- package/dist/es2019/contexts/user-interactions/user-interactions-context.js +2 -0
- package/dist/es2019/contexts/user-interactions/user-interactions-provider.js +18 -0
- package/dist/es2019/hooks/logToSentry.js +11 -0
- package/dist/es2019/hooks/useAssetsClient.js +4 -1
- package/dist/es2019/hooks/useDatasourceTableState.js +2 -2
- package/dist/es2019/hooks/useErrorLogger.js +1 -11
- package/dist/es2019/hooks/useObjectSchemas.js +1 -1
- package/dist/es2019/hooks/useValidateAqlText.js +1 -1
- package/dist/es2019/services/FetchError.js +7 -0
- package/dist/es2019/services/PermissionError.js +6 -0
- package/dist/es2019/services/__clearMetaCacheForTests.js +8 -0
- package/dist/es2019/services/cmdbService.js +1 -106
- package/dist/es2019/services/fetchObjectSchema.js +24 -0
- package/dist/es2019/services/fetchObjectSchemas.js +28 -0
- package/dist/es2019/services/getMeta.js +1 -8
- package/dist/es2019/services/getStatusCodeGroup.js +21 -0
- package/dist/es2019/services/getWorkspaceId.js +29 -0
- package/dist/es2019/services/mapFetchErrors.js +7 -0
- package/dist/es2019/services/resolvePrimaryWorkspace.js +16 -0
- package/dist/es2019/services/validateAql.js +27 -0
- package/dist/es2019/state/actions/index.js +2 -152
- package/dist/es2019/state/actions/useDiscoverActions.js +21 -0
- package/dist/es2019/state/actions/useExecuteAtomicAction.js +134 -0
- package/dist/es2019/ui/assets-modal/AssetsConfigModalWithWrappers.js +11 -0
- package/dist/es2019/ui/assets-modal/index.js +13 -12
- package/dist/es2019/ui/assets-modal/modal/index.js +8 -5
- package/dist/es2019/ui/assets-modal/modal/render-assets-content/index.js +2 -1
- package/dist/es2019/ui/common/modal/count-view-smart-link/{index.js → smart-card-placeholder.js} +3 -11
- package/dist/es2019/ui/common/modal/count-view-smart-link/smart-link.compiled.css +1 -0
- package/dist/es2019/ui/common/modal/count-view-smart-link/smart-link.js +16 -0
- package/dist/es2019/ui/common/modal/datasource-context/DatasourceContext.js +2 -0
- package/dist/es2019/ui/common/modal/datasource-context/{index.js → DatasourceContextProvider.js} +2 -9
- package/dist/es2019/ui/common/modal/datasource-context/useDatasourceContext.js +9 -0
- package/dist/es2019/ui/common/modal/datasource-modal/createDatasourceModal.js +4 -4
- package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/index.js +3 -3
- package/dist/es2019/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +2 -2
- package/dist/es2019/ui/common/modal/insert-button/index.js +3 -3
- package/dist/es2019/ui/common/modal/mode-switcher/DatasourceViewModeDropDown.js +26 -0
- package/dist/es2019/ui/common/modal/mode-switcher/DatasourceViewModeProvider.js +17 -0
- package/dist/es2019/ui/common/modal/mode-switcher/{index.js → ModeSwitcher.js} +2 -25
- package/dist/es2019/ui/common/modal/mode-switcher/useViewModeContext.js +2 -17
- package/dist/es2019/ui/common/modal/popup-select/CustomControl.js +27 -0
- package/dist/es2019/ui/common/modal/popup-select/control.js +1 -27
- package/dist/es2019/ui/common/modal/search-count/AssetsItemCount.js +24 -0
- package/dist/es2019/ui/common/modal/search-count/ItemCountWrapper.js +30 -0
- package/dist/es2019/ui/common/modal/search-count/index.js +2 -50
- package/dist/es2019/ui/confluence-search-modal/ConfluenceSearchConfigModalWithWrappers.js +11 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getCurrentOptionLabel.js +26 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getDropdownLabel.js +13 -0
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +4 -2
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/useInvalidDateRange.js +23 -0
- package/dist/es2019/ui/confluence-search-modal/index.js +13 -12
- package/dist/es2019/ui/confluence-search-modal/modal/ConfluenceSearchConfigModal.js +24 -0
- package/dist/es2019/ui/confluence-search-modal/modal/{index.js → PlainConfluenceSearchConfigModal.js} +7 -27
- package/dist/es2019/ui/datasource-table-view/DatasourceTableViewWithWrappers.js +11 -0
- package/dist/es2019/ui/datasource-table-view/datasourceTableView.js +7 -6
- package/dist/es2019/ui/datasource-table-view/index.js +13 -12
- package/dist/es2019/ui/issue-like-table/column-picker/concatenated-menu-list.compiled.css +1 -7
- package/dist/es2019/ui/issue-like-table/column-picker/concatenated-menu-list.js +0 -12
- package/dist/es2019/ui/issue-like-table/column-picker/index.js +10 -3
- package/dist/es2019/ui/issue-like-table/column-picker/menu-item.compiled.css +5 -0
- package/dist/es2019/ui/issue-like-table/column-picker/menu-item.js +17 -0
- package/dist/es2019/ui/issue-like-table/draggable-table-heading.js +7 -4
- package/dist/es2019/ui/issue-like-table/edit-type/editType.js +76 -0
- package/dist/es2019/ui/issue-like-table/edit-type/icon/index.js +4 -3
- package/dist/es2019/ui/issue-like-table/edit-type/index.js +1 -88
- package/dist/es2019/ui/issue-like-table/edit-type/isEditTypeSelectable.js +4 -0
- package/dist/es2019/ui/issue-like-table/edit-type/isEditTypeSupported.js +4 -0
- package/dist/es2019/ui/issue-like-table/edit-type/status/index.js +4 -3
- package/dist/es2019/ui/issue-like-table/edit-type/text/index.js +2 -2
- package/dist/es2019/ui/issue-like-table/edit-type/toValueType.js +4 -0
- package/dist/es2019/ui/issue-like-table/edit-type/user/index.js +4 -3
- package/dist/es2019/ui/issue-like-table/get-cleaned-select-props.js +11 -0
- package/dist/es2019/ui/issue-like-table/get-column-action.js +17 -0
- package/dist/es2019/ui/issue-like-table/get-column-min-width.js +12 -0
- package/dist/es2019/ui/issue-like-table/get-field-label-by-id.js +4 -0
- package/dist/es2019/ui/issue-like-table/get-ordered-columns.js +18 -0
- package/dist/es2019/ui/issue-like-table/get-width-css.js +26 -0
- package/dist/es2019/ui/issue-like-table/glyph-placeholder.js +8 -0
- package/dist/es2019/ui/issue-like-table/index.js +3 -710
- package/dist/es2019/ui/issue-like-table/issue-like-data-table-view.js +708 -0
- package/dist/es2019/ui/issue-like-table/render-type/date-range/getFormattedDateRange.js +156 -0
- package/dist/es2019/ui/issue-like-table/render-type/date-range/index.js +1 -156
- package/dist/es2019/ui/issue-like-table/render-type/date-time/getFormattedDate.js +31 -0
- package/dist/es2019/ui/issue-like-table/render-type/date-time/index.js +1 -31
- package/dist/es2019/ui/issue-like-table/render-type/index.js +10 -115
- package/dist/es2019/ui/issue-like-table/render-type/renderType.js +74 -0
- package/dist/es2019/ui/issue-like-table/render-type/richtext/index.js +1 -35
- package/dist/es2019/ui/issue-like-table/render-type/richtext/parseRichText.js +40 -0
- package/dist/es2019/ui/issue-like-table/render-type/stringifyType.js +44 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/get-issue-link-data.js +10 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/get-linked-cell-content.js +23 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/inline-edit.js +5 -42
- package/dist/es2019/ui/issue-like-table/table-cell-content/is-issue-type-column-fn.js +3 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/linked-cell-content-wrapped.js +20 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/new-get-backend-update-value.js +38 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/read-only-cell.js +43 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/table-cell-content.js +150 -0
- package/dist/es2019/ui/issue-like-table/table-cell-content/tooltip-wrapper.js +28 -0
- package/dist/es2019/ui/issue-like-table/table-settings-menu/{index.js → TableSettingsMenu.js} +3 -5
- package/dist/es2019/ui/issue-like-table/table-settings-menu/hasAvailableTableSettings.js +8 -0
- package/dist/es2019/ui/issue-like-table/{custom-icons.js → unwrap-text-icon.js} +0 -19
- package/dist/es2019/ui/issue-like-table/utils.js +1 -73
- package/dist/es2019/ui/issue-like-table/wrap-text-icon.js +13 -0
- package/dist/es2019/ui/jira-issues-modal/JiraIssuesConfigModalWithWrappers.js +11 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/getAssigneeUnassignedFilterOption.js +6 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +4 -7
- package/dist/es2019/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +3 -3
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/checkAndConvertToAbsoluteUrl.js +9 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/getLozengeAppearance.js +7 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isClauseTooComplex.js +1 -7
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isColorName.js +4 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/isNonNullSelectOption.js +3 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToFilterOptions.js +12 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToPageCursor.js +6 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToTotalCount.js +6 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/mapHydrateResponseData.js +26 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/mapNodeToOption.js +62 -0
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/removeFuzzyCharacter.js +7 -0
- package/dist/es2019/ui/jira-issues-modal/index.js +13 -12
- package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +2 -2
- package/dist/es2019/ui/jira-issues-modal/modal/index.js +8 -6
- package/dist/es2019/ui/table-footer/index.js +2 -1
- package/dist/esm/analytics/index.js +0 -1
- package/dist/esm/analytics/ufoExperiences/addMetadataToExperience.js +6 -0
- package/dist/esm/analytics/ufoExperiences/columnPickerCustomExperienceConfig.js +8 -0
- package/dist/esm/analytics/ufoExperiences/datasourcePageSegmentLoadExperienceConfig.js +8 -0
- package/dist/esm/analytics/ufoExperiences/failUfoExperience.js +9 -0
- package/dist/esm/analytics/ufoExperiences/hooks/useColumnPickerRenderedFailedUfoExperience.js +1 -1
- package/dist/esm/analytics/ufoExperiences/hooks/useDataRenderedUfoExperience.js +3 -1
- package/dist/esm/analytics/ufoExperiences/inlineEditCustomExperienceConfig.js +8 -0
- package/dist/esm/analytics/ufoExperiences/startUfoExperience.js +10 -0
- package/dist/esm/analytics/ufoExperiences/succeedUfoExperience.js +9 -0
- package/dist/esm/analytics/ufoExperiences/ufoExperiences.js +9 -0
- package/dist/esm/analytics/wrappers/render-failed/datasourceRenderFailedAnalyticsWrapper.js +1 -1
- package/dist/esm/contexts/datasource-experience-id/datasource-experience-id-context.js +2 -0
- package/dist/esm/contexts/datasource-experience-id/datasource-experience-id-provider.js +15 -0
- package/dist/esm/contexts/datasource-experience-id/use-datasource-experience-id.js +9 -0
- package/dist/esm/contexts/user-interactions/use-user-interactions.js +15 -0
- package/dist/esm/contexts/user-interactions/user-interactions-context.js +2 -0
- package/dist/esm/contexts/user-interactions/user-interactions-provider.js +19 -0
- package/dist/esm/hooks/logToSentry.js +14 -0
- package/dist/esm/hooks/useAssetsClient.js +4 -1
- package/dist/esm/hooks/useDatasourceTableState.js +2 -2
- package/dist/esm/hooks/useErrorLogger.js +1 -14
- package/dist/esm/hooks/useObjectSchemas.js +1 -1
- package/dist/esm/hooks/useValidateAqlText.js +1 -1
- package/dist/esm/services/FetchError.js +20 -0
- package/dist/esm/services/{cmdbService.utils.js → PermissionError.js} +0 -36
- package/dist/esm/services/__clearMetaCacheForTests.js +8 -0
- package/dist/esm/services/cmdbService.js +1 -202
- package/dist/esm/services/fetchObjectSchema.js +44 -0
- package/dist/esm/services/fetchObjectSchemas.js +48 -0
- package/dist/esm/services/getMeta.js +1 -8
- package/dist/esm/services/getStatusCodeGroup.js +19 -0
- package/dist/esm/services/getWorkspaceId.js +51 -0
- package/dist/esm/services/mapFetchErrors.js +7 -0
- package/dist/esm/services/resolvePrimaryWorkspace.js +38 -0
- package/dist/esm/services/validateAql.js +47 -0
- package/dist/esm/state/actions/index.js +6 -150
- package/dist/esm/state/actions/useDiscoverActions.js +20 -0
- package/dist/esm/state/actions/useExecuteAtomicAction.js +132 -0
- package/dist/esm/ui/assets-modal/AssetsConfigModalWithWrappers.js +15 -0
- package/dist/esm/ui/assets-modal/index.js +13 -16
- package/dist/esm/ui/assets-modal/modal/index.js +8 -5
- package/dist/esm/ui/assets-modal/modal/render-assets-content/index.js +2 -1
- package/dist/esm/ui/common/modal/count-view-smart-link/{index.js → smart-card-placeholder.js} +2 -11
- package/dist/esm/ui/common/modal/count-view-smart-link/smart-link.compiled.css +1 -0
- package/dist/esm/ui/common/modal/count-view-smart-link/smart-link.js +17 -0
- package/dist/esm/ui/common/modal/datasource-context/DatasourceContext.js +2 -0
- package/dist/esm/ui/common/modal/datasource-context/{index.js → DatasourceContextProvider.js} +2 -9
- package/dist/esm/ui/common/modal/datasource-context/DatasourceContextValue.js +1 -0
- package/dist/esm/ui/common/modal/datasource-context/useDatasourceContext.js +9 -0
- package/dist/esm/ui/common/modal/datasource-modal/createDatasourceModal.js +4 -4
- package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/index.js +3 -3
- package/dist/esm/ui/common/modal/datasources-table-in-modal-preview/use-column-visibility/index.js +2 -2
- package/dist/esm/ui/common/modal/insert-button/index.js +3 -3
- package/dist/esm/ui/common/modal/mode-switcher/DatasourceViewModeDropDown.js +25 -0
- package/dist/esm/ui/common/modal/mode-switcher/DatasourceViewModeProvider.js +22 -0
- package/dist/esm/ui/common/modal/mode-switcher/{index.js → ModeSwitcher.js} +2 -24
- package/dist/esm/ui/common/modal/mode-switcher/useViewModeContext.js +2 -22
- package/dist/esm/ui/common/modal/popup-select/CustomControl.js +32 -0
- package/dist/esm/ui/common/modal/popup-select/control.js +1 -32
- package/dist/esm/ui/common/modal/search-count/AssetsItemCount.js +23 -0
- package/dist/esm/ui/common/modal/search-count/ItemCountWrapper.js +32 -0
- package/dist/esm/ui/common/modal/search-count/index.js +8 -57
- package/dist/esm/ui/confluence-search-modal/ConfluenceSearchConfigModalWithWrappers.js +15 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getCurrentOptionLabel.js +26 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getDropdownLabel.js +15 -0
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/index.js +4 -2
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/useInvalidDateRange.js +23 -0
- package/dist/esm/ui/confluence-search-modal/index.js +13 -16
- package/dist/esm/ui/confluence-search-modal/modal/ConfluenceSearchConfigModal.js +28 -0
- package/dist/esm/ui/confluence-search-modal/modal/{index.js → PlainConfluenceSearchConfigModal.js} +7 -28
- package/dist/esm/ui/datasource-table-view/DatasourceTableViewWithWrappers.js +15 -0
- package/dist/esm/ui/datasource-table-view/datasourceTableView.js +7 -6
- package/dist/esm/ui/datasource-table-view/index.js +13 -16
- package/dist/esm/ui/issue-like-table/column-picker/concatenated-menu-list.compiled.css +1 -7
- package/dist/esm/ui/issue-like-table/column-picker/concatenated-menu-list.js +1 -13
- package/dist/esm/ui/issue-like-table/column-picker/index.js +10 -3
- package/dist/esm/ui/issue-like-table/column-picker/menu-item.compiled.css +5 -0
- package/dist/esm/ui/issue-like-table/column-picker/menu-item.js +18 -0
- package/dist/esm/ui/issue-like-table/draggable-table-heading.js +7 -4
- package/dist/esm/ui/issue-like-table/edit-type/editType.js +84 -0
- package/dist/esm/ui/issue-like-table/edit-type/icon/index.js +4 -3
- package/dist/esm/ui/issue-like-table/edit-type/index.js +1 -96
- package/dist/esm/ui/issue-like-table/edit-type/isEditTypeSelectable.js +4 -0
- package/dist/esm/ui/issue-like-table/edit-type/isEditTypeSupported.js +4 -0
- package/dist/esm/ui/issue-like-table/edit-type/status/index.js +4 -3
- package/dist/esm/ui/issue-like-table/edit-type/text/index.js +2 -2
- package/dist/esm/ui/issue-like-table/edit-type/toValueType.js +4 -0
- package/dist/esm/ui/issue-like-table/edit-type/user/index.js +4 -3
- package/dist/esm/ui/issue-like-table/get-cleaned-select-props.js +11 -0
- package/dist/esm/ui/issue-like-table/get-column-action.js +17 -0
- package/dist/esm/ui/issue-like-table/get-column-min-width.js +12 -0
- package/dist/esm/ui/issue-like-table/get-field-label-by-id.js +6 -0
- package/dist/esm/ui/issue-like-table/get-ordered-columns.js +23 -0
- package/dist/esm/ui/issue-like-table/get-width-css.js +25 -0
- package/dist/esm/ui/issue-like-table/glyph-placeholder.js +10 -0
- package/dist/esm/ui/issue-like-table/index.js +3 -785
- package/dist/esm/ui/issue-like-table/issue-like-data-table-view.js +779 -0
- package/dist/esm/ui/issue-like-table/render-type/date-range/getFormattedDateRange.js +153 -0
- package/dist/esm/ui/issue-like-table/render-type/date-range/index.js +1 -153
- package/dist/esm/ui/issue-like-table/render-type/date-time/getFormattedDate.js +33 -0
- package/dist/esm/ui/issue-like-table/render-type/date-time/index.js +1 -33
- package/dist/esm/ui/issue-like-table/render-type/index.js +10 -138
- package/dist/esm/ui/issue-like-table/render-type/renderType.js +98 -0
- package/dist/esm/ui/issue-like-table/render-type/richtext/index.js +1 -35
- package/dist/esm/ui/issue-like-table/render-type/richtext/parseRichText.js +40 -0
- package/dist/esm/ui/issue-like-table/render-type/stringifyType.js +43 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/get-issue-link-data.js +10 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/get-linked-cell-content.js +22 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/inline-edit.js +5 -36
- package/dist/esm/ui/issue-like-table/table-cell-content/is-issue-type-column-fn.js +3 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/linked-cell-content-wrapped.js +18 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/new-get-backend-update-value.js +32 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/read-only-cell.js +43 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/table-cell-content-props.js +1 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/table-cell-content.js +144 -0
- package/dist/esm/ui/issue-like-table/table-cell-content/tooltip-wrapper.js +30 -0
- package/dist/esm/ui/issue-like-table/table-settings-menu/{index.js → TableSettingsMenu.js} +5 -8
- package/dist/esm/ui/issue-like-table/table-settings-menu/hasAvailableTableSettings.js +9 -0
- package/dist/esm/ui/issue-like-table/{custom-icons.js → unwrap-text-icon.js} +0 -23
- package/dist/esm/ui/issue-like-table/utils.js +1 -74
- package/dist/esm/ui/issue-like-table/wrap-text-icon.js +15 -0
- package/dist/esm/ui/jira-issues-modal/JiraIssuesConfigModalWithWrappers.js +15 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/getAssigneeUnassignedFilterOption.js +8 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.js +4 -9
- package/dist/esm/ui/jira-issues-modal/basic-filters/hooks/useHydrateJqlQuery.js +3 -3
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/checkAndConvertToAbsoluteUrl.js +9 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/getLozengeAppearance.js +7 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isClauseTooComplex.js +1 -7
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isColorName.js +4 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/isNonNullSelectOption.js +3 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToFilterOptions.js +15 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToPageCursor.js +5 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToTotalCount.js +5 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/mapHydrateResponseData.js +26 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/mapNodeToOption.js +59 -0
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/removeFuzzyCharacter.js +7 -0
- package/dist/esm/ui/jira-issues-modal/index.js +13 -16
- package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +2 -2
- package/dist/esm/ui/jira-issues-modal/modal/index.js +8 -6
- package/dist/esm/ui/table-footer/index.js +2 -1
- package/dist/types/analytics/index.d.ts +0 -1
- package/dist/types/analytics/ufoExperiences/addMetadataToExperience.d.ts +2 -0
- package/dist/types/analytics/ufoExperiences/columnPickerCustomExperienceConfig.d.ts +1 -0
- package/dist/types/analytics/ufoExperiences/datasourcePageSegmentLoadExperienceConfig.d.ts +1 -0
- package/dist/types/analytics/ufoExperiences/failUfoExperience.d.ts +2 -0
- package/dist/types/analytics/ufoExperiences/inlineEditCustomExperienceConfig.d.ts +1 -0
- package/dist/types/analytics/ufoExperiences/startUfoExperience.d.ts +2 -0
- package/dist/types/analytics/ufoExperiences/succeedUfoExperience.d.ts +2 -0
- package/dist/types/analytics/ufoExperiences/ufoExperiences.d.ts +3 -0
- package/dist/types/contexts/datasource-experience-id/datasource-experience-id-context.d.ts +2 -0
- package/dist/types/contexts/datasource-experience-id/datasource-experience-id-provider.d.ts +2 -0
- package/dist/types/contexts/datasource-experience-id/use-datasource-experience-id.d.ts +1 -0
- package/dist/types/contexts/user-interactions/types.d.ts +5 -0
- package/dist/types/contexts/user-interactions/use-user-interactions.d.ts +8 -0
- package/dist/types/contexts/user-interactions/user-interactions-context.d.ts +3 -0
- package/dist/types/contexts/user-interactions/user-interactions-provider.d.ts +2 -0
- package/dist/types/hooks/logToSentry.d.ts +9 -0
- package/dist/types/hooks/useErrorLogger.d.ts +0 -8
- package/dist/types/services/FetchError.d.ts +4 -0
- package/dist/types/services/PermissionError.d.ts +3 -0
- package/dist/types/services/__clearMetaCacheForTests.d.ts +4 -0
- package/dist/types/services/cmdbService.d.ts +1 -12
- package/dist/types/services/fetchObjectSchema.d.ts +3 -0
- package/dist/types/services/fetchObjectSchemas.d.ts +3 -0
- package/dist/types/services/getMeta.d.ts +4 -3
- package/dist/types/services/getStatusCodeGroup.d.ts +1 -0
- package/dist/types/services/getWorkspaceId.d.ts +2 -0
- package/dist/types/services/mapFetchErrors.d.ts +1 -0
- package/dist/types/services/resolvePrimaryWorkspace.d.ts +3 -0
- package/dist/types/services/validateAql.d.ts +5 -0
- package/dist/types/state/actions/index.d.ts +2 -28
- package/dist/types/state/actions/useDiscoverActions.d.ts +13 -0
- package/dist/types/state/actions/useExecuteAtomicAction.d.ts +21 -0
- package/dist/types/ui/assets-modal/AssetsConfigModalWithWrappers.d.ts +3 -0
- package/dist/types/ui/assets-modal/index.d.ts +9 -3
- package/dist/types/ui/assets-modal/modal/render-assets-content/index.d.ts +4 -0
- package/dist/types/ui/common/modal/count-view-smart-link/{index.d.ts → smart-card-placeholder.d.ts} +0 -3
- package/dist/types/ui/common/modal/count-view-smart-link/smart-link.d.ts +4 -0
- package/dist/types/ui/common/modal/datasource-context/DatasourceContext.d.ts +3 -0
- package/dist/types/ui/common/modal/datasource-context/DatasourceContextProvider.d.ts +4 -0
- package/dist/types/ui/common/modal/datasource-context/DatasourceContextProviderProps.d.ts +14 -0
- package/dist/types/ui/common/modal/datasource-context/DatasourceContextValue.d.ts +13 -0
- package/dist/types/ui/common/modal/datasource-context/useDatasourceContext.d.ts +3 -0
- package/dist/types/ui/common/modal/mode-switcher/DatasourceViewModeDropDown.d.ts +5 -0
- package/dist/types/ui/common/modal/mode-switcher/DatasourceViewModeProvider.d.ts +7 -0
- package/dist/types/ui/common/modal/mode-switcher/{index.d.ts → ModeSwitcher.d.ts} +5 -2
- package/dist/types/ui/common/modal/mode-switcher/useViewModeContext.d.ts +1 -5
- package/dist/types/ui/common/modal/popup-select/CustomControl.d.ts +4 -0
- package/dist/types/ui/common/modal/popup-select/control.d.ts +1 -4
- package/dist/types/ui/common/modal/search-count/AssetsItemCount.d.ts +3 -0
- package/dist/types/ui/common/modal/search-count/ItemCountWrapper.d.ts +5 -0
- package/dist/types/ui/common/modal/search-count/index.d.ts +1 -2
- package/dist/types/ui/confluence-search-modal/ConfluenceSearchConfigModalWithWrappers.d.ts +3 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/{utils.d.ts → getCurrentOptionLabel.d.ts} +0 -3
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/getDropdownLabel.d.ts +3 -0
- package/dist/types/ui/confluence-search-modal/basic-filters/filters/date-range-picker/useInvalidDateRange.d.ts +2 -0
- package/dist/types/ui/confluence-search-modal/index.d.ts +9 -3
- package/dist/types/ui/confluence-search-modal/modal/ConfluenceSearchConfigModal.d.ts +3 -0
- package/dist/types/ui/confluence-search-modal/modal/PlainConfluenceSearchConfigModal.d.ts +3 -0
- package/dist/types/ui/datasource-table-view/DatasourceTableViewWithWrappers.d.ts +3 -0
- package/dist/types/ui/datasource-table-view/datasource-column-sort.d.ts +0 -1
- package/dist/types/ui/datasource-table-view/index.d.ts +9 -3
- package/dist/types/ui/issue-like-table/column-picker/concatenated-menu-list.d.ts +5 -2
- package/dist/types/ui/issue-like-table/column-picker/menu-item.d.ts +6 -0
- package/dist/types/ui/issue-like-table/edit-type/editType.d.ts +11 -0
- package/dist/types/ui/issue-like-table/edit-type/index.d.ts +1 -15
- package/dist/types/ui/issue-like-table/edit-type/isEditTypeSelectable.d.ts +2 -0
- package/dist/types/ui/issue-like-table/edit-type/isEditTypeSupported.d.ts +2 -0
- package/dist/types/ui/issue-like-table/edit-type/toValueType.d.ts +2 -0
- package/dist/types/ui/issue-like-table/get-cleaned-select-props.d.ts +17 -0
- package/dist/types/ui/issue-like-table/get-column-action.d.ts +6 -0
- package/dist/types/ui/issue-like-table/get-column-min-width.d.ts +1 -0
- package/dist/types/ui/issue-like-table/get-field-label-by-id.d.ts +4 -0
- package/dist/types/ui/issue-like-table/get-ordered-columns.d.ts +6 -0
- package/dist/types/ui/issue-like-table/get-width-css.d.ts +11 -0
- package/dist/types/ui/issue-like-table/{custom-icons.d.ts → glyph-placeholder.d.ts} +0 -2
- package/dist/types/ui/issue-like-table/index.d.ts +4 -4
- package/dist/types/ui/issue-like-table/issue-like-data-table-view.d.ts +6 -0
- package/dist/types/ui/issue-like-table/render-type/date-range/getFormattedDateRange.d.ts +2 -0
- package/dist/types/ui/issue-like-table/render-type/date-range/index.d.ts +0 -2
- package/dist/types/ui/issue-like-table/render-type/date-time/getFormattedDate.d.ts +2 -0
- package/dist/types/ui/issue-like-table/render-type/date-time/index.d.ts +0 -2
- package/dist/types/ui/issue-like-table/render-type/index.d.ts +8 -5
- package/dist/types/ui/issue-like-table/render-type/renderType.d.ts +2 -0
- package/dist/types/ui/issue-like-table/render-type/richtext/index.d.ts +4 -1
- package/dist/types/ui/issue-like-table/render-type/richtext/parseRichText.d.ts +6 -0
- package/dist/types/ui/issue-like-table/render-type/stringifyType.d.ts +3 -0
- package/dist/types/ui/issue-like-table/table-cell-content/get-issue-link-data.d.ts +7 -0
- package/dist/types/ui/issue-like-table/table-cell-content/get-linked-cell-content.d.ts +7 -0
- package/dist/types/ui/issue-like-table/table-cell-content/inline-edit.d.ts +0 -5
- package/dist/types/ui/issue-like-table/table-cell-content/is-issue-type-column-fn.d.ts +1 -0
- package/dist/types/ui/issue-like-table/table-cell-content/linked-cell-content-wrapped.d.ts +6 -0
- package/dist/types/ui/issue-like-table/table-cell-content/new-get-backend-update-value.d.ts +6 -0
- package/dist/types/ui/issue-like-table/table-cell-content/read-only-cell.d.ts +3 -0
- package/dist/types/ui/issue-like-table/table-cell-content/{index.d.ts → table-cell-content-props.d.ts} +1 -5
- package/dist/types/ui/issue-like-table/table-cell-content/table-cell-content.d.ts +2 -0
- package/dist/types/ui/issue-like-table/table-cell-content/tooltip-wrapper.d.ts +1 -0
- package/dist/types/ui/issue-like-table/table-settings-menu/{index.d.ts → TableSettingsMenu.d.ts} +5 -2
- package/dist/types/ui/issue-like-table/table-settings-menu/hasAvailableTableSettings.d.ts +6 -0
- package/dist/types/ui/issue-like-table/unwrap-text-icon.d.ts +2 -0
- package/dist/types/ui/issue-like-table/utils.d.ts +0 -38
- package/dist/types/ui/issue-like-table/wrap-text-icon.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/JiraIssuesConfigModalWithWrappers.d.ts +3 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/hooks/getAssigneeUnassignedFilterOption.d.ts +3 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/hooks/useFilterOptions.d.ts +1 -3
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/checkAndConvertToAbsoluteUrl.d.ts +1 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/getLozengeAppearance.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/isClauseTooComplex.d.ts +0 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/isColorName.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/isNonNullSelectOption.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToFilterOptions.d.ts +5 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToPageCursor.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/mapFieldValuesToTotalCount.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/mapHydrateResponseData.d.ts +2 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/mapNodeToOption.d.ts +5 -0
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/removeFuzzyCharacter.d.ts +1 -0
- package/dist/types/ui/jira-issues-modal/index.d.ts +9 -3
- package/dist/types/ui/jira-issues-modal/jira-search-container/index.d.ts +4 -0
- package/dist/types/ui/table-footer/index.d.ts +4 -0
- package/elements/package.json +4 -4
- package/elements/render-type/package.json +4 -4
- package/examples-helpers/buildIssueLikeTable.tsx +3 -2
- package/examples-helpers/buildIssueLikeTableLoadingError.tsx +1 -1
- package/examples-helpers/buildJiraIssuesTable.tsx +1 -1
- package/jira-issues-config-modal-with-wrappers/package.json +10 -0
- package/jira-issues-modal/package.json +4 -4
- package/jira-issues-modal/types/package.json +4 -4
- package/package.json +8 -36
- package/types/package.json +4 -4
- package/ui/issue-like-table/render-type/render-type/package.json +10 -0
- package/ui/issue-like-table/render-type/stringify-type/package.json +10 -0
- package/utils/schema/package.json +4 -4
- package/dist/cjs/analytics/ufoExperiences/index.js +0 -64
- package/dist/cjs/elements.js +0 -12
- package/dist/cjs/entry-points/analytics-render-failed.js +0 -12
- package/dist/cjs/entry-points/assets-modal.js +0 -20
- package/dist/cjs/entry-points/confluence-search-modal.js +0 -20
- package/dist/cjs/entry-points/datasource-table-view.js +0 -13
- package/dist/cjs/entry-points/elements-render-type.js +0 -12
- package/dist/cjs/entry-points/jira-issues-modal.js +0 -20
- package/dist/cjs/entry-points/types.js +0 -1
- package/dist/cjs/entry-points/utils-schema.js +0 -12
- package/dist/cjs/ui/issue-like-table/table-cell-content/index.js +0 -259
- package/dist/cjs/ui/jira-issues-modal/basic-filters/index.js +0 -13
- package/dist/cjs/ui/jira-issues-modal/basic-filters/utils/transformers.js +0 -132
- package/dist/es2019/analytics/ufoExperiences/index.js +0 -62
- package/dist/es2019/contexts/datasource-experience-id/index.js +0 -22
- package/dist/es2019/contexts/user-interactions/index.js +0 -33
- package/dist/es2019/elements.js +0 -2
- package/dist/es2019/entry-points/analytics-render-failed.js +0 -1
- package/dist/es2019/entry-points/assets-modal.js +0 -1
- package/dist/es2019/entry-points/confluence-search-modal.js +0 -1
- package/dist/es2019/entry-points/datasource-table-view.js +0 -1
- package/dist/es2019/entry-points/elements-render-type.js +0 -1
- package/dist/es2019/entry-points/jira-issues-modal.js +0 -1
- package/dist/es2019/entry-points/types.js +0 -0
- package/dist/es2019/entry-points/utils-schema.js +0 -1
- package/dist/es2019/services/cmdbService.utils.js +0 -39
- package/dist/es2019/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.js +0 -59
- package/dist/es2019/ui/issue-like-table/table-cell-content/index.js +0 -259
- package/dist/es2019/ui/jira-issues-modal/basic-filters/index.js +0 -1
- package/dist/es2019/ui/jira-issues-modal/basic-filters/utils/transformers.js +0 -127
- package/dist/esm/analytics/ufoExperiences/index.js +0 -58
- package/dist/esm/contexts/datasource-experience-id/index.js +0 -23
- package/dist/esm/contexts/user-interactions/index.js +0 -34
- package/dist/esm/elements.js +0 -2
- package/dist/esm/entry-points/analytics-render-failed.js +0 -1
- package/dist/esm/entry-points/assets-modal.js +0 -1
- package/dist/esm/entry-points/confluence-search-modal.js +0 -1
- package/dist/esm/entry-points/datasource-table-view.js +0 -1
- package/dist/esm/entry-points/elements-render-type.js +0 -1
- package/dist/esm/entry-points/jira-issues-modal.js +0 -1
- package/dist/esm/entry-points/types.js +0 -0
- package/dist/esm/entry-points/utils-schema.js +0 -1
- package/dist/esm/ui/confluence-search-modal/basic-filters/filters/date-range-picker/utils.js +0 -61
- package/dist/esm/ui/issue-like-table/table-cell-content/index.js +0 -252
- package/dist/esm/ui/jira-issues-modal/basic-filters/index.js +0 -1
- package/dist/esm/ui/jira-issues-modal/basic-filters/utils/transformers.js +0 -122
- package/dist/types/analytics/ufoExperiences/index.d.ts +0 -5
- package/dist/types/contexts/datasource-experience-id/index.d.ts +0 -4
- package/dist/types/contexts/user-interactions/index.d.ts +0 -15
- package/dist/types/elements.d.ts +0 -2
- package/dist/types/entry-points/analytics-render-failed.d.ts +0 -1
- package/dist/types/entry-points/assets-modal-types.d.ts +0 -1
- package/dist/types/entry-points/assets-modal.d.ts +0 -1
- package/dist/types/entry-points/confluence-search-modal-types.d.ts +0 -1
- package/dist/types/entry-points/confluence-search-modal.d.ts +0 -1
- package/dist/types/entry-points/datasource-table-view.d.ts +0 -1
- package/dist/types/entry-points/elements-render-type.d.ts +0 -1
- package/dist/types/entry-points/jira-issues-modal-types.d.ts +0 -1
- package/dist/types/entry-points/jira-issues-modal.d.ts +0 -1
- package/dist/types/entry-points/types.d.ts +0 -1
- package/dist/types/entry-points/utils-schema.d.ts +0 -1
- package/dist/types/services/cmdbService.utils.d.ts +0 -9
- package/dist/types/ui/common/modal/datasource-context/index.d.ts +0 -27
- package/dist/types/ui/confluence-search-modal/modal/index.d.ts +0 -4
- package/dist/types/ui/jira-issues-modal/basic-filters/index.d.ts +0 -1
- package/dist/types/ui/jira-issues-modal/basic-filters/utils/transformers.d.ts +0 -8
- /package/dist/cjs/{entry-points/assets-modal-types.js → contexts/user-interactions/types.js} +0 -0
- /package/dist/cjs/ui/common/modal/count-view-smart-link/{index.compiled.css → smart-card-placeholder.compiled.css} +0 -0
- /package/dist/cjs/{entry-points/confluence-search-modal-types.js → ui/common/modal/datasource-context/DatasourceContextProviderProps.js} +0 -0
- /package/dist/cjs/{entry-points/jira-issues-modal-types.js → ui/common/modal/datasource-context/DatasourceContextValue.js} +0 -0
- /package/dist/cjs/ui/common/modal/mode-switcher/{index.compiled.css → ModeSwitcher.compiled.css} +0 -0
- /package/dist/cjs/ui/common/modal/popup-select/{control.compiled.css → CustomControl.compiled.css} +0 -0
- /package/dist/cjs/ui/common/modal/search-count/{index.compiled.css → ItemCountWrapper.compiled.css} +0 -0
- /package/dist/cjs/ui/confluence-search-modal/modal/{index.compiled.css → PlainConfluenceSearchConfigModal.compiled.css} +0 -0
- /package/dist/cjs/ui/issue-like-table/{index.compiled.css → issue-like-data-table-view.compiled.css} +0 -0
- /package/dist/cjs/ui/issue-like-table/table-cell-content/{index.compiled.css → table-cell-content.compiled.css} +0 -0
- /package/dist/cjs/ui/issue-like-table/table-settings-menu/{index.compiled.css → TableSettingsMenu.compiled.css} +0 -0
- /package/dist/es2019/{entry-points/assets-modal-types.js → contexts/user-interactions/types.js} +0 -0
- /package/dist/es2019/ui/common/modal/count-view-smart-link/{index.compiled.css → smart-card-placeholder.compiled.css} +0 -0
- /package/dist/es2019/{entry-points/confluence-search-modal-types.js → ui/common/modal/datasource-context/DatasourceContextProviderProps.js} +0 -0
- /package/dist/es2019/{entry-points/jira-issues-modal-types.js → ui/common/modal/datasource-context/DatasourceContextValue.js} +0 -0
- /package/dist/es2019/ui/common/modal/mode-switcher/{index.compiled.css → ModeSwitcher.compiled.css} +0 -0
- /package/dist/es2019/ui/common/modal/popup-select/{control.compiled.css → CustomControl.compiled.css} +0 -0
- /package/dist/es2019/ui/common/modal/search-count/{index.compiled.css → ItemCountWrapper.compiled.css} +0 -0
- /package/dist/es2019/ui/confluence-search-modal/modal/{index.compiled.css → PlainConfluenceSearchConfigModal.compiled.css} +0 -0
- /package/dist/es2019/ui/issue-like-table/{index.compiled.css → issue-like-data-table-view.compiled.css} +0 -0
- /package/dist/{esm/entry-points/assets-modal-types.js → es2019/ui/issue-like-table/table-cell-content/table-cell-content-props.js} +0 -0
- /package/dist/es2019/ui/issue-like-table/table-cell-content/{index.compiled.css → table-cell-content.compiled.css} +0 -0
- /package/dist/es2019/ui/issue-like-table/table-settings-menu/{index.compiled.css → TableSettingsMenu.compiled.css} +0 -0
- /package/dist/esm/{entry-points/confluence-search-modal-types.js → contexts/user-interactions/types.js} +0 -0
- /package/dist/esm/ui/common/modal/count-view-smart-link/{index.compiled.css → smart-card-placeholder.compiled.css} +0 -0
- /package/dist/esm/{entry-points/jira-issues-modal-types.js → ui/common/modal/datasource-context/DatasourceContextProviderProps.js} +0 -0
- /package/dist/esm/ui/common/modal/mode-switcher/{index.compiled.css → ModeSwitcher.compiled.css} +0 -0
- /package/dist/esm/ui/common/modal/popup-select/{control.compiled.css → CustomControl.compiled.css} +0 -0
- /package/dist/esm/ui/common/modal/search-count/{index.compiled.css → ItemCountWrapper.compiled.css} +0 -0
- /package/dist/esm/ui/confluence-search-modal/modal/{index.compiled.css → PlainConfluenceSearchConfigModal.compiled.css} +0 -0
- /package/dist/esm/ui/issue-like-table/{index.compiled.css → issue-like-data-table-view.compiled.css} +0 -0
- /package/dist/esm/ui/issue-like-table/table-cell-content/{index.compiled.css → table-cell-content.compiled.css} +0 -0
- /package/dist/esm/ui/issue-like-table/table-settings-menu/{index.compiled.css → TableSettingsMenu.compiled.css} +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import addMonths from 'date-fns/addMonths';
|
|
2
|
+
import differenceInDays from 'date-fns/differenceInDays';
|
|
3
|
+
import endOfDay from 'date-fns/endOfDay';
|
|
4
|
+
import getDaysInMonth from 'date-fns/getDaysInMonth';
|
|
5
|
+
import isFirstDayOfMonth from 'date-fns/isFirstDayOfMonth';
|
|
6
|
+
import isLastDayOfMonth from 'date-fns/isLastDayOfMonth';
|
|
7
|
+
import isSameDay from 'date-fns/isSameDay';
|
|
8
|
+
import isSameMonth from 'date-fns/isSameMonth';
|
|
9
|
+
import isSameYear from 'date-fns/isSameYear';
|
|
10
|
+
import startOfDay from 'date-fns/startOfDay';
|
|
11
|
+
import { messages } from './messages';
|
|
12
|
+
const dateOptions = {
|
|
13
|
+
month: 'short',
|
|
14
|
+
day: 'numeric',
|
|
15
|
+
year: 'numeric'
|
|
16
|
+
};
|
|
17
|
+
const timeOptions = {
|
|
18
|
+
hour12: false,
|
|
19
|
+
hour: '2-digit',
|
|
20
|
+
minute: '2-digit'
|
|
21
|
+
};
|
|
22
|
+
const isDayRange = (startDate, endDate) => {
|
|
23
|
+
// Naivly, we could just check
|
|
24
|
+
// return startDate.getTime() === endDate.getTime();
|
|
25
|
+
return isSameYear(startDate, endDate) && isSameMonth(startDate, endDate) && isSameDay(startDate, endDate);
|
|
26
|
+
};
|
|
27
|
+
const isMonthRange = (startDate, endDate) => {
|
|
28
|
+
return isSameYear(startDate, endDate) && isSameMonth(startDate, endDate) && isFirstDayOfMonth(startDate) && isLastDayOfMonth(endDate);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Checks if the date range is a quarter range.
|
|
33
|
+
* A quarter range is a range of 3 months.
|
|
34
|
+
* The start date must be the first day of the month.
|
|
35
|
+
* The end date must be the last day of the month.
|
|
36
|
+
* Quarters can span across multiple years.
|
|
37
|
+
*/
|
|
38
|
+
const isQuarterRange = (startDate, endDate) => {
|
|
39
|
+
// We need to add 1 to the difference in days
|
|
40
|
+
// because the differenceInDays method returns the number of full days between the two dates
|
|
41
|
+
// and we want to include the start and end dates
|
|
42
|
+
const diffDays = Math.abs(differenceInDays(startDate, endDate)) + 1;
|
|
43
|
+
const firstMonthDays = getDaysInMonth(startDate);
|
|
44
|
+
const secondMonthDays = getDaysInMonth(addMonths(startDate, 1));
|
|
45
|
+
const thirdMonthDays = getDaysInMonth(endDate);
|
|
46
|
+
return diffDays === firstMonthDays + secondMonthDays + thirdMonthDays && isFirstDayOfMonth(startDate) && isLastDayOfMonth(endDate);
|
|
47
|
+
};
|
|
48
|
+
const getDateScale = (startDate, endDate) => {
|
|
49
|
+
if (isDayRange(startDate, endDate)) {
|
|
50
|
+
// start: 2025-11-01
|
|
51
|
+
// end: 2025-11-01
|
|
52
|
+
return 'day';
|
|
53
|
+
}
|
|
54
|
+
if (isMonthRange(startDate, endDate)) {
|
|
55
|
+
// start: 2025-11-01
|
|
56
|
+
// end: 2025-11-30
|
|
57
|
+
return 'month';
|
|
58
|
+
}
|
|
59
|
+
if (isQuarterRange(startDate, endDate)) {
|
|
60
|
+
// start: 2025-11-01
|
|
61
|
+
// end: 2026-01-31
|
|
62
|
+
return 'quarter';
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// start: 2025-11-02
|
|
66
|
+
// end: 2026-05-19
|
|
67
|
+
return 'full';
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// I decided to reuse the same logic as we use currently in the date-time render type
|
|
71
|
+
// Alternatively, we could also use here `parseISO` from `date-fns`
|
|
72
|
+
const shiftUtcToLocal = dateString => {
|
|
73
|
+
// In some cases we get a value of `2023-12-20` which when parsed by JS assumes meantime timezone, causing the date
|
|
74
|
+
// to be one day off in some timezones. We want it to display the date without converting timezones and a solution
|
|
75
|
+
// is to replace the hyphens with slashes. So it should be 20th Dec regardless of the timezone in this case.
|
|
76
|
+
// See https://stackoverflow.com/a/31732581
|
|
77
|
+
const dateValue = /^\d{4}-\d{2}-\d{2}$/.exec(dateString) ? dateString.replace(/-/g, '/') : dateString;
|
|
78
|
+
return new Date(dateValue);
|
|
79
|
+
};
|
|
80
|
+
const isDateTimeString = dateString => {
|
|
81
|
+
return dateString.match(/^\d{4}-\d{2}-\d{2}/) !== null && dateString.includes('T');
|
|
82
|
+
};
|
|
83
|
+
export function getFormattedDateRange(startValue, endValue, formatDate, formatMessage) {
|
|
84
|
+
if (!startValue || !endValue) {
|
|
85
|
+
return '';
|
|
86
|
+
}
|
|
87
|
+
const isDateTime = isDateTimeString(startValue) && isDateTimeString(endValue);
|
|
88
|
+
const startDate = isDateTime ? new Date(startValue) : startOfDay(shiftUtcToLocal(startValue));
|
|
89
|
+
const endDate = isDateTime ? new Date(endValue) : endOfDay(shiftUtcToLocal(endValue));
|
|
90
|
+
if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
|
|
91
|
+
return '';
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// If startValue and endValue are valid ISO date strings, we consider it a full range
|
|
95
|
+
const dateScale = isDateTime ? 'full' : getDateScale(startDate, endDate);
|
|
96
|
+
switch (dateScale) {
|
|
97
|
+
case 'day':
|
|
98
|
+
// Nov 1, 2025
|
|
99
|
+
return formatDate(startDate, {
|
|
100
|
+
month: 'short',
|
|
101
|
+
day: 'numeric',
|
|
102
|
+
year: 'numeric'
|
|
103
|
+
});
|
|
104
|
+
case 'month':
|
|
105
|
+
// Nov 2025
|
|
106
|
+
return formatDate(startDate, {
|
|
107
|
+
month: 'short',
|
|
108
|
+
year: 'numeric'
|
|
109
|
+
});
|
|
110
|
+
case 'quarter':
|
|
111
|
+
{
|
|
112
|
+
// Jan-Mar, 2025
|
|
113
|
+
if (isSameYear(startDate, endDate)) {
|
|
114
|
+
return formatMessage(messages.quarterRange, {
|
|
115
|
+
startMonth: formatDate(startDate, {
|
|
116
|
+
month: 'short'
|
|
117
|
+
}),
|
|
118
|
+
endMonth: formatDate(endDate, {
|
|
119
|
+
month: 'short'
|
|
120
|
+
}),
|
|
121
|
+
year: formatDate(startDate, {
|
|
122
|
+
year: 'numeric'
|
|
123
|
+
})
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// Dec-Feb, 2025-2026
|
|
127
|
+
return formatMessage(messages.quarterRangeOverYears, {
|
|
128
|
+
startMonth: formatDate(startDate, {
|
|
129
|
+
month: 'short'
|
|
130
|
+
}),
|
|
131
|
+
endMonth: formatDate(endDate, {
|
|
132
|
+
month: 'short'
|
|
133
|
+
}),
|
|
134
|
+
startYear: formatDate(startDate, {
|
|
135
|
+
year: 'numeric'
|
|
136
|
+
}),
|
|
137
|
+
endYear: formatDate(endDate, {
|
|
138
|
+
year: 'numeric'
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
case 'full':
|
|
143
|
+
// Nov 1, 2025 - May 19, 2026
|
|
144
|
+
// Jan 1, 2025, 00:00 - Mar 31, 2025, 23:59
|
|
145
|
+
return formatMessage(messages.fullRange, {
|
|
146
|
+
start: formatDate(startDate, {
|
|
147
|
+
...dateOptions,
|
|
148
|
+
...timeOptions
|
|
149
|
+
}),
|
|
150
|
+
end: formatDate(endDate, {
|
|
151
|
+
...dateOptions,
|
|
152
|
+
...timeOptions
|
|
153
|
+
})
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -1,163 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import addMonths from 'date-fns/addMonths';
|
|
3
|
-
import differenceInDays from 'date-fns/differenceInDays';
|
|
4
|
-
import endOfDay from 'date-fns/endOfDay';
|
|
5
|
-
import getDaysInMonth from 'date-fns/getDaysInMonth';
|
|
6
|
-
import isFirstDayOfMonth from 'date-fns/isFirstDayOfMonth';
|
|
7
|
-
import isLastDayOfMonth from 'date-fns/isLastDayOfMonth';
|
|
8
|
-
import isSameDay from 'date-fns/isSameDay';
|
|
9
|
-
import isSameMonth from 'date-fns/isSameMonth';
|
|
10
|
-
import isSameYear from 'date-fns/isSameYear';
|
|
11
|
-
import startOfDay from 'date-fns/startOfDay';
|
|
12
2
|
import { useIntl } from 'react-intl';
|
|
13
3
|
import { Text } from '@atlaskit/primitives/compiled';
|
|
14
|
-
import {
|
|
4
|
+
import { getFormattedDateRange } from './getFormattedDateRange';
|
|
15
5
|
export const DATERANGE_TYPE_TEST_ID = 'link-datasource-render-type--daterange';
|
|
16
|
-
const dateOptions = {
|
|
17
|
-
month: 'short',
|
|
18
|
-
day: 'numeric',
|
|
19
|
-
year: 'numeric'
|
|
20
|
-
};
|
|
21
|
-
const timeOptions = {
|
|
22
|
-
hour12: false,
|
|
23
|
-
hour: '2-digit',
|
|
24
|
-
minute: '2-digit'
|
|
25
|
-
};
|
|
26
|
-
const isDayRange = (startDate, endDate) => {
|
|
27
|
-
// Naivly, we could just check
|
|
28
|
-
// return startDate.getTime() === endDate.getTime();
|
|
29
|
-
return isSameYear(startDate, endDate) && isSameMonth(startDate, endDate) && isSameDay(startDate, endDate);
|
|
30
|
-
};
|
|
31
|
-
const isMonthRange = (startDate, endDate) => {
|
|
32
|
-
return isSameYear(startDate, endDate) && isSameMonth(startDate, endDate) && isFirstDayOfMonth(startDate) && isLastDayOfMonth(endDate);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Checks if the date range is a quarter range.
|
|
37
|
-
* A quarter range is a range of 3 months.
|
|
38
|
-
* The start date must be the first day of the month.
|
|
39
|
-
* The end date must be the last day of the month.
|
|
40
|
-
* Quarters can span across multiple years.
|
|
41
|
-
*/
|
|
42
|
-
const isQuarterRange = (startDate, endDate) => {
|
|
43
|
-
// We need to add 1 to the difference in days
|
|
44
|
-
// because the differenceInDays method returns the number of full days between the two dates
|
|
45
|
-
// and we want to include the start and end dates
|
|
46
|
-
const diffDays = Math.abs(differenceInDays(startDate, endDate)) + 1;
|
|
47
|
-
const firstMonthDays = getDaysInMonth(startDate);
|
|
48
|
-
const secondMonthDays = getDaysInMonth(addMonths(startDate, 1));
|
|
49
|
-
const thirdMonthDays = getDaysInMonth(endDate);
|
|
50
|
-
return diffDays === firstMonthDays + secondMonthDays + thirdMonthDays && isFirstDayOfMonth(startDate) && isLastDayOfMonth(endDate);
|
|
51
|
-
};
|
|
52
|
-
const getDateScale = (startDate, endDate) => {
|
|
53
|
-
if (isDayRange(startDate, endDate)) {
|
|
54
|
-
// start: 2025-11-01
|
|
55
|
-
// end: 2025-11-01
|
|
56
|
-
return 'day';
|
|
57
|
-
}
|
|
58
|
-
if (isMonthRange(startDate, endDate)) {
|
|
59
|
-
// start: 2025-11-01
|
|
60
|
-
// end: 2025-11-30
|
|
61
|
-
return 'month';
|
|
62
|
-
}
|
|
63
|
-
if (isQuarterRange(startDate, endDate)) {
|
|
64
|
-
// start: 2025-11-01
|
|
65
|
-
// end: 2026-01-31
|
|
66
|
-
return 'quarter';
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// start: 2025-11-02
|
|
70
|
-
// end: 2026-05-19
|
|
71
|
-
return 'full';
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
// I decided to reuse the same logic as we use currently in the date-time render type
|
|
75
|
-
// Alternatively, we could also use here `parseISO` from `date-fns`
|
|
76
|
-
const shiftUtcToLocal = dateString => {
|
|
77
|
-
// In some cases we get a value of `2023-12-20` which when parsed by JS assumes meantime timezone, causing the date
|
|
78
|
-
// to be one day off in some timezones. We want it to display the date without converting timezones and a solution
|
|
79
|
-
// is to replace the hyphens with slashes. So it should be 20th Dec regardless of the timezone in this case.
|
|
80
|
-
// See https://stackoverflow.com/a/31732581
|
|
81
|
-
const dateValue = /^\d{4}-\d{2}-\d{2}$/.exec(dateString) ? dateString.replace(/-/g, '/') : dateString;
|
|
82
|
-
return new Date(dateValue);
|
|
83
|
-
};
|
|
84
|
-
const isDateTimeString = dateString => {
|
|
85
|
-
return dateString.match(/^\d{4}-\d{2}-\d{2}/) !== null && dateString.includes('T');
|
|
86
|
-
};
|
|
87
|
-
export function getFormattedDateRange(startValue, endValue, formatDate, formatMessage) {
|
|
88
|
-
if (!startValue || !endValue) {
|
|
89
|
-
return '';
|
|
90
|
-
}
|
|
91
|
-
const isDateTime = isDateTimeString(startValue) && isDateTimeString(endValue);
|
|
92
|
-
const startDate = isDateTime ? new Date(startValue) : startOfDay(shiftUtcToLocal(startValue));
|
|
93
|
-
const endDate = isDateTime ? new Date(endValue) : endOfDay(shiftUtcToLocal(endValue));
|
|
94
|
-
if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
|
|
95
|
-
return '';
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// If startValue and endValue are valid ISO date strings, we consider it a full range
|
|
99
|
-
const dateScale = isDateTime ? 'full' : getDateScale(startDate, endDate);
|
|
100
|
-
switch (dateScale) {
|
|
101
|
-
case 'day':
|
|
102
|
-
// Nov 1, 2025
|
|
103
|
-
return formatDate(startDate, {
|
|
104
|
-
month: 'short',
|
|
105
|
-
day: 'numeric',
|
|
106
|
-
year: 'numeric'
|
|
107
|
-
});
|
|
108
|
-
case 'month':
|
|
109
|
-
// Nov 2025
|
|
110
|
-
return formatDate(startDate, {
|
|
111
|
-
month: 'short',
|
|
112
|
-
year: 'numeric'
|
|
113
|
-
});
|
|
114
|
-
case 'quarter':
|
|
115
|
-
{
|
|
116
|
-
// Jan-Mar, 2025
|
|
117
|
-
if (isSameYear(startDate, endDate)) {
|
|
118
|
-
return formatMessage(messages.quarterRange, {
|
|
119
|
-
startMonth: formatDate(startDate, {
|
|
120
|
-
month: 'short'
|
|
121
|
-
}),
|
|
122
|
-
endMonth: formatDate(endDate, {
|
|
123
|
-
month: 'short'
|
|
124
|
-
}),
|
|
125
|
-
year: formatDate(startDate, {
|
|
126
|
-
year: 'numeric'
|
|
127
|
-
})
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
// Dec-Feb, 2025-2026
|
|
131
|
-
return formatMessage(messages.quarterRangeOverYears, {
|
|
132
|
-
startMonth: formatDate(startDate, {
|
|
133
|
-
month: 'short'
|
|
134
|
-
}),
|
|
135
|
-
endMonth: formatDate(endDate, {
|
|
136
|
-
month: 'short'
|
|
137
|
-
}),
|
|
138
|
-
startYear: formatDate(startDate, {
|
|
139
|
-
year: 'numeric'
|
|
140
|
-
}),
|
|
141
|
-
endYear: formatDate(endDate, {
|
|
142
|
-
year: 'numeric'
|
|
143
|
-
})
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
case 'full':
|
|
147
|
-
// Nov 1, 2025 - May 19, 2026
|
|
148
|
-
// Jan 1, 2025, 00:00 - Mar 31, 2025, 23:59
|
|
149
|
-
return formatMessage(messages.fullRange, {
|
|
150
|
-
start: formatDate(startDate, {
|
|
151
|
-
...dateOptions,
|
|
152
|
-
...timeOptions
|
|
153
|
-
}),
|
|
154
|
-
end: formatDate(endDate, {
|
|
155
|
-
...dateOptions,
|
|
156
|
-
...timeOptions
|
|
157
|
-
})
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
6
|
const DateRangeRenderType = ({
|
|
162
7
|
value,
|
|
163
8
|
testId = DATERANGE_TYPE_TEST_ID
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const dateOptions = {
|
|
2
|
+
month: 'short',
|
|
3
|
+
day: 'numeric',
|
|
4
|
+
year: 'numeric'
|
|
5
|
+
};
|
|
6
|
+
const timeOptions = {
|
|
7
|
+
hour12: false,
|
|
8
|
+
hour: '2-digit',
|
|
9
|
+
minute: '2-digit'
|
|
10
|
+
};
|
|
11
|
+
export function getFormattedDate(value, display = 'datetime', formatDate) {
|
|
12
|
+
/* In some cases we get a value of `2023-12-20` which when parsed by JS assumes meantime timezone, causing the date
|
|
13
|
+
to be one day off in some timezones. We want it to display the date without converting timezones and a solution
|
|
14
|
+
is to replace the hyphens with slashes. So it should be 20th Dec regardless of the timezone in this case.
|
|
15
|
+
See https://stackoverflow.com/a/31732581
|
|
16
|
+
*/
|
|
17
|
+
const dateValue = /^\d{4}-\d{2}-\d{2}$/.exec(value) ? value.replace(/-/g, '/') : value;
|
|
18
|
+
const date = new Date(dateValue);
|
|
19
|
+
if (!value || isNaN(date.getTime())) {
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
const options = {
|
|
23
|
+
date: dateOptions,
|
|
24
|
+
time: timeOptions,
|
|
25
|
+
datetime: {
|
|
26
|
+
...dateOptions,
|
|
27
|
+
...timeOptions
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
return formatDate(date, options[display] || options['date']);
|
|
31
|
+
}
|
|
@@ -1,38 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useIntl } from 'react-intl';
|
|
3
3
|
import { Text } from '@atlaskit/primitives/compiled';
|
|
4
|
+
import { getFormattedDate } from './getFormattedDate';
|
|
4
5
|
export const DATETIME_TYPE_TEST_ID = 'link-datasource-render-type--datetime';
|
|
5
|
-
const dateOptions = {
|
|
6
|
-
month: 'short',
|
|
7
|
-
day: 'numeric',
|
|
8
|
-
year: 'numeric'
|
|
9
|
-
};
|
|
10
|
-
const timeOptions = {
|
|
11
|
-
hour12: false,
|
|
12
|
-
hour: '2-digit',
|
|
13
|
-
minute: '2-digit'
|
|
14
|
-
};
|
|
15
|
-
export function getFormattedDate(value, display = 'datetime', formatDate) {
|
|
16
|
-
/* In some cases we get a value of `2023-12-20` which when parsed by JS assumes meantime timezone, causing the date
|
|
17
|
-
to be one day off in some timezones. We want it to display the date without converting timezones and a solution
|
|
18
|
-
is to replace the hyphens with slashes. So it should be 20th Dec regardless of the timezone in this case.
|
|
19
|
-
See https://stackoverflow.com/a/31732581
|
|
20
|
-
*/
|
|
21
|
-
const dateValue = /^\d{4}-\d{2}-\d{2}$/.exec(value) ? value.replace(/-/g, '/') : value;
|
|
22
|
-
const date = new Date(dateValue);
|
|
23
|
-
if (!value || isNaN(date.getTime())) {
|
|
24
|
-
return '';
|
|
25
|
-
}
|
|
26
|
-
const options = {
|
|
27
|
-
date: dateOptions,
|
|
28
|
-
time: timeOptions,
|
|
29
|
-
datetime: {
|
|
30
|
-
...dateOptions,
|
|
31
|
-
...timeOptions
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
return formatDate(date, options[display] || options['date']);
|
|
35
|
-
}
|
|
36
6
|
const DateTimeRenderType = ({
|
|
37
7
|
value,
|
|
38
8
|
testId = DATETIME_TYPE_TEST_ID,
|
|
@@ -1,115 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import TagRenderType from './tag';
|
|
12
|
-
import StringRenderType from './text';
|
|
13
|
-
import UserRenderType from './user';
|
|
14
|
-
import { userTypeMessages } from './user/messages';
|
|
15
|
-
export const stringifyType = ({
|
|
16
|
-
type,
|
|
17
|
-
value
|
|
18
|
-
}, formatMessage, formatDate) => {
|
|
19
|
-
switch (type) {
|
|
20
|
-
case 'boolean':
|
|
21
|
-
case 'number':
|
|
22
|
-
return (value === null || value === void 0 ? void 0 : value.toString()) || '';
|
|
23
|
-
case 'date':
|
|
24
|
-
return getFormattedDate(value, 'date', formatDate);
|
|
25
|
-
case 'datetime':
|
|
26
|
-
return getFormattedDate(value, 'datetime', formatDate);
|
|
27
|
-
case 'daterange':
|
|
28
|
-
{
|
|
29
|
-
return getFormattedDateRange(value.start, value.end, formatDate, formatMessage);
|
|
30
|
-
}
|
|
31
|
-
case 'time':
|
|
32
|
-
return getFormattedDate(value, 'time', formatDate);
|
|
33
|
-
case 'icon':
|
|
34
|
-
return (value === null || value === void 0 ? void 0 : value.label) || '';
|
|
35
|
-
case 'status':
|
|
36
|
-
return (value === null || value === void 0 ? void 0 : value.text.toString()) || '';
|
|
37
|
-
case 'string':
|
|
38
|
-
return value;
|
|
39
|
-
case 'tag':
|
|
40
|
-
return (value === null || value === void 0 ? void 0 : value.text) || '';
|
|
41
|
-
case 'user':
|
|
42
|
-
return (value === null || value === void 0 ? void 0 : value.displayName) || formatMessage(userTypeMessages.userDefaultdisplayNameValue);
|
|
43
|
-
case 'richtext':
|
|
44
|
-
if (value.html && value.html.trim() !== '') {
|
|
45
|
-
return '';
|
|
46
|
-
} else {
|
|
47
|
-
const adfPlainText = parseRichText(value);
|
|
48
|
-
return adfPlainText || '';
|
|
49
|
-
}
|
|
50
|
-
case 'link':
|
|
51
|
-
default:
|
|
52
|
-
return '';
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
export const renderType = item => {
|
|
56
|
-
switch (item.type) {
|
|
57
|
-
case 'boolean':
|
|
58
|
-
return item.values.map(booleanValue => /*#__PURE__*/React.createElement(BooleanRenderType, {
|
|
59
|
-
value: booleanValue
|
|
60
|
-
}));
|
|
61
|
-
case 'date':
|
|
62
|
-
return item.values.map(dateValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
63
|
-
value: dateValue,
|
|
64
|
-
display: "date"
|
|
65
|
-
}));
|
|
66
|
-
case 'datetime':
|
|
67
|
-
return item.values.map(datTimeValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
68
|
-
value: datTimeValue,
|
|
69
|
-
display: "datetime"
|
|
70
|
-
}));
|
|
71
|
-
case 'daterange':
|
|
72
|
-
{
|
|
73
|
-
return item.values.map(dateRangeValue => /*#__PURE__*/React.createElement(DateRangeRenderType, {
|
|
74
|
-
value: dateRangeValue
|
|
75
|
-
}));
|
|
76
|
-
}
|
|
77
|
-
case 'icon':
|
|
78
|
-
return item.values.map(iconValue => /*#__PURE__*/React.createElement(IconRenderType, iconValue));
|
|
79
|
-
case 'link':
|
|
80
|
-
return item.values.map(linkValue => /*#__PURE__*/React.createElement(LinkRenderType, _extends({
|
|
81
|
-
key: linkValue === null || linkValue === void 0 ? void 0 : linkValue.url
|
|
82
|
-
}, linkValue)));
|
|
83
|
-
case 'number':
|
|
84
|
-
return item.values.map(numberValue => /*#__PURE__*/React.createElement(NumberRenderType, {
|
|
85
|
-
number: numberValue
|
|
86
|
-
}));
|
|
87
|
-
case 'status':
|
|
88
|
-
return item.values.map(statusValue => /*#__PURE__*/React.createElement(StatusRenderType, statusValue));
|
|
89
|
-
case 'string':
|
|
90
|
-
return item.values.map(stringValue => /*#__PURE__*/React.createElement(StringRenderType, {
|
|
91
|
-
key: stringValue,
|
|
92
|
-
text: stringValue
|
|
93
|
-
}));
|
|
94
|
-
case 'tag':
|
|
95
|
-
return item.values.map(tagValue => /*#__PURE__*/React.createElement(TagRenderType, {
|
|
96
|
-
key: (tagValue === null || tagValue === void 0 ? void 0 : tagValue.id) || (tagValue === null || tagValue === void 0 ? void 0 : tagValue.text),
|
|
97
|
-
tag: tagValue
|
|
98
|
-
}));
|
|
99
|
-
case 'time':
|
|
100
|
-
return item.values.map(timeValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
101
|
-
value: timeValue,
|
|
102
|
-
display: "time"
|
|
103
|
-
}));
|
|
104
|
-
case 'user':
|
|
105
|
-
return /*#__PURE__*/React.createElement(UserRenderType, {
|
|
106
|
-
users: item.values
|
|
107
|
-
});
|
|
108
|
-
case 'richtext':
|
|
109
|
-
return item.values.map(richValue => /*#__PURE__*/React.createElement(RichTextRenderType, {
|
|
110
|
-
value: richValue
|
|
111
|
-
}));
|
|
112
|
-
default:
|
|
113
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
114
|
-
}
|
|
115
|
-
};
|
|
1
|
+
/* eslint-disable @repo/internal/deprecations/deprecation-ticket-required -- VOLTC-139 tracks removal of these deprecated re-export shims. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use `import { stringifyType } from '@atlaskit/link-datasource/elements'` instead.
|
|
5
|
+
*/
|
|
6
|
+
export { stringifyType } from './stringifyType';
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `import { renderType } from '@atlaskit/link-datasource/elements'` instead.
|
|
9
|
+
*/
|
|
10
|
+
export { renderType } from './renderType';
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import BooleanRenderType from './boolean';
|
|
4
|
+
import DateRangeRenderType from './date-range';
|
|
5
|
+
import DateTimeRenderType from './date-time';
|
|
6
|
+
import IconRenderType from './icon';
|
|
7
|
+
import LinkRenderType from './link';
|
|
8
|
+
import NumberRenderType from './number';
|
|
9
|
+
import RichTextRenderType from './richtext';
|
|
10
|
+
import StatusRenderType from './status';
|
|
11
|
+
import TagRenderType from './tag';
|
|
12
|
+
import StringRenderType from './text';
|
|
13
|
+
import UserRenderType from './user';
|
|
14
|
+
export const renderType = item => {
|
|
15
|
+
switch (item.type) {
|
|
16
|
+
case 'boolean':
|
|
17
|
+
return item.values.map(booleanValue => /*#__PURE__*/React.createElement(BooleanRenderType, {
|
|
18
|
+
value: booleanValue
|
|
19
|
+
}));
|
|
20
|
+
case 'date':
|
|
21
|
+
return item.values.map(dateValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
22
|
+
value: dateValue,
|
|
23
|
+
display: "date"
|
|
24
|
+
}));
|
|
25
|
+
case 'datetime':
|
|
26
|
+
return item.values.map(datTimeValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
27
|
+
value: datTimeValue,
|
|
28
|
+
display: "datetime"
|
|
29
|
+
}));
|
|
30
|
+
case 'daterange':
|
|
31
|
+
{
|
|
32
|
+
return item.values.map(dateRangeValue => /*#__PURE__*/React.createElement(DateRangeRenderType, {
|
|
33
|
+
value: dateRangeValue
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
case 'icon':
|
|
37
|
+
return item.values.map(iconValue => /*#__PURE__*/React.createElement(IconRenderType, iconValue));
|
|
38
|
+
case 'link':
|
|
39
|
+
return item.values.map(linkValue => /*#__PURE__*/React.createElement(LinkRenderType, _extends({
|
|
40
|
+
key: linkValue === null || linkValue === void 0 ? void 0 : linkValue.url
|
|
41
|
+
}, linkValue)));
|
|
42
|
+
case 'number':
|
|
43
|
+
return item.values.map(numberValue => /*#__PURE__*/React.createElement(NumberRenderType, {
|
|
44
|
+
number: numberValue
|
|
45
|
+
}));
|
|
46
|
+
case 'status':
|
|
47
|
+
return item.values.map(statusValue => /*#__PURE__*/React.createElement(StatusRenderType, statusValue));
|
|
48
|
+
case 'string':
|
|
49
|
+
return item.values.map(stringValue => /*#__PURE__*/React.createElement(StringRenderType, {
|
|
50
|
+
key: stringValue,
|
|
51
|
+
text: stringValue
|
|
52
|
+
}));
|
|
53
|
+
case 'tag':
|
|
54
|
+
return item.values.map(tagValue => /*#__PURE__*/React.createElement(TagRenderType, {
|
|
55
|
+
key: (tagValue === null || tagValue === void 0 ? void 0 : tagValue.id) || (tagValue === null || tagValue === void 0 ? void 0 : tagValue.text),
|
|
56
|
+
tag: tagValue
|
|
57
|
+
}));
|
|
58
|
+
case 'time':
|
|
59
|
+
return item.values.map(timeValue => /*#__PURE__*/React.createElement(DateTimeRenderType, {
|
|
60
|
+
value: timeValue,
|
|
61
|
+
display: "time"
|
|
62
|
+
}));
|
|
63
|
+
case 'user':
|
|
64
|
+
return /*#__PURE__*/React.createElement(UserRenderType, {
|
|
65
|
+
users: item.values
|
|
66
|
+
});
|
|
67
|
+
case 'richtext':
|
|
68
|
+
return item.values.map(richValue => /*#__PURE__*/React.createElement(RichTextRenderType, {
|
|
69
|
+
value: richValue
|
|
70
|
+
}));
|
|
71
|
+
default:
|
|
72
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
@@ -4,42 +4,8 @@ import * as React from 'react';
|
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
5
5
|
import { useMemo } from 'react';
|
|
6
6
|
import dompurify from 'dompurify';
|
|
7
|
-
import {
|
|
8
|
-
import { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
|
|
7
|
+
import { parseRichText } from './parseRichText';
|
|
9
8
|
const rootStyles = null;
|
|
10
|
-
const smartLinkNodeToUrl = node => {
|
|
11
|
-
var _node$attrs$url;
|
|
12
|
-
return (_node$attrs$url = node.attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : '';
|
|
13
|
-
};
|
|
14
|
-
const schemaSmartLinkOverride = new Schema({
|
|
15
|
-
nodes: defaultSchema.spec.nodes.update('inlineCard', {
|
|
16
|
-
...defaultSchema.spec.nodes.get('inlineCard'),
|
|
17
|
-
leafText: smartLinkNodeToUrl
|
|
18
|
-
}).update('blockCard', {
|
|
19
|
-
...defaultSchema.spec.nodes.get('blockCard'),
|
|
20
|
-
leafText: smartLinkNodeToUrl
|
|
21
|
-
}).update('embedCard', {
|
|
22
|
-
...defaultSchema.spec.nodes.get('embedCard'),
|
|
23
|
-
leafText: smartLinkNodeToUrl
|
|
24
|
-
}),
|
|
25
|
-
marks: defaultSchema.spec.marks
|
|
26
|
-
});
|
|
27
|
-
export const parseRichText = value => {
|
|
28
|
-
try {
|
|
29
|
-
if (value.type === 'adf') {
|
|
30
|
-
const adf = JSON.parse(value.text);
|
|
31
|
-
return PMNode.fromJSON(schemaSmartLinkOverride, {
|
|
32
|
-
...adf,
|
|
33
|
-
content: [...adf.content.slice(0, 2)]
|
|
34
|
-
}).textContent;
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
} catch (e) {
|
|
38
|
-
// eslint-disable-next-line no-console
|
|
39
|
-
console.error('error parsing adf', e);
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
9
|
const RichTextType = ({
|
|
44
10
|
value
|
|
45
11
|
}) => {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jsxRuntime classic
|
|
3
|
+
* @jsx jsx
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { defaultSchema } from '@atlaskit/adf-schema/schema-default';
|
|
7
|
+
import { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
|
|
8
|
+
const smartLinkNodeToUrl = node => {
|
|
9
|
+
var _node$attrs$url;
|
|
10
|
+
return (_node$attrs$url = node.attrs.url) !== null && _node$attrs$url !== void 0 ? _node$attrs$url : '';
|
|
11
|
+
};
|
|
12
|
+
const schemaSmartLinkOverride = new Schema({
|
|
13
|
+
nodes: defaultSchema.spec.nodes.update('inlineCard', {
|
|
14
|
+
...defaultSchema.spec.nodes.get('inlineCard'),
|
|
15
|
+
leafText: smartLinkNodeToUrl
|
|
16
|
+
}).update('blockCard', {
|
|
17
|
+
...defaultSchema.spec.nodes.get('blockCard'),
|
|
18
|
+
leafText: smartLinkNodeToUrl
|
|
19
|
+
}).update('embedCard', {
|
|
20
|
+
...defaultSchema.spec.nodes.get('embedCard'),
|
|
21
|
+
leafText: smartLinkNodeToUrl
|
|
22
|
+
}),
|
|
23
|
+
marks: defaultSchema.spec.marks
|
|
24
|
+
});
|
|
25
|
+
export const parseRichText = value => {
|
|
26
|
+
try {
|
|
27
|
+
if (value.type === 'adf') {
|
|
28
|
+
const adf = JSON.parse(value.text);
|
|
29
|
+
return PMNode.fromJSON(schemaSmartLinkOverride, {
|
|
30
|
+
...adf,
|
|
31
|
+
content: [...adf.content.slice(0, 2)]
|
|
32
|
+
}).textContent;
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
} catch (e) {
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.error('error parsing adf', e);
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|