diff --git a/src/chart/parameter/component/NodePropertyParameterSelect.tsx b/src/chart/parameter/component/NodePropertyParameterSelect.tsx
index 7ba1095b4..61e9d2ba6 100644
--- a/src/chart/parameter/component/NodePropertyParameterSelect.tsx
+++ b/src/chart/parameter/component/NodePropertyParameterSelect.tsx
@@ -171,6 +171,7 @@ const NodePropertyParameterSelectComponent = (props: ParameterSelectProps) => {
{
}
onCellDoubleClick={(e) => {
let rules = getRule(e, actionsRules, 'doubleClick');
+ let ruleCellCopy = getRule(e, actionsRules, 'ruleCellCopy');
+
+ if (ruleCellCopy?.length > 0) {
+ const fieldDetails = ruleCellCopy.find((rule) => rule.field === e.field);
+ if (fieldDetails) {
+ const regex = new RegExp(fieldDetails?.customizationValue, 'g');
+ setNotificationOpen(true);
+ navigator.clipboard.writeText(e.value.replace(regex, ''));
+ } else {
+ setNotificationOpen(true);
+ navigator.clipboard.writeText(e.value);
+ }
+ return;
+ }
+
if (rules !== null) {
rules.forEach((rule) => executeActionRule(rule, e, { ...props, pageNames: pageNames }, 'table'));
} else {
diff --git a/src/extensions/actions/ActionsRuleCreationModal.tsx b/src/extensions/actions/ActionsRuleCreationModal.tsx
index 52c93b176..d0f2e386c 100644
--- a/src/extensions/actions/ActionsRuleCreationModal.tsx
+++ b/src/extensions/actions/ActionsRuleCreationModal.tsx
@@ -55,6 +55,12 @@ const RULE_CONDITIONS = {
disableFieldSelection: true,
multiple: true,
},
+ {
+ value: 'ruleCellCopy',
+ label: 'Cell Copy',
+ disableFieldSelection: true,
+ multiple: true,
+ },
],
bar: [
{
@@ -375,7 +381,7 @@ export const NeoCustomReportActionsModal = ({
const td2Styling = (type) => ({ width: type === 'bar' ? '15%' : '30%' });
const td2DropdownClassname = (type) => `n-align-middle n-pr-1 ${type === 'bar' ? 'n-w-full' : 'n-w-2/5'}`;
const td2Autocomplete = (type, index, rule) =>
- (type !== 'bar' && rule.condition !== 'rowCheck' ? (
+ type !== 'bar' && rule.condition !== 'rowCheck' ? (
) : (
<>>
- ));
+ );
const td4Styling = (type) => ({ width: type === 'bar' ? '45%' : '40%' });
const td4DropdownClassname = 'n-align-middle, n-w-1/3';
const td6Styling = (type) => ({ width: type === 'bar' ? '30%' : '20%' });
diff --git a/src/index.pcss b/src/index.pcss
index cd76af2f6..02ed49d1a 100644
--- a/src/index.pcss
+++ b/src/index.pcss
@@ -2,6 +2,14 @@
@tailwind components;
@tailwind utilities;
+.anchor {
+ text-decoration: underline;
+ text-decoration-thickness: 2px;
+ text-underline-offset: 4px;
+ text-decoration-color: blue;
+ color: blue;
+}
+
/* Create CSS class based components */
/* https://tailwindcss.com/docs/reusing-styles#extracting-classes-with-apply */
@layer components {
diff --git a/src/report/ReportRecordProcessing.tsx b/src/report/ReportRecordProcessing.tsx
index 55913acd3..2e51213fa 100644
--- a/src/report/ReportRecordProcessing.tsx
+++ b/src/report/ReportRecordProcessing.tsx
@@ -284,6 +284,11 @@ function RenderArray(value, transposedTable = false) {
export function RenderString(value) {
const str = value?.toString() || '';
+
+ if (str.startsWith(';
+ }
+
if (str.startsWith('http') || str.startsWith('https')) {
return (