@osdk/react-components 0.26.0 → 0.27.0-main-db8df2423f72b154e84da1e327691afbc569c5aa
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/AGENTS.md +27 -19
- package/CHANGELOG.md +14 -0
- package/README.md +1 -0
- package/build/browser/cbac-picker/CbacBanner.js +42 -0
- package/build/browser/cbac-picker/CbacBanner.js.map +1 -0
- package/build/browser/cbac-picker/CbacBannerPopover.js +83 -0
- package/build/browser/cbac-picker/CbacBannerPopover.js.map +1 -0
- package/build/browser/cbac-picker/CbacPicker.js +69 -0
- package/build/browser/cbac-picker/CbacPicker.js.map +1 -0
- package/build/browser/cbac-picker/CbacPickerDialog.js +81 -0
- package/build/browser/cbac-picker/CbacPickerDialog.js.map +1 -0
- package/build/browser/cbac-picker/base/BaseCbacBanner.js +64 -0
- package/build/browser/cbac-picker/base/BaseCbacBanner.js.map +1 -0
- package/build/browser/cbac-picker/base/BaseCbacBanner.module.css +74 -0
- package/build/browser/cbac-picker/base/BaseCbacBanner.module.css.js +9 -0
- package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js +168 -0
- package/build/browser/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -0
- package/build/browser/cbac-picker/base/BaseCbacBannerPopover.module.css +193 -0
- package/build/browser/cbac-picker/base/BaseCbacBannerPopover.module.css.js +30 -0
- package/build/browser/cbac-picker/base/BaseCbacPicker.js +74 -0
- package/build/browser/cbac-picker/base/BaseCbacPicker.js.map +1 -0
- package/build/browser/cbac-picker/base/BaseCbacPicker.module.css +47 -0
- package/build/browser/cbac-picker/base/BaseCbacPicker.module.css.js +9 -0
- package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js +51 -0
- package/build/browser/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -0
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.js +91 -0
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.js.map +1 -0
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.module.css +69 -0
- package/build/browser/cbac-picker/base/CategoryMarkingGroup.module.css.js +12 -0
- package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js +43 -0
- package/build/browser/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -0
- package/build/browser/cbac-picker/base/CbacPickerDialogFooter.module.css +19 -0
- package/build/browser/cbac-picker/base/CbacPickerDialogFooter.module.css.js +6 -0
- package/build/browser/cbac-picker/base/InfoBanner.js +32 -0
- package/build/browser/cbac-picker/base/InfoBanner.js.map +1 -0
- package/build/browser/cbac-picker/base/InfoBanner.module.css +30 -0
- package/build/browser/cbac-picker/base/InfoBanner.module.css.js +7 -0
- package/build/browser/cbac-picker/base/MarkingButton.js +83 -0
- package/build/browser/cbac-picker/base/MarkingButton.js.map +1 -0
- package/build/browser/cbac-picker/base/MarkingButton.module.css +104 -0
- package/build/browser/cbac-picker/base/MarkingButton.module.css.js +14 -0
- package/build/browser/cbac-picker/base/MaxClassificationField.js +42 -0
- package/build/browser/cbac-picker/base/MaxClassificationField.js.map +1 -0
- package/build/browser/cbac-picker/base/MaxClassificationField.module.css +39 -0
- package/build/browser/cbac-picker/base/MaxClassificationField.module.css.js +9 -0
- package/build/browser/cbac-picker/base/OverflowButton.js +51 -0
- package/build/browser/cbac-picker/base/OverflowButton.js.map +1 -0
- package/build/browser/cbac-picker/base/OverflowButton.module.css +57 -0
- package/build/browser/cbac-picker/base/OverflowButton.module.css.js +8 -0
- package/build/browser/cbac-picker/base/OverflowItem.js +64 -0
- package/build/browser/cbac-picker/base/OverflowItem.js.map +1 -0
- package/build/browser/cbac-picker/base/OverflowItem.module.css +75 -0
- package/build/browser/cbac-picker/base/OverflowItem.module.css.js +11 -0
- package/build/browser/cbac-picker/base/ValidationWarning.js +44 -0
- package/build/browser/cbac-picker/base/ValidationWarning.js.map +1 -0
- package/build/browser/cbac-picker/base/ValidationWarning.module.css +71 -0
- package/build/browser/cbac-picker/base/ValidationWarning.module.css.js +12 -0
- package/build/browser/cbac-picker/base/selectionStateHelpers.js +35 -0
- package/build/browser/cbac-picker/base/selectionStateHelpers.js.map +1 -0
- package/build/browser/cbac-picker/types.js +2 -0
- package/build/browser/cbac-picker/types.js.map +1 -0
- package/build/browser/cbac-picker/useCbacPickerState.js +104 -0
- package/build/browser/cbac-picker/useCbacPickerState.js.map +1 -0
- package/build/browser/cbac-picker/useCbacSelection.js +52 -0
- package/build/browser/cbac-picker/useCbacSelection.js.map +1 -0
- package/build/browser/cbac-picker/useConstraintCallout.js +42 -0
- package/build/browser/cbac-picker/useConstraintCallout.js.map +1 -0
- package/build/browser/cbac-picker/utils/cbacPickerUtils.js +60 -0
- package/build/browser/cbac-picker/utils/cbacPickerUtils.js.map +1 -0
- package/build/browser/cbac-picker/utils/errorMessages.js +78 -0
- package/build/browser/cbac-picker/utils/errorMessages.js.map +1 -0
- package/build/browser/cbac-picker/utils/selectionLogic.js +91 -0
- package/build/browser/cbac-picker/utils/selectionLogic.js.map +1 -0
- package/build/browser/cbac-picker/utils/validationMessages.js +34 -0
- package/build/browser/cbac-picker/utils/validationMessages.js.map +1 -0
- package/build/browser/filter-list/base/inputs/ListogramInput.module.css +2 -5
- package/build/browser/public/experimental/cbac-picker.js +36 -0
- package/build/browser/public/experimental/cbac-picker.js.map +1 -0
- package/build/browser/public/experimental.js +1 -0
- package/build/browser/public/experimental.js.map +1 -1
- package/build/browser/styles.css +815 -7
- package/build/browser/tokens/component-tokens/filter-list.css +2 -2
- package/build/browser/util/UserAgent.js +1 -1
- package/build/browser/util/UserAgent.js.map +1 -1
- package/build/cjs/chunk-6IIKW56G.cjs +11 -0
- package/build/cjs/{chunk-W6C6UWUN.cjs.map → chunk-6IIKW56G.cjs.map} +1 -1
- package/build/cjs/{chunk-Y4OUZFGE.cjs → chunk-B7QEY2ER.cjs} +4 -4
- package/build/cjs/{chunk-Y4OUZFGE.cjs.map → chunk-B7QEY2ER.cjs.map} +1 -1
- package/build/cjs/{chunk-OZ3OGPEA.cjs → chunk-DAWQ5KT5.cjs} +4 -4
- package/build/cjs/{chunk-OZ3OGPEA.cjs.map → chunk-DAWQ5KT5.cjs.map} +1 -1
- package/build/cjs/chunk-EI62HPZN.cjs +11 -0
- package/build/cjs/{chunk-YLYICFCA.cjs.map → chunk-EI62HPZN.cjs.map} +1 -1
- package/build/cjs/{chunk-RDILWZTC.cjs → chunk-JQ67SCIO.cjs} +6 -6
- package/build/cjs/{chunk-RDILWZTC.cjs.map → chunk-JQ67SCIO.cjs.map} +1 -1
- package/build/cjs/{chunk-DY6YZDDT.cjs → chunk-MUITA6EM.cjs} +4 -4
- package/build/cjs/{chunk-DY6YZDDT.cjs.map → chunk-MUITA6EM.cjs.map} +1 -1
- package/build/cjs/{chunk-3VL5YVFA.cjs → chunk-NPT4RHWG.cjs} +4 -4
- package/build/cjs/{chunk-3VL5YVFA.cjs.map → chunk-NPT4RHWG.cjs.map} +1 -1
- package/build/cjs/{chunk-3FFHTVG7.cjs → chunk-NSXB2TXV.cjs} +6 -6
- package/build/cjs/{chunk-3FFHTVG7.cjs.map → chunk-NSXB2TXV.cjs.map} +1 -1
- package/build/cjs/chunk-PJVK32YR.cjs +11 -0
- package/build/cjs/{chunk-GKWXRVFO.cjs.map → chunk-PJVK32YR.cjs.map} +1 -1
- package/build/cjs/chunk-V6CDK4G4.cjs +11 -0
- package/build/cjs/{chunk-JPVZGQXS.cjs.map → chunk-V6CDK4G4.cjs.map} +1 -1
- package/build/cjs/chunk-VFRZREZV.cjs +4 -0
- package/build/cjs/chunk-VFRZREZV.cjs.map +1 -0
- package/build/cjs/chunk-W4T7KB4R.cjs +11 -0
- package/build/cjs/{chunk-UJXNFENA.cjs.map → chunk-W4T7KB4R.cjs.map} +1 -1
- package/build/cjs/{chunk-IFOPHNX3.cjs → chunk-X7AKMQQW.cjs} +8 -8
- package/build/cjs/{chunk-IFOPHNX3.cjs.map → chunk-X7AKMQQW.cjs.map} +1 -1
- package/build/cjs/chunk-Y47SHEG7.cjs +1190 -0
- package/build/cjs/chunk-Y47SHEG7.cjs.map +1 -0
- package/build/cjs/{chunk-UTB55N5Y.cjs → chunk-YBGT4WIE.cjs} +3 -3
- package/build/cjs/chunk-YBGT4WIE.cjs.map +1 -0
- package/build/cjs/public/experimental/action-form.cjs +6 -6
- package/build/cjs/public/experimental/cbac-picker.cjs +60 -0
- package/build/cjs/public/experimental/cbac-picker.cjs.map +1 -0
- package/build/cjs/public/experimental/cbac-picker.css +731 -0
- package/build/cjs/public/experimental/cbac-picker.css.map +1 -0
- package/build/cjs/public/experimental/cbac-picker.d.cts +122 -0
- package/build/cjs/public/experimental/document-viewer.cjs +6 -6
- package/build/cjs/public/experimental/email-viewer.cjs +3 -3
- package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
- package/build/cjs/public/experimental/filter-list.cjs +16 -16
- package/build/cjs/public/experimental/filter-list.css +2 -5
- package/build/cjs/public/experimental/filter-list.css.map +1 -1
- package/build/cjs/public/experimental/image-viewer.cjs +3 -3
- package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
- package/build/cjs/public/experimental/object-table.cjs +12 -12
- package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
- package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
- package/build/cjs/public/experimental/video-viewer.cjs +3 -3
- package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
- package/build/cjs/public/experimental.cjs +151 -105
- package/build/cjs/public/experimental.css +612 -76
- package/build/cjs/public/experimental.css.map +1 -1
- package/build/cjs/public/experimental.d.cts +1 -0
- package/build/cjs/public/primitives.cjs +2 -1
- package/build/esm/cbac-picker/CbacBanner.js +42 -0
- package/build/esm/cbac-picker/CbacBanner.js.map +1 -0
- package/build/esm/cbac-picker/CbacBannerPopover.js +83 -0
- package/build/esm/cbac-picker/CbacBannerPopover.js.map +1 -0
- package/build/esm/cbac-picker/CbacPicker.js +69 -0
- package/build/esm/cbac-picker/CbacPicker.js.map +1 -0
- package/build/esm/cbac-picker/CbacPickerDialog.js +81 -0
- package/build/esm/cbac-picker/CbacPickerDialog.js.map +1 -0
- package/build/esm/cbac-picker/base/BaseCbacBanner.js +64 -0
- package/build/esm/cbac-picker/base/BaseCbacBanner.js.map +1 -0
- package/build/esm/cbac-picker/base/BaseCbacBanner.module.css +74 -0
- package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js +168 -0
- package/build/esm/cbac-picker/base/BaseCbacBannerPopover.js.map +1 -0
- package/build/esm/cbac-picker/base/BaseCbacBannerPopover.module.css +193 -0
- package/build/esm/cbac-picker/base/BaseCbacPicker.js +74 -0
- package/build/esm/cbac-picker/base/BaseCbacPicker.js.map +1 -0
- package/build/esm/cbac-picker/base/BaseCbacPicker.module.css +47 -0
- package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js +51 -0
- package/build/esm/cbac-picker/base/BaseCbacPickerDialog.js.map +1 -0
- package/build/esm/cbac-picker/base/CategoryMarkingGroup.js +91 -0
- package/build/esm/cbac-picker/base/CategoryMarkingGroup.js.map +1 -0
- package/build/esm/cbac-picker/base/CategoryMarkingGroup.module.css +69 -0
- package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js +43 -0
- package/build/esm/cbac-picker/base/CbacPickerDialogFooter.js.map +1 -0
- package/build/esm/cbac-picker/base/CbacPickerDialogFooter.module.css +19 -0
- package/build/esm/cbac-picker/base/InfoBanner.js +32 -0
- package/build/esm/cbac-picker/base/InfoBanner.js.map +1 -0
- package/build/esm/cbac-picker/base/InfoBanner.module.css +30 -0
- package/build/esm/cbac-picker/base/MarkingButton.js +83 -0
- package/build/esm/cbac-picker/base/MarkingButton.js.map +1 -0
- package/build/esm/cbac-picker/base/MarkingButton.module.css +104 -0
- package/build/esm/cbac-picker/base/MaxClassificationField.js +42 -0
- package/build/esm/cbac-picker/base/MaxClassificationField.js.map +1 -0
- package/build/esm/cbac-picker/base/MaxClassificationField.module.css +39 -0
- package/build/esm/cbac-picker/base/OverflowButton.js +51 -0
- package/build/esm/cbac-picker/base/OverflowButton.js.map +1 -0
- package/build/esm/cbac-picker/base/OverflowButton.module.css +57 -0
- package/build/esm/cbac-picker/base/OverflowItem.js +64 -0
- package/build/esm/cbac-picker/base/OverflowItem.js.map +1 -0
- package/build/esm/cbac-picker/base/OverflowItem.module.css +75 -0
- package/build/esm/cbac-picker/base/ValidationWarning.js +44 -0
- package/build/esm/cbac-picker/base/ValidationWarning.js.map +1 -0
- package/build/esm/cbac-picker/base/ValidationWarning.module.css +71 -0
- package/build/esm/cbac-picker/base/selectionStateHelpers.js +35 -0
- package/build/esm/cbac-picker/base/selectionStateHelpers.js.map +1 -0
- package/build/esm/cbac-picker/types.js +2 -0
- package/build/esm/cbac-picker/types.js.map +1 -0
- package/build/esm/cbac-picker/useCbacPickerState.js +104 -0
- package/build/esm/cbac-picker/useCbacPickerState.js.map +1 -0
- package/build/esm/cbac-picker/useCbacSelection.js +52 -0
- package/build/esm/cbac-picker/useCbacSelection.js.map +1 -0
- package/build/esm/cbac-picker/useConstraintCallout.js +42 -0
- package/build/esm/cbac-picker/useConstraintCallout.js.map +1 -0
- package/build/esm/cbac-picker/utils/cbacPickerUtils.js +60 -0
- package/build/esm/cbac-picker/utils/cbacPickerUtils.js.map +1 -0
- package/build/esm/cbac-picker/utils/errorMessages.js +78 -0
- package/build/esm/cbac-picker/utils/errorMessages.js.map +1 -0
- package/build/esm/cbac-picker/utils/selectionLogic.js +91 -0
- package/build/esm/cbac-picker/utils/selectionLogic.js.map +1 -0
- package/build/esm/cbac-picker/utils/validationMessages.js +34 -0
- package/build/esm/cbac-picker/utils/validationMessages.js.map +1 -0
- package/build/esm/filter-list/base/inputs/ListogramInput.module.css +2 -5
- package/build/esm/public/experimental/cbac-picker.js +36 -0
- package/build/esm/public/experimental/cbac-picker.js.map +1 -0
- package/build/esm/public/experimental.js +1 -0
- package/build/esm/public/experimental.js.map +1 -1
- package/build/esm/tokens/component-tokens/filter-list.css +2 -2
- package/build/esm/util/UserAgent.js +1 -1
- package/build/esm/util/UserAgent.js.map +1 -1
- package/build/types/cbac-picker/CbacBanner.d.ts +8 -0
- package/build/types/cbac-picker/CbacBanner.d.ts.map +1 -0
- package/build/types/cbac-picker/CbacBannerPopover.d.ts +9 -0
- package/build/types/cbac-picker/CbacBannerPopover.d.ts.map +1 -0
- package/build/types/cbac-picker/CbacPicker.d.ts +10 -0
- package/build/types/cbac-picker/CbacPicker.d.ts.map +1 -0
- package/build/types/cbac-picker/CbacPickerDialog.d.ts +10 -0
- package/build/types/cbac-picker/CbacPickerDialog.d.ts.map +1 -0
- package/build/types/cbac-picker/base/BaseCbacBanner.d.ts +10 -0
- package/build/types/cbac-picker/base/BaseCbacBanner.d.ts.map +1 -0
- package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts +18 -0
- package/build/types/cbac-picker/base/BaseCbacBannerPopover.d.ts.map +1 -0
- package/build/types/cbac-picker/base/BaseCbacPicker.d.ts +18 -0
- package/build/types/cbac-picker/base/BaseCbacPicker.d.ts.map +1 -0
- package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts +11 -0
- package/build/types/cbac-picker/base/BaseCbacPickerDialog.d.ts.map +1 -0
- package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts +15 -0
- package/build/types/cbac-picker/base/CategoryMarkingGroup.d.ts.map +1 -0
- package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts +8 -0
- package/build/types/cbac-picker/base/CbacPickerDialogFooter.d.ts.map +1 -0
- package/build/types/cbac-picker/base/InfoBanner.d.ts +6 -0
- package/build/types/cbac-picker/base/InfoBanner.d.ts.map +1 -0
- package/build/types/cbac-picker/base/MarkingButton.d.ts +11 -0
- package/build/types/cbac-picker/base/MarkingButton.d.ts.map +1 -0
- package/build/types/cbac-picker/base/MaxClassificationField.d.ts +9 -0
- package/build/types/cbac-picker/base/MaxClassificationField.d.ts.map +1 -0
- package/build/types/cbac-picker/base/OverflowButton.d.ts +14 -0
- package/build/types/cbac-picker/base/OverflowButton.d.ts.map +1 -0
- package/build/types/cbac-picker/base/OverflowItem.d.ts +11 -0
- package/build/types/cbac-picker/base/OverflowItem.d.ts.map +1 -0
- package/build/types/cbac-picker/base/ValidationWarning.d.ts +7 -0
- package/build/types/cbac-picker/base/ValidationWarning.d.ts.map +1 -0
- package/build/types/cbac-picker/base/selectionStateHelpers.d.ts +5 -0
- package/build/types/cbac-picker/base/selectionStateHelpers.d.ts.map +1 -0
- package/build/types/cbac-picker/types.d.ts +32 -0
- package/build/types/cbac-picker/types.d.ts.map +1 -0
- package/build/types/cbac-picker/useCbacPickerState.d.ts +14 -0
- package/build/types/cbac-picker/useCbacPickerState.d.ts.map +1 -0
- package/build/types/cbac-picker/useCbacSelection.d.ts +11 -0
- package/build/types/cbac-picker/useCbacSelection.d.ts.map +1 -0
- package/build/types/cbac-picker/useConstraintCallout.d.ts +3 -0
- package/build/types/cbac-picker/useConstraintCallout.d.ts.map +1 -0
- package/build/types/cbac-picker/utils/cbacPickerUtils.d.ts +22 -0
- package/build/types/cbac-picker/utils/cbacPickerUtils.d.ts.map +1 -0
- package/build/types/cbac-picker/utils/errorMessages.d.ts +5 -0
- package/build/types/cbac-picker/utils/errorMessages.d.ts.map +1 -0
- package/build/types/cbac-picker/utils/selectionLogic.d.ts +4 -0
- package/build/types/cbac-picker/utils/selectionLogic.d.ts.map +1 -0
- package/build/types/cbac-picker/utils/validationMessages.d.ts +9 -0
- package/build/types/cbac-picker/utils/validationMessages.d.ts.map +1 -0
- package/build/types/public/experimental/cbac-picker.d.ts +12 -0
- package/build/types/public/experimental/cbac-picker.d.ts.map +1 -0
- package/build/types/public/experimental.d.ts +1 -0
- package/build/types/public/experimental.d.ts.map +1 -1
- package/docs/CbacPicker.md +495 -0
- package/package.json +18 -9
- package/build/cjs/chunk-GKWXRVFO.cjs +0 -11
- package/build/cjs/chunk-JPVZGQXS.cjs +0 -11
- package/build/cjs/chunk-UJXNFENA.cjs +0 -11
- package/build/cjs/chunk-UTB55N5Y.cjs.map +0 -1
- package/build/cjs/chunk-W6C6UWUN.cjs +0 -11
- package/build/cjs/chunk-YLYICFCA.cjs +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCbacPickerState.js","names":["useCbacBanner","useCbacMarkingRestrictions","useMarkingCategories","useMarkings","React","EMPTY_ARRAY","resolveRequiredGroups","computeMarkingStates","groupMarkingsByCategory","EMPTY_GROUPS","useStableArray","arr","ref","useRef","length","current","some","id","i","useCbacPickerState","selectedIds","stableSelectedIds","categories","rawCategories","isLoading","categoriesLoading","error","categoriesError","refetch","refetchCategories","markings","rawMarkings","markingsLoading","markingsError","refetchMarkings","banner","latestBanner","bannerLoading","bannerError","refetchBanner","markingIds","bannerRef","restrictions","restrictionsLoading","restrictionsError","refetchRestrictions","impliedMarkingIds","impliedMarkings","disallowedMarkingIds","disallowedMarkings","requiredMarkingGroups","requiredMarkings","isValid","userSatisfiesMarkings","useMemo","errors","filter","e","AggregateError","map","message","join","retry","useCallback","categoryGroups","undefined","markingStates","resolvedRequiredGroups"],"sources":["useCbacPickerState.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n useCbacBanner,\n useCbacMarkingRestrictions,\n useMarkingCategories,\n useMarkings,\n} from \"@osdk/react/platform-apis\";\nimport React from \"react\";\nimport type {\n CategoryMarkingGroup,\n CbacBannerData,\n MarkingSelectionState,\n RequiredMarkingGroup,\n} from \"./types.js\";\nimport { EMPTY_ARRAY, resolveRequiredGroups } from \"./utils/cbacPickerUtils.js\";\nimport {\n computeMarkingStates,\n groupMarkingsByCategory,\n} from \"./utils/selectionLogic.js\";\n\nconst EMPTY_GROUPS: string[][] = [];\n\nexport interface UseCbacPickerStateResult {\n categoryGroups: CategoryMarkingGroup[];\n markingStates: Map<string, MarkingSelectionState>;\n banner: CbacBannerData | undefined;\n requiredMarkingGroups: RequiredMarkingGroup[];\n isValid: boolean;\n userSatisfiesMarkings: boolean;\n disallowedMarkingIds: readonly string[];\n isLoading: boolean;\n error: Error | undefined;\n retry: () => void;\n}\n\nfunction useStableArray(arr: string[]): string[] {\n const ref = React.useRef(arr);\n if (\n arr.length !== ref.current.length\n || arr.some((id, i) => id !== ref.current[i])\n ) {\n ref.current = arr;\n }\n return ref.current;\n}\n\nexport function useCbacPickerState(\n selectedIds: string[],\n): UseCbacPickerStateResult {\n const stableSelectedIds = useStableArray(selectedIds);\n const {\n categories: rawCategories,\n isLoading: categoriesLoading,\n error: categoriesError,\n refetch: refetchCategories,\n } = useMarkingCategories();\n const {\n markings: rawMarkings,\n isLoading: markingsLoading,\n error: markingsError,\n refetch: refetchMarkings,\n } = useMarkings();\n const {\n banner: latestBanner,\n isLoading: bannerLoading,\n error: bannerError,\n refetch: refetchBanner,\n } = useCbacBanner({ markingIds: stableSelectedIds });\n\n const bannerRef = React.useRef(latestBanner);\n if (latestBanner != null) {\n bannerRef.current = latestBanner;\n }\n const banner = latestBanner ?? bannerRef.current;\n const {\n restrictions,\n isLoading: restrictionsLoading,\n error: restrictionsError,\n refetch: refetchRestrictions,\n } = useCbacMarkingRestrictions({ markingIds: stableSelectedIds });\n\n const impliedMarkingIds = restrictions?.impliedMarkings ?? EMPTY_ARRAY;\n const disallowedMarkingIds = restrictions?.disallowedMarkings ?? EMPTY_ARRAY;\n const requiredMarkingGroups = restrictions?.requiredMarkings ?? EMPTY_GROUPS;\n const isValid = restrictions?.isValid ?? true;\n const userSatisfiesMarkings = restrictions?.userSatisfiesMarkings ?? true;\n\n const isLoading = categoriesLoading || markingsLoading\n || restrictionsLoading || bannerLoading;\n\n const error = React.useMemo(() => {\n const errors = [\n categoriesError,\n markingsError,\n restrictionsError,\n bannerError,\n ].filter((e): e is Error => e != null);\n if (errors.length > 1) {\n return new AggregateError(\n errors,\n errors.map(e => e.message).join(\"; \"),\n );\n }\n return errors[0];\n }, [categoriesError, markingsError, restrictionsError, bannerError]);\n\n const retry = React.useCallback(() => {\n refetchCategories();\n refetchMarkings();\n refetchBanner();\n refetchRestrictions();\n }, [refetchCategories, refetchMarkings, refetchBanner, refetchRestrictions]);\n\n const categoryGroups = React.useMemo(\n (): CategoryMarkingGroup[] => {\n if (rawCategories === undefined || rawMarkings === undefined) {\n return [];\n }\n return groupMarkingsByCategory(rawMarkings, rawCategories);\n },\n [rawMarkings, rawCategories],\n );\n\n const markingStates = React.useMemo(\n () =>\n computeMarkingStates(\n stableSelectedIds,\n impliedMarkingIds,\n disallowedMarkingIds,\n ),\n [stableSelectedIds, impliedMarkingIds, disallowedMarkingIds],\n );\n\n const resolvedRequiredGroups = React.useMemo(\n () => resolveRequiredGroups(categoryGroups, requiredMarkingGroups),\n [categoryGroups, requiredMarkingGroups],\n );\n\n return React.useMemo(\n () => ({\n categoryGroups,\n markingStates,\n banner,\n requiredMarkingGroups: resolvedRequiredGroups,\n isValid,\n userSatisfiesMarkings,\n disallowedMarkingIds,\n isLoading,\n error,\n retry,\n }),\n [\n categoryGroups,\n markingStates,\n banner,\n resolvedRequiredGroups,\n isValid,\n userSatisfiesMarkings,\n disallowedMarkingIds,\n isLoading,\n error,\n retry,\n ],\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import React from "react";
|
|
18
|
+
import { useCbacPickerState } from "./useCbacPickerState.js";
|
|
19
|
+
import { EMPTY_ARRAY } from "./utils/cbacPickerUtils.js";
|
|
20
|
+
import { toggleMarking } from "./utils/selectionLogic.js";
|
|
21
|
+
export function useCbacSelection(initialMarkingIds) {
|
|
22
|
+
const [selectedIds, setSelectedIds] = React.useState(initialMarkingIds ?? EMPTY_ARRAY);
|
|
23
|
+
const [prevInitialIds, setPrevInitialIds] = React.useState(initialMarkingIds);
|
|
24
|
+
if (initialMarkingIds !== prevInitialIds) {
|
|
25
|
+
setPrevInitialIds(initialMarkingIds);
|
|
26
|
+
setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);
|
|
27
|
+
}
|
|
28
|
+
const pickerState = useCbacPickerState(selectedIds);
|
|
29
|
+
const selectedIdsRef = React.useRef(selectedIds);
|
|
30
|
+
selectedIdsRef.current = selectedIds;
|
|
31
|
+
const categoryGroupsRef = React.useRef(pickerState.categoryGroups);
|
|
32
|
+
categoryGroupsRef.current = pickerState.categoryGroups;
|
|
33
|
+
const toggle = React.useCallback(markingId => {
|
|
34
|
+
setSelectedIds(prev => toggleMarking(markingId, prev, categoryGroupsRef.current));
|
|
35
|
+
}, []);
|
|
36
|
+
const dismiss = React.useCallback(() => {
|
|
37
|
+
setSelectedIds(EMPTY_ARRAY);
|
|
38
|
+
}, []);
|
|
39
|
+
const reset = React.useCallback(() => {
|
|
40
|
+
setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);
|
|
41
|
+
}, [initialMarkingIds]);
|
|
42
|
+
return {
|
|
43
|
+
selectedIds,
|
|
44
|
+
selectedIdsRef,
|
|
45
|
+
setSelectedIds,
|
|
46
|
+
...pickerState,
|
|
47
|
+
toggle,
|
|
48
|
+
dismiss,
|
|
49
|
+
reset
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=useCbacSelection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCbacSelection.js","names":["React","useCbacPickerState","EMPTY_ARRAY","toggleMarking","useCbacSelection","initialMarkingIds","selectedIds","setSelectedIds","useState","prevInitialIds","setPrevInitialIds","pickerState","selectedIdsRef","useRef","current","categoryGroupsRef","categoryGroups","toggle","useCallback","markingId","prev","dismiss","reset"],"sources":["useCbacSelection.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport type { CategoryMarkingGroup } from \"./types.js\";\nimport type { UseCbacPickerStateResult } from \"./useCbacPickerState.js\";\nimport { useCbacPickerState } from \"./useCbacPickerState.js\";\nimport { EMPTY_ARRAY } from \"./utils/cbacPickerUtils.js\";\nimport { toggleMarking } from \"./utils/selectionLogic.js\";\n\nexport interface UseCbacSelectionResult extends UseCbacPickerStateResult {\n selectedIds: string[];\n selectedIdsRef: React.MutableRefObject<string[]>;\n setSelectedIds: React.Dispatch<React.SetStateAction<string[]>>;\n toggle: (markingId: string) => void;\n dismiss: () => void;\n reset: () => void;\n}\n\nexport function useCbacSelection(\n initialMarkingIds: string[] | undefined,\n): UseCbacSelectionResult {\n const [selectedIds, setSelectedIds] = React.useState<string[]>(\n initialMarkingIds ?? EMPTY_ARRAY,\n );\n\n const [prevInitialIds, setPrevInitialIds] = React.useState(initialMarkingIds);\n if (initialMarkingIds !== prevInitialIds) {\n setPrevInitialIds(initialMarkingIds);\n setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);\n }\n\n const pickerState = useCbacPickerState(selectedIds);\n\n const selectedIdsRef = React.useRef(selectedIds);\n selectedIdsRef.current = selectedIds;\n\n const categoryGroupsRef = React.useRef<CategoryMarkingGroup[]>(\n pickerState.categoryGroups,\n );\n categoryGroupsRef.current = pickerState.categoryGroups;\n\n const toggle = React.useCallback(\n (markingId: string) => {\n setSelectedIds((prev) =>\n toggleMarking(markingId, prev, categoryGroupsRef.current)\n );\n },\n [],\n );\n\n const dismiss = React.useCallback(() => {\n setSelectedIds(EMPTY_ARRAY);\n }, []);\n\n const reset = React.useCallback(() => {\n setSelectedIds(initialMarkingIds ?? EMPTY_ARRAY);\n }, [initialMarkingIds]);\n\n return {\n selectedIds,\n selectedIdsRef,\n setSelectedIds,\n ...pickerState,\n toggle,\n dismiss,\n reset,\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,aAAa,QAAQ,2BAA2B;AAWzD,OAAO,SAASC,gBAAgBA,CAC9BC,iBAAuC,EACf;EACxB,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGP,KAAK,CAACQ,QAAQ,CAClDH,iBAAiB,IAAIH,WACvB,CAAC;EAED,MAAM,CAACO,cAAc,EAAEC,iBAAiB,CAAC,GAAGV,KAAK,CAACQ,QAAQ,CAACH,iBAAiB,CAAC;EAC7E,IAAIA,iBAAiB,KAAKI,cAAc,EAAE;IACxCC,iBAAiB,CAACL,iBAAiB,CAAC;IACpCE,cAAc,CAACF,iBAAiB,IAAIH,WAAW,CAAC;EAClD;EAEA,MAAMS,WAAW,GAAGV,kBAAkB,CAACK,WAAW,CAAC;EAEnD,MAAMM,cAAc,GAAGZ,KAAK,CAACa,MAAM,CAACP,WAAW,CAAC;EAChDM,cAAc,CAACE,OAAO,GAAGR,WAAW;EAEpC,MAAMS,iBAAiB,GAAGf,KAAK,CAACa,MAAM,CACpCF,WAAW,CAACK,cACd,CAAC;EACDD,iBAAiB,CAACD,OAAO,GAAGH,WAAW,CAACK,cAAc;EAEtD,MAAMC,MAAM,GAAGjB,KAAK,CAACkB,WAAW,CAC7BC,SAAiB,IAAK;IACrBZ,cAAc,CAAEa,IAAI,IAClBjB,aAAa,CAACgB,SAAS,EAAEC,IAAI,EAAEL,iBAAiB,CAACD,OAAO,CAC1D,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAMO,OAAO,GAAGrB,KAAK,CAACkB,WAAW,CAAC,MAAM;IACtCX,cAAc,CAACL,WAAW,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMoB,KAAK,GAAGtB,KAAK,CAACkB,WAAW,CAAC,MAAM;IACpCX,cAAc,CAACF,iBAAiB,IAAIH,WAAW,CAAC;EAClD,CAAC,EAAE,CAACG,iBAAiB,CAAC,CAAC;EAEvB,OAAO;IACLC,WAAW;IACXM,cAAc;IACdL,cAAc;IACd,GAAGI,WAAW;IACdM,MAAM;IACNI,OAAO;IACPC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { useCbacBanner } from "@osdk/react/platform-apis";
|
|
18
|
+
import React from "react";
|
|
19
|
+
import { MaxClassificationField } from "./base/MaxClassificationField.js";
|
|
20
|
+
import { EMPTY_ARRAY, resolveBannerDisplay } from "./utils/cbacPickerUtils.js";
|
|
21
|
+
export function useConstraintCallout(maxClassificationConstraint) {
|
|
22
|
+
const constraintMarkingIds = maxClassificationConstraint?.markingIds ?? EMPTY_ARRAY;
|
|
23
|
+
const {
|
|
24
|
+
banner: constraintBanner
|
|
25
|
+
} = useCbacBanner({
|
|
26
|
+
markingIds: constraintMarkingIds,
|
|
27
|
+
enabled: maxClassificationConstraint != null
|
|
28
|
+
});
|
|
29
|
+
return React.useMemo(() => {
|
|
30
|
+
if (maxClassificationConstraint == null) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const resolved = resolveBannerDisplay(constraintBanner);
|
|
34
|
+
return /*#__PURE__*/React.createElement(MaxClassificationField, {
|
|
35
|
+
classificationString: maxClassificationConstraint.bannerClassificationString,
|
|
36
|
+
textColor: resolved.textColor,
|
|
37
|
+
backgroundColors: resolved.backgroundColors,
|
|
38
|
+
helperText: maxClassificationConstraint.helperText
|
|
39
|
+
});
|
|
40
|
+
}, [maxClassificationConstraint, constraintBanner]);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=useConstraintCallout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConstraintCallout.js","names":["useCbacBanner","React","MaxClassificationField","EMPTY_ARRAY","resolveBannerDisplay","useConstraintCallout","maxClassificationConstraint","constraintMarkingIds","markingIds","banner","constraintBanner","enabled","useMemo","undefined","resolved","createElement","classificationString","bannerClassificationString","textColor","backgroundColors","helperText"],"sources":["useConstraintCallout.tsx"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCbacBanner } from \"@osdk/react/platform-apis\";\nimport React from \"react\";\nimport { MaxClassificationField } from \"./base/MaxClassificationField.js\";\nimport type { MaxClassificationConstraint } from \"./types.js\";\nimport { EMPTY_ARRAY, resolveBannerDisplay } from \"./utils/cbacPickerUtils.js\";\n\nexport function useConstraintCallout(\n maxClassificationConstraint: MaxClassificationConstraint | undefined,\n): React.ReactNode {\n const constraintMarkingIds = maxClassificationConstraint?.markingIds\n ?? EMPTY_ARRAY;\n const { banner: constraintBanner } = useCbacBanner({\n markingIds: constraintMarkingIds,\n enabled: maxClassificationConstraint != null,\n });\n\n return React.useMemo(() => {\n if (maxClassificationConstraint == null) {\n return undefined;\n }\n const resolved = resolveBannerDisplay(constraintBanner);\n return (\n <MaxClassificationField\n classificationString={maxClassificationConstraint\n .bannerClassificationString}\n textColor={resolved.textColor}\n backgroundColors={resolved.backgroundColors}\n helperText={maxClassificationConstraint.helperText}\n />\n );\n }, [maxClassificationConstraint, constraintBanner]);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,sBAAsB,QAAQ,kCAAkC;AAEzE,SAASC,WAAW,EAAEC,oBAAoB,QAAQ,4BAA4B;AAE9E,OAAO,SAASC,oBAAoBA,CAClCC,2BAAoE,EACnD;EACjB,MAAMC,oBAAoB,GAAGD,2BAA2B,EAAEE,UAAU,IAC/DL,WAAW;EAChB,MAAM;IAAEM,MAAM,EAAEC;EAAiB,CAAC,GAAGV,aAAa,CAAC;IACjDQ,UAAU,EAAED,oBAAoB;IAChCI,OAAO,EAAEL,2BAA2B,IAAI;EAC1C,CAAC,CAAC;EAEF,OAAOL,KAAK,CAACW,OAAO,CAAC,MAAM;IACzB,IAAIN,2BAA2B,IAAI,IAAI,EAAE;MACvC,OAAOO,SAAS;IAClB;IACA,MAAMC,QAAQ,GAAGV,oBAAoB,CAACM,gBAAgB,CAAC;IACvD,oBACET,KAAA,CAAAc,aAAA,CAACb,sBAAsB;MACrBc,oBAAoB,EAAEV,2BAA2B,CAC9CW,0BAA2B;MAC9BC,SAAS,EAAEJ,QAAQ,CAACI,SAAU;MAC9BC,gBAAgB,EAAEL,QAAQ,CAACK,gBAAiB;MAC5CC,UAAU,EAAEd,2BAA2B,CAACc;IAAW,CACpD,CAAC;EAEN,CAAC,EAAE,CAACd,2BAA2B,EAAEI,gBAAgB,CAAC,CAAC;AACrD","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const UNMARKED_BACKGROUND_COLORS = ["#8F99A8"];
|
|
18
|
+
const UNMARKED_TEXT_COLOR = "#FFFFFF";
|
|
19
|
+
const UNMARKED_CLASSIFICATION_STRING = "UNMARKED";
|
|
20
|
+
export const EMPTY_ARRAY = [];
|
|
21
|
+
export function backgroundFromColors(backgroundColors) {
|
|
22
|
+
return backgroundColors.length > 1 ? `linear-gradient(to right, ${backgroundColors.join(", ")})` : backgroundColors[0] ?? "transparent";
|
|
23
|
+
}
|
|
24
|
+
export function resolveBannerDisplay(banner) {
|
|
25
|
+
return {
|
|
26
|
+
classificationString: banner?.classificationString ?? UNMARKED_CLASSIFICATION_STRING,
|
|
27
|
+
textColor: banner?.textColor ?? UNMARKED_TEXT_COLOR,
|
|
28
|
+
backgroundColors: banner?.backgroundColors ?? UNMARKED_BACKGROUND_COLORS
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function groupMarkingsByCategory(markingIds, categories, markings) {
|
|
32
|
+
if (markingIds.length === 0 || categories === undefined || markings === undefined) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
const selected = new Set(markingIds);
|
|
36
|
+
const categoryNames = new Map(categories.map(c => [c.id, c.name]));
|
|
37
|
+
const grouped = new Map();
|
|
38
|
+
for (const marking of markings) {
|
|
39
|
+
if (selected.has(marking.id)) {
|
|
40
|
+
const name = categoryNames.get(marking.categoryId) ?? marking.categoryId;
|
|
41
|
+
const list = grouped.get(name);
|
|
42
|
+
if (list !== undefined) {
|
|
43
|
+
list.push(marking.name);
|
|
44
|
+
} else {
|
|
45
|
+
grouped.set(name, [marking.name]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return Array.from(grouped, ([categoryName, markingNames]) => ({
|
|
50
|
+
categoryName,
|
|
51
|
+
markingNames
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
export function resolveRequiredGroups(categoryGroups, requiredMarkingGroups) {
|
|
55
|
+
const markingIdToName = new Map(categoryGroups.flatMap(g => g.markings).map(m => [m.id, m.name]));
|
|
56
|
+
return requiredMarkingGroups.map(ids => ({
|
|
57
|
+
markingNames: ids.map(id => markingIdToName.get(id) ?? id)
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=cbacPickerUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cbacPickerUtils.js","names":["UNMARKED_BACKGROUND_COLORS","UNMARKED_TEXT_COLOR","UNMARKED_CLASSIFICATION_STRING","EMPTY_ARRAY","backgroundFromColors","backgroundColors","length","join","resolveBannerDisplay","banner","classificationString","textColor","groupMarkingsByCategory","markingIds","categories","markings","undefined","selected","Set","categoryNames","Map","map","c","id","name","grouped","marking","has","get","categoryId","list","push","set","Array","from","categoryName","markingNames","resolveRequiredGroups","categoryGroups","requiredMarkingGroups","markingIdToName","flatMap","g","m","ids"],"sources":["cbacPickerUtils.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CategoryMarkingGroup,\n CbacBannerData,\n RequiredMarkingGroup,\n} from \"../types.js\";\nconst UNMARKED_BACKGROUND_COLORS: string[] = [\"#8F99A8\"];\nconst UNMARKED_TEXT_COLOR = \"#FFFFFF\";\nconst UNMARKED_CLASSIFICATION_STRING = \"UNMARKED\";\n\nexport const EMPTY_ARRAY: string[] = [];\n\nexport function backgroundFromColors(backgroundColors: string[]): string {\n return backgroundColors.length > 1\n ? `linear-gradient(to right, ${backgroundColors.join(\", \")})`\n : backgroundColors[0] ?? \"transparent\";\n}\n\nexport interface ResolvedBannerDisplay {\n classificationString: string;\n textColor: string;\n backgroundColors: string[];\n}\n\nexport function resolveBannerDisplay(\n banner: CbacBannerData | undefined,\n): ResolvedBannerDisplay {\n return {\n classificationString: banner?.classificationString\n ?? UNMARKED_CLASSIFICATION_STRING,\n textColor: banner?.textColor ?? UNMARKED_TEXT_COLOR,\n backgroundColors: banner?.backgroundColors ?? UNMARKED_BACKGROUND_COLORS,\n };\n}\n\nexport interface AppliedMarkingGroup {\n categoryName: string;\n markingNames: string[];\n}\n\nexport function groupMarkingsByCategory(\n markingIds: string[],\n categories: ReadonlyArray<{ id: string; name: string }> | undefined,\n markings:\n | ReadonlyArray<{ id: string; name: string; categoryId: string }>\n | undefined,\n): AppliedMarkingGroup[] {\n if (\n markingIds.length === 0 || categories === undefined\n || markings === undefined\n ) {\n return [];\n }\n\n const selected = new Set(markingIds);\n const categoryNames = new Map(categories.map((c) => [c.id, c.name]));\n const grouped = new Map<string, string[]>();\n\n for (const marking of markings) {\n if (selected.has(marking.id)) {\n const name = categoryNames.get(marking.categoryId)\n ?? marking.categoryId;\n const list = grouped.get(name);\n if (list !== undefined) {\n list.push(marking.name);\n } else {\n grouped.set(name, [marking.name]);\n }\n }\n }\n\n return Array.from(grouped, ([categoryName, markingNames]) => ({\n categoryName,\n markingNames,\n }));\n}\n\nexport function resolveRequiredGroups(\n categoryGroups: CategoryMarkingGroup[],\n requiredMarkingGroups: string[][],\n): RequiredMarkingGroup[] {\n const markingIdToName = new Map(\n categoryGroups.flatMap((g) => g.markings).map((m) =>\n [m.id, m.name] as const\n ),\n );\n return requiredMarkingGroups.map((ids) => ({\n markingNames: ids.map((id) => markingIdToName.get(id) ?? id),\n }));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA,MAAMA,0BAAoC,GAAG,CAAC,SAAS,CAAC;AACxD,MAAMC,mBAAmB,GAAG,SAAS;AACrC,MAAMC,8BAA8B,GAAG,UAAU;AAEjD,OAAO,MAAMC,WAAqB,GAAG,EAAE;AAEvC,OAAO,SAASC,oBAAoBA,CAACC,gBAA0B,EAAU;EACvE,OAAOA,gBAAgB,CAACC,MAAM,GAAG,CAAC,GAC9B,6BAA6BD,gBAAgB,CAACE,IAAI,CAAC,IAAI,CAAC,GAAG,GAC3DF,gBAAgB,CAAC,CAAC,CAAC,IAAI,aAAa;AAC1C;AAQA,OAAO,SAASG,oBAAoBA,CAClCC,MAAkC,EACX;EACvB,OAAO;IACLC,oBAAoB,EAAED,MAAM,EAAEC,oBAAoB,IAC7CR,8BAA8B;IACnCS,SAAS,EAAEF,MAAM,EAAEE,SAAS,IAAIV,mBAAmB;IACnDI,gBAAgB,EAAEI,MAAM,EAAEJ,gBAAgB,IAAIL;EAChD,CAAC;AACH;AAOA,OAAO,SAASY,uBAAuBA,CACrCC,UAAoB,EACpBC,UAAmE,EACnEC,QAEa,EACU;EACvB,IACEF,UAAU,CAACP,MAAM,KAAK,CAAC,IAAIQ,UAAU,KAAKE,SAAS,IAChDD,QAAQ,KAAKC,SAAS,EACzB;IACA,OAAO,EAAE;EACX;EAEA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,UAAU,CAAC;EACpC,MAAMM,aAAa,GAAG,IAAIC,GAAG,CAACN,UAAU,CAACO,GAAG,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACC,EAAE,EAAED,CAAC,CAACE,IAAI,CAAC,CAAC,CAAC;EACpE,MAAMC,OAAO,GAAG,IAAIL,GAAG,CAAmB,CAAC;EAE3C,KAAK,MAAMM,OAAO,IAAIX,QAAQ,EAAE;IAC9B,IAAIE,QAAQ,CAACU,GAAG,CAACD,OAAO,CAACH,EAAE,CAAC,EAAE;MAC5B,MAAMC,IAAI,GAAGL,aAAa,CAACS,GAAG,CAACF,OAAO,CAACG,UAAU,CAAC,IAC7CH,OAAO,CAACG,UAAU;MACvB,MAAMC,IAAI,GAAGL,OAAO,CAACG,GAAG,CAACJ,IAAI,CAAC;MAC9B,IAAIM,IAAI,KAAKd,SAAS,EAAE;QACtBc,IAAI,CAACC,IAAI,CAACL,OAAO,CAACF,IAAI,CAAC;MACzB,CAAC,MAAM;QACLC,OAAO,CAACO,GAAG,CAACR,IAAI,EAAE,CAACE,OAAO,CAACF,IAAI,CAAC,CAAC;MACnC;IACF;EACF;EAEA,OAAOS,KAAK,CAACC,IAAI,CAACT,OAAO,EAAE,CAAC,CAACU,YAAY,EAAEC,YAAY,CAAC,MAAM;IAC5DD,YAAY;IACZC;EACF,CAAC,CAAC,CAAC;AACL;AAEA,OAAO,SAASC,qBAAqBA,CACnCC,cAAsC,EACtCC,qBAAiC,EACT;EACxB,MAAMC,eAAe,GAAG,IAAIpB,GAAG,CAC7BkB,cAAc,CAACG,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAAC3B,QAAQ,CAAC,CAACM,GAAG,CAAEsB,CAAC,IAC9C,CAACA,CAAC,CAACpB,EAAE,EAAEoB,CAAC,CAACnB,IAAI,CACf,CACF,CAAC;EACD,OAAOe,qBAAqB,CAAClB,GAAG,CAAEuB,GAAG,KAAM;IACzCR,YAAY,EAAEQ,GAAG,CAACvB,GAAG,CAAEE,EAAE,IAAKiB,eAAe,CAACZ,GAAG,CAACL,EAAE,CAAC,IAAIA,EAAE;EAC7D,CAAC,CAAC,CAAC;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function isApiErrorLike(error) {
|
|
18
|
+
return "statusCode" in error && typeof error.statusCode === "number";
|
|
19
|
+
}
|
|
20
|
+
function formatByStatusCode(error) {
|
|
21
|
+
const statusCode = error.statusCode;
|
|
22
|
+
if (statusCode === 401) {
|
|
23
|
+
return {
|
|
24
|
+
title: "Session expired",
|
|
25
|
+
remediation: "Sign in again to continue."
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (statusCode === 403) {
|
|
29
|
+
return {
|
|
30
|
+
title: "Permission denied",
|
|
31
|
+
remediation: "Contact your administrator for permission."
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (statusCode === 404) {
|
|
35
|
+
return {
|
|
36
|
+
title: "Not found",
|
|
37
|
+
remediation: "The requested classification data could not be found."
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (statusCode !== undefined && statusCode >= 500) {
|
|
41
|
+
return {
|
|
42
|
+
title: "Server error",
|
|
43
|
+
remediation: "Something went wrong. Try again later."
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (typeof error.errorDescription === "string" && error.errorDescription.length > 0) {
|
|
47
|
+
return {
|
|
48
|
+
title: error.errorDescription,
|
|
49
|
+
remediation: ""
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
title: error.message || "Something went wrong",
|
|
54
|
+
remediation: ""
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export function formatCbacError(error) {
|
|
58
|
+
if (error instanceof AggregateError && error.errors.length > 0) {
|
|
59
|
+
const first = error.errors[0];
|
|
60
|
+
if (first instanceof Error) {
|
|
61
|
+
return formatCbacError(first);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (isApiErrorLike(error)) {
|
|
65
|
+
return formatByStatusCode(error);
|
|
66
|
+
}
|
|
67
|
+
if (error.message.toLowerCase().includes("network") || error.message.toLowerCase().includes("fetch")) {
|
|
68
|
+
return {
|
|
69
|
+
title: "Network error",
|
|
70
|
+
remediation: "Check your connection and try again."
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
title: error.message || "Something went wrong",
|
|
75
|
+
remediation: ""
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=errorMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMessages.js","names":["isApiErrorLike","error","statusCode","formatByStatusCode","title","remediation","undefined","errorDescription","length","message","formatCbacError","AggregateError","errors","first","Error","toLowerCase","includes"],"sources":["errorMessages.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface CbacErrorMessage {\n title: string;\n remediation: string;\n}\n\ninterface ApiErrorLike {\n statusCode?: number;\n errorDescription?: string;\n}\n\nfunction isApiErrorLike(error: Error): error is Error & ApiErrorLike {\n return \"statusCode\" in error\n && typeof (error as ApiErrorLike).statusCode === \"number\";\n}\n\nfunction formatByStatusCode(error: Error & ApiErrorLike): CbacErrorMessage {\n const statusCode = error.statusCode;\n if (statusCode === 401) {\n return {\n title: \"Session expired\",\n remediation: \"Sign in again to continue.\",\n };\n }\n if (statusCode === 403) {\n return {\n title: \"Permission denied\",\n remediation: \"Contact your administrator for permission.\",\n };\n }\n if (statusCode === 404) {\n return {\n title: \"Not found\",\n remediation: \"The requested classification data could not be found.\",\n };\n }\n if (statusCode !== undefined && statusCode >= 500) {\n return {\n title: \"Server error\",\n remediation: \"Something went wrong. Try again later.\",\n };\n }\n if (\n typeof error.errorDescription === \"string\"\n && error.errorDescription.length > 0\n ) {\n return {\n title: error.errorDescription,\n remediation: \"\",\n };\n }\n return {\n title: error.message || \"Something went wrong\",\n remediation: \"\",\n };\n}\n\nexport function formatCbacError(error: Error): CbacErrorMessage {\n if (error instanceof AggregateError && error.errors.length > 0) {\n const first = error.errors[0];\n if (first instanceof Error) {\n return formatCbacError(first);\n }\n }\n\n if (isApiErrorLike(error)) {\n return formatByStatusCode(error);\n }\n\n if (\n error.message.toLowerCase().includes(\"network\")\n || error.message.toLowerCase().includes(\"fetch\")\n ) {\n return {\n title: \"Network error\",\n remediation: \"Check your connection and try again.\",\n };\n }\n\n return {\n title: error.message || \"Something went wrong\",\n remediation: \"\",\n };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASA,cAAcA,CAACC,KAAY,EAAiC;EACnE,OAAO,YAAY,IAAIA,KAAK,IACvB,OAAQA,KAAK,CAAkBC,UAAU,KAAK,QAAQ;AAC7D;AAEA,SAASC,kBAAkBA,CAACF,KAA2B,EAAoB;EACzE,MAAMC,UAAU,GAAGD,KAAK,CAACC,UAAU;EACnC,IAAIA,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,iBAAiB;MACxBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,mBAAmB;MAC1BC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAK,GAAG,EAAE;IACtB,OAAO;MACLE,KAAK,EAAE,WAAW;MAClBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IAAIH,UAAU,KAAKI,SAAS,IAAIJ,UAAU,IAAI,GAAG,EAAE;IACjD,OAAO;MACLE,KAAK,EAAE,cAAc;MACrBC,WAAW,EAAE;IACf,CAAC;EACH;EACA,IACE,OAAOJ,KAAK,CAACM,gBAAgB,KAAK,QAAQ,IACvCN,KAAK,CAACM,gBAAgB,CAACC,MAAM,GAAG,CAAC,EACpC;IACA,OAAO;MACLJ,KAAK,EAAEH,KAAK,CAACM,gBAAgB;MAC7BF,WAAW,EAAE;IACf,CAAC;EACH;EACA,OAAO;IACLD,KAAK,EAAEH,KAAK,CAACQ,OAAO,IAAI,sBAAsB;IAC9CJ,WAAW,EAAE;EACf,CAAC;AACH;AAEA,OAAO,SAASK,eAAeA,CAACT,KAAY,EAAoB;EAC9D,IAAIA,KAAK,YAAYU,cAAc,IAAIV,KAAK,CAACW,MAAM,CAACJ,MAAM,GAAG,CAAC,EAAE;IAC9D,MAAMK,KAAK,GAAGZ,KAAK,CAACW,MAAM,CAAC,CAAC,CAAC;IAC7B,IAAIC,KAAK,YAAYC,KAAK,EAAE;MAC1B,OAAOJ,eAAe,CAACG,KAAK,CAAC;IAC/B;EACF;EAEA,IAAIb,cAAc,CAACC,KAAK,CAAC,EAAE;IACzB,OAAOE,kBAAkB,CAACF,KAAK,CAAC;EAClC;EAEA,IACEA,KAAK,CAACQ,OAAO,CAACM,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,SAAS,CAAC,IAC5Cf,KAAK,CAACQ,OAAO,CAACM,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,OAAO,CAAC,EAChD;IACA,OAAO;MACLZ,KAAK,EAAE,eAAe;MACtBC,WAAW,EAAE;IACf,CAAC;EACH;EAEA,OAAO;IACLD,KAAK,EAAEH,KAAK,CAACQ,OAAO,IAAI,sBAAsB;IAC9CJ,WAAW,EAAE;EACf,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export function toggleMarking(markingId, currentSelection, categories) {
|
|
18
|
+
const isSelected = currentSelection.includes(markingId);
|
|
19
|
+
let ownerGroup;
|
|
20
|
+
for (const group of categories) {
|
|
21
|
+
for (const marking of group.markings) {
|
|
22
|
+
if (marking.id === markingId) {
|
|
23
|
+
ownerGroup = group;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (ownerGroup !== undefined) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (ownerGroup === undefined) {
|
|
32
|
+
return currentSelection;
|
|
33
|
+
}
|
|
34
|
+
if (isSelected) {
|
|
35
|
+
return currentSelection.filter(id => id !== markingId);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Disjunctive categories allow only one marking selected at a time (radio-style).
|
|
39
|
+
// Conjunctive categories allow multiple markings (checkbox-style).
|
|
40
|
+
if (ownerGroup.category.categoryType === "DISJUNCTIVE") {
|
|
41
|
+
const sameCategoryMarkingIds = new Set(ownerGroup.markings.map(m => m.id));
|
|
42
|
+
const withoutSameCategory = currentSelection.filter(id => !sameCategoryMarkingIds.has(id));
|
|
43
|
+
return [...withoutSameCategory, markingId];
|
|
44
|
+
}
|
|
45
|
+
return [...currentSelection, markingId];
|
|
46
|
+
}
|
|
47
|
+
export function computeMarkingStates(selectedIds, impliedIds, disallowedIds) {
|
|
48
|
+
const states = new Map();
|
|
49
|
+
const selectedSet = new Set(selectedIds);
|
|
50
|
+
const impliedSet = new Set(impliedIds);
|
|
51
|
+
const disallowedSet = new Set(disallowedIds);
|
|
52
|
+
const allIds = new Set([...selectedIds, ...impliedIds, ...disallowedIds]);
|
|
53
|
+
for (const id of allIds) {
|
|
54
|
+
const isImplied = impliedSet.has(id);
|
|
55
|
+
const isDisallowed = disallowedSet.has(id);
|
|
56
|
+
const isSelected = selectedSet.has(id);
|
|
57
|
+
if (isSelected) {
|
|
58
|
+
states.set(id, "SELECTED");
|
|
59
|
+
} else if (isImplied && isDisallowed) {
|
|
60
|
+
states.set(id, "IMPLIED_DISALLOWED");
|
|
61
|
+
} else if (isImplied) {
|
|
62
|
+
states.set(id, "IMPLIED");
|
|
63
|
+
} else if (isDisallowed) {
|
|
64
|
+
states.set(id, "DISALLOWED");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return states;
|
|
68
|
+
}
|
|
69
|
+
export function groupMarkingsByCategory(markings, categories) {
|
|
70
|
+
const markingsByCategoryId = new Map();
|
|
71
|
+
for (const marking of markings) {
|
|
72
|
+
const existing = markingsByCategoryId.get(marking.categoryId);
|
|
73
|
+
if (existing !== undefined) {
|
|
74
|
+
existing.push(marking);
|
|
75
|
+
} else {
|
|
76
|
+
markingsByCategoryId.set(marking.categoryId, [marking]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const groups = [];
|
|
80
|
+
for (const category of categories) {
|
|
81
|
+
const categoryMarkings = markingsByCategoryId.get(category.id);
|
|
82
|
+
if (categoryMarkings !== undefined && categoryMarkings.length > 0) {
|
|
83
|
+
groups.push({
|
|
84
|
+
category,
|
|
85
|
+
markings: categoryMarkings
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return groups;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=selectionLogic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectionLogic.js","names":["toggleMarking","markingId","currentSelection","categories","isSelected","includes","ownerGroup","group","marking","markings","id","undefined","filter","category","categoryType","sameCategoryMarkingIds","Set","map","m","withoutSameCategory","has","computeMarkingStates","selectedIds","impliedIds","disallowedIds","states","Map","selectedSet","impliedSet","disallowedSet","allIds","isImplied","isDisallowed","set","groupMarkingsByCategory","markingsByCategoryId","existing","get","categoryId","push","groups","categoryMarkings","length"],"sources":["selectionLogic.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n CategoryMarkingGroup,\n MarkingSelectionState,\n PickerMarking,\n PickerMarkingCategory,\n} from \"../types.js\";\n\nexport function toggleMarking(\n markingId: string,\n currentSelection: string[],\n categories: CategoryMarkingGroup[],\n): string[] {\n const isSelected = currentSelection.includes(markingId);\n\n let ownerGroup: CategoryMarkingGroup | undefined;\n for (const group of categories) {\n for (const marking of group.markings) {\n if (marking.id === markingId) {\n ownerGroup = group;\n break;\n }\n }\n if (ownerGroup !== undefined) {\n break;\n }\n }\n\n if (ownerGroup === undefined) {\n return currentSelection;\n }\n\n if (isSelected) {\n return currentSelection.filter((id) => id !== markingId);\n }\n\n // Disjunctive categories allow only one marking selected at a time (radio-style).\n // Conjunctive categories allow multiple markings (checkbox-style).\n if (ownerGroup.category.categoryType === \"DISJUNCTIVE\") {\n const sameCategoryMarkingIds = new Set(\n ownerGroup.markings.map((m) => m.id),\n );\n const withoutSameCategory = currentSelection.filter(\n (id) => !sameCategoryMarkingIds.has(id),\n );\n return [...withoutSameCategory, markingId];\n }\n\n return [...currentSelection, markingId];\n}\n\nexport function computeMarkingStates(\n selectedIds: string[],\n impliedIds: string[],\n disallowedIds: string[],\n): Map<string, MarkingSelectionState> {\n const states = new Map<string, MarkingSelectionState>();\n\n const selectedSet = new Set(selectedIds);\n const impliedSet = new Set(impliedIds);\n const disallowedSet = new Set(disallowedIds);\n\n const allIds = new Set([...selectedIds, ...impliedIds, ...disallowedIds]);\n\n for (const id of allIds) {\n const isImplied = impliedSet.has(id);\n const isDisallowed = disallowedSet.has(id);\n const isSelected = selectedSet.has(id);\n\n if (isSelected) {\n states.set(id, \"SELECTED\");\n } else if (isImplied && isDisallowed) {\n states.set(id, \"IMPLIED_DISALLOWED\");\n } else if (isImplied) {\n states.set(id, \"IMPLIED\");\n } else if (isDisallowed) {\n states.set(id, \"DISALLOWED\");\n }\n }\n\n return states;\n}\n\nexport function groupMarkingsByCategory(\n markings: PickerMarking[],\n categories: PickerMarkingCategory[],\n): CategoryMarkingGroup[] {\n const markingsByCategoryId = new Map<string, PickerMarking[]>();\n\n for (const marking of markings) {\n const existing = markingsByCategoryId.get(marking.categoryId);\n if (existing !== undefined) {\n existing.push(marking);\n } else {\n markingsByCategoryId.set(marking.categoryId, [marking]);\n }\n }\n\n const groups: CategoryMarkingGroup[] = [];\n\n for (const category of categories) {\n const categoryMarkings = markingsByCategoryId.get(category.id);\n if (categoryMarkings !== undefined && categoryMarkings.length > 0) {\n groups.push({ category, markings: categoryMarkings });\n }\n }\n\n return groups;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export function getSubmitDisabledReason(ctx) {
|
|
18
|
+
if (ctx.isValid) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if (ctx.requiredMarkingGroups.length > 0) {
|
|
22
|
+
return "Selected markings do not include all required markings.";
|
|
23
|
+
}
|
|
24
|
+
const selectedSet = new Set(ctx.selectedIds);
|
|
25
|
+
const hasDisallowedSelected = ctx.disallowedMarkingIds.some(id => selectedSet.has(id));
|
|
26
|
+
if (hasDisallowedSelected) {
|
|
27
|
+
return "Selections include disallowed markings.";
|
|
28
|
+
}
|
|
29
|
+
if (!ctx.userSatisfiesMarkings) {
|
|
30
|
+
return "Invalid configuration of markings. Please ensure that you have permission to use all selected markings.";
|
|
31
|
+
}
|
|
32
|
+
return "Invalid marking selection.";
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=validationMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validationMessages.js","names":["getSubmitDisabledReason","ctx","isValid","undefined","requiredMarkingGroups","length","selectedSet","Set","selectedIds","hasDisallowedSelected","disallowedMarkingIds","some","id","has","userSatisfiesMarkings"],"sources":["validationMessages.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { RequiredMarkingGroup } from \"../types.js\";\n\nexport interface ValidationContext {\n isValid: boolean;\n requiredMarkingGroups: ReadonlyArray<RequiredMarkingGroup>;\n selectedIds: string[];\n disallowedMarkingIds: readonly string[];\n userSatisfiesMarkings: boolean;\n}\n\nexport function getSubmitDisabledReason(\n ctx: ValidationContext,\n): string | undefined {\n if (ctx.isValid) {\n return undefined;\n }\n if (ctx.requiredMarkingGroups.length > 0) {\n return \"Selected markings do not include all required markings.\";\n }\n const selectedSet = new Set(ctx.selectedIds);\n const hasDisallowedSelected = ctx.disallowedMarkingIds.some(\n (id) => selectedSet.has(id),\n );\n if (hasDisallowedSelected) {\n return \"Selections include disallowed markings.\";\n }\n if (!ctx.userSatisfiesMarkings) {\n return \"Invalid configuration of markings. Please ensure that you have permission to use all selected markings.\";\n }\n return \"Invalid marking selection.\";\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,OAAO,SAASA,uBAAuBA,CACrCC,GAAsB,EACF;EACpB,IAAIA,GAAG,CAACC,OAAO,EAAE;IACf,OAAOC,SAAS;EAClB;EACA,IAAIF,GAAG,CAACG,qBAAqB,CAACC,MAAM,GAAG,CAAC,EAAE;IACxC,OAAO,yDAAyD;EAClE;EACA,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAACN,GAAG,CAACO,WAAW,CAAC;EAC5C,MAAMC,qBAAqB,GAAGR,GAAG,CAACS,oBAAoB,CAACC,IAAI,CACxDC,EAAE,IAAKN,WAAW,CAACO,GAAG,CAACD,EAAE,CAC5B,CAAC;EACD,IAAIH,qBAAqB,EAAE;IACzB,OAAO,yCAAyC;EAClD;EACA,IAAI,CAACR,GAAG,CAACa,qBAAqB,EAAE;IAC9B,OAAO,yGAAyG;EAClH;EACA,OAAO,4BAA4B;AACrC","ignoreList":[]}
|
|
@@ -113,18 +113,15 @@
|
|
|
113
113
|
height: var(--osdk-filter-listogram-bar-height);
|
|
114
114
|
background: var(--osdk-filter-listogram-bar-bg);
|
|
115
115
|
border-radius: var(--osdk-filter-listogram-bar-border-radius);
|
|
116
|
-
overflow: hidden;
|
|
117
116
|
}
|
|
118
117
|
|
|
119
118
|
.barFill {
|
|
120
119
|
display: block;
|
|
121
120
|
height: 100%;
|
|
122
|
-
width: 100
|
|
121
|
+
width: calc(var(--osdk-filter-listogram-bar-fill-scale, 0) * 100%);
|
|
123
122
|
background: var(--osdk-filter-listogram-row-bar-color, var(--osdk-filter-listogram-bar-color));
|
|
124
123
|
border-radius: var(--osdk-filter-listogram-bar-border-radius);
|
|
125
|
-
|
|
126
|
-
transform: scaleX(var(--osdk-filter-listogram-bar-fill-scale, 0));
|
|
127
|
-
transition: transform var(--osdk-filter-listogram-bar-fill-transition);
|
|
124
|
+
transition: width var(--osdk-filter-listogram-bar-fill-transition);
|
|
128
125
|
}
|
|
129
126
|
|
|
130
127
|
.row[aria-pressed="true"] .barFill {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
// CBAC Picker - OSDK-aware components
|
|
18
|
+
export { CbacBanner } from "../../cbac-picker/CbacBanner.js";
|
|
19
|
+
export { CbacBannerPopover } from "../../cbac-picker/CbacBannerPopover.js";
|
|
20
|
+
import { CbacPicker as _CbacPicker } from "../../cbac-picker/CbacPicker.js";
|
|
21
|
+
import { withOsdkMetrics } from "../../util/withOsdkMetrics.js";
|
|
22
|
+
export const CbacPicker = withOsdkMetrics(_CbacPicker, "CbacPicker");
|
|
23
|
+
export { CbacPickerDialog } from "../../cbac-picker/CbacPickerDialog.js";
|
|
24
|
+
|
|
25
|
+
// CBAC Picker - Base components
|
|
26
|
+
export { BaseCbacBanner } from "../../cbac-picker/base/BaseCbacBanner.js";
|
|
27
|
+
export { BaseCbacPicker } from "../../cbac-picker/base/BaseCbacPicker.js";
|
|
28
|
+
export { BaseCbacPickerDialog } from "../../cbac-picker/base/BaseCbacPickerDialog.js";
|
|
29
|
+
|
|
30
|
+
// CBAC Picker - Selection logic utilities
|
|
31
|
+
export { computeMarkingStates, groupMarkingsByCategory, toggleMarking } from "../../cbac-picker/utils/selectionLogic.js";
|
|
32
|
+
// CBAC Picker - Types
|
|
33
|
+
|
|
34
|
+
// CBAC Picker - MaxClassificationField
|
|
35
|
+
export { MaxClassificationField } from "../../cbac-picker/base/MaxClassificationField.js";
|
|
36
|
+
//# sourceMappingURL=cbac-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cbac-picker.js","names":["CbacBanner","CbacBannerPopover","CbacPicker","_CbacPicker","withOsdkMetrics","CbacPickerDialog","BaseCbacBanner","BaseCbacPicker","BaseCbacPickerDialog","computeMarkingStates","groupMarkingsByCategory","toggleMarking","MaxClassificationField"],"sources":["cbac-picker.ts"],"sourcesContent":["/*\n * Copyright 2026 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// CBAC Picker - OSDK-aware components\nexport { CbacBanner } from \"../../cbac-picker/CbacBanner.js\";\nexport { CbacBannerPopover } from \"../../cbac-picker/CbacBannerPopover.js\";\nimport { CbacPicker as _CbacPicker } from \"../../cbac-picker/CbacPicker.js\";\nimport { withOsdkMetrics } from \"../../util/withOsdkMetrics.js\";\nexport const CbacPicker: typeof _CbacPicker = withOsdkMetrics(\n _CbacPicker,\n \"CbacPicker\",\n);\nexport { CbacPickerDialog } from \"../../cbac-picker/CbacPickerDialog.js\";\n\n// CBAC Picker - Base components\nexport { BaseCbacBanner } from \"../../cbac-picker/base/BaseCbacBanner.js\";\nexport { BaseCbacPicker } from \"../../cbac-picker/base/BaseCbacPicker.js\";\nexport { BaseCbacPickerDialog } from \"../../cbac-picker/base/BaseCbacPickerDialog.js\";\n\n// CBAC Picker - Selection logic utilities\nexport {\n computeMarkingStates,\n groupMarkingsByCategory,\n toggleMarking,\n} from \"../../cbac-picker/utils/selectionLogic.js\";\n// CBAC Picker - Types\nexport type {\n CategoryMarkingGroup,\n CbacBannerData,\n MarkingSelectionState,\n MaxClassificationConstraint,\n PickerMarking,\n PickerMarkingCategory,\n RequiredMarkingGroup,\n} from \"../../cbac-picker/types.js\";\n\n// CBAC Picker - MaxClassificationField\nexport { MaxClassificationField } from \"../../cbac-picker/base/MaxClassificationField.js\";\nexport type { MaxClassificationFieldProps } from \"../../cbac-picker/base/MaxClassificationField.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,SAASC,UAAU,IAAIC,WAAW,QAAQ,iCAAiC;AAC3E,SAASC,eAAe,QAAQ,+BAA+B;AAC/D,OAAO,MAAMF,UAA8B,GAAGE,eAAe,CAC3DD,WAAW,EACX,YACF,CAAC;AACD,SAASE,gBAAgB,QAAQ,uCAAuC;;AAExE;AACA,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,cAAc,QAAQ,0CAA0C;AACzE,SAASC,oBAAoB,QAAQ,gDAAgD;;AAErF;AACA,SACEC,oBAAoB,EACpBC,uBAAuB,EACvBC,aAAa,QACR,2CAA2C;AAClD;;AAWA;AACA,SAASC,sBAAsB,QAAQ,kDAAkD","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
export * from "./experimental/action-form.js";
|
|
18
|
+
export * from "./experimental/cbac-picker.js";
|
|
18
19
|
export * from "./experimental/document-viewer.js";
|
|
19
20
|
export * from "./experimental/email-viewer.js";
|
|
20
21
|
export * from "./experimental/excel-viewer.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.js","names":[],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from \"./experimental/action-form.js\";\nexport * from \"./experimental/document-viewer.js\";\nexport * from \"./experimental/email-viewer.js\";\nexport * from \"./experimental/excel-viewer.js\";\nexport * from \"./experimental/filter-list.js\";\nexport * from \"./experimental/image-viewer.js\";\nexport * from \"./experimental/markdown-renderer.js\";\nexport * from \"./experimental/object-table.js\";\nexport * from \"./experimental/pdf-viewer.js\";\nexport * from \"./experimental/theme.js\";\nexport * from \"./experimental/tiff-renderer.js\";\nexport * from \"./experimental/video-viewer.js\";\nexport * from \"./experimental/xml-viewer.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,+BAA+B;AAC7C,cAAc,mCAAmC;AACjD,cAAc,gCAAgC;AAC9C,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,cAAc,gCAAgC;AAC9C,cAAc,qCAAqC;AACnD,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"experimental.js","names":[],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from \"./experimental/action-form.js\";\nexport * from \"./experimental/cbac-picker.js\";\nexport * from \"./experimental/document-viewer.js\";\nexport * from \"./experimental/email-viewer.js\";\nexport * from \"./experimental/excel-viewer.js\";\nexport * from \"./experimental/filter-list.js\";\nexport * from \"./experimental/image-viewer.js\";\nexport * from \"./experimental/markdown-renderer.js\";\nexport * from \"./experimental/object-table.js\";\nexport * from \"./experimental/pdf-viewer.js\";\nexport * from \"./experimental/theme.js\";\nexport * from \"./experimental/tiff-renderer.js\";\nexport * from \"./experimental/video-viewer.js\";\nexport * from \"./experimental/xml-viewer.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,+BAA+B;AAC7C,cAAc,+BAA+B;AAC7C,cAAc,mCAAmC;AACjD,cAAc,gCAAgC;AAC9C,cAAc,gCAAgC;AAC9C,cAAc,+BAA+B;AAC7C,cAAc,gCAAgC;AAC9C,cAAc,qCAAqC;AACnD,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B;AAC5C,cAAc,yBAAyB;AACvC,cAAc,iCAAiC;AAC/C,cAAc,gCAAgC;AAC9C,cAAc,8BAA8B","ignoreList":[]}
|