@j2-health/design-system 0.2.1 → 0.3.1
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/README.md +38 -9
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/src/components/barchart/BarChart.cjs +8 -1
- package/dist/src/components/barchart/BarChart.cjs.map +1 -1
- package/dist/src/components/barchart/BarChart.js +8 -1
- package/dist/src/components/barchart/BarChart.js.map +1 -1
- package/dist/src/components/filterform/FilterInput.cjs +66 -3
- package/dist/src/components/filterform/FilterInput.cjs.map +1 -1
- package/dist/src/components/filterform/FilterInput.d.ts +1 -0
- package/dist/src/components/filterform/FilterInput.js +68 -5
- package/dist/src/components/filterform/FilterInput.js.map +1 -1
- package/dist/src/components/filterform/filterHelpers.cjs +24 -1
- package/dist/src/components/filterform/filterHelpers.cjs.map +1 -1
- package/dist/src/components/filterform/filterHelpers.d.ts +18 -4
- package/dist/src/components/filterform/filterHelpers.js +24 -1
- package/dist/src/components/filterform/filterHelpers.js.map +1 -1
- package/dist/src/components/filterform/index.d.ts +3 -1
- package/dist/src/components/filterform/types.d.ts +4 -2
- package/dist/src/components/filterform/useFilterField.cjs +54 -19
- package/dist/src/components/filterform/useFilterField.cjs.map +1 -1
- package/dist/src/components/filterform/useFilterField.d.ts +17 -1
- package/dist/src/components/filterform/useFilterField.js +55 -20
- package/dist/src/components/filterform/useFilterField.js.map +1 -1
- package/dist/src/components/vennDiagram/VennDiagram.cjs +7 -1
- package/dist/src/components/vennDiagram/VennDiagram.cjs.map +1 -1
- package/dist/src/components/vennDiagram/VennDiagram.js +7 -1
- package/dist/src/components/vennDiagram/VennDiagram.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterField.js","sources":["../../../../src/components/filterform/useFilterField.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n FilterConfig,\n FilterType,\n FormFilter,\n NumberOptionsType,\n Operator,\n SelectOptionsType,\n} from './types'\nimport { validateFormFilter } from './filterHelpers'\nexport type UseFilterFieldInputs = {\n filterConfigs: FilterConfig[]\n filter?: FormFilter\n}\n\ntype UseFilterFieldOutputs = {\n filter: FormFilter | undefined\n config: FilterConfig | undefined\n operatorOptions: { label: string; value: string }[]\n valueInputConfig: ValueInputConfig | undefined\n handleFieldChange: (value: string) => void\n handleOperatorChange: (value: string) => void\n handleValuesChange: (value: (string | number | undefined | null)[]) => void\n}\n\nexport const TypeToOperatorOptions: Record<\n FilterType,\n { label: string; value: Operator }[]\n> = {\n select: [\n { label: 'is any of', value: 'equals' },\n { label: 'is not any of', value: 'notEqual' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n ],\n number: [\n { label: 'is', value: 'equals' },\n { label: 'is not', value: 'notEqual' },\n { label: 'is greater than', value: 'greaterThan' },\n { label: 'is greater than or equal to', value: 'greaterThanOrEqual' },\n { label: 'is less than', value: 'lessThan' },\n { label: 'is less than or equal to', value: 'lessThanOrEqual' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n { label: 'is between', value: 'inRange' },\n ],\n text: [\n { label: 'contains', value: 'contains' },\n { label: 'does not contain', value: 'notContains' },\n { label: 'starts with', value: 'startsWith' },\n { label: 'ends with', value: 'endsWith' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n ],\n}\n\ntype SelectValueInputConfig = {\n type: 'select'\n valueOptions: { label: string; value: string }[]\n}\n\ntype NumberValueInputConfig = {\n type: 'number'\n inputCount: number\n numberOptions?: { max: number; min: number; step: number }\n}\n\ntype TextValueInputConfig = {\n type: 'text'\n}\n\nexport type ValueInputConfig =\n SelectValueInputConfig | NumberValueInputConfig | TextValueInputConfig\n\ntype FilterFieldState = {\n filter: FormFilter | undefined\n filterConfigs: FilterConfig[]\n config: FilterConfig | undefined\n operatorOptions: { label: string; value: string }[]\n valueInputConfig: ValueInputConfig | undefined\n}\n\ntype Action = {\n type: 'setField' | 'setOperator' | 'initialize'\n payload: string | undefined\n}\ntype SetValuesAction = {\n type: 'setValues'\n payload: (string | number | undefined | null)[]\n}\n\nconst buildValueInputConfig = (\n config: FilterConfig,\n operator: string\n): ValueInputConfig | undefined => {\n if (config.type === 'select') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'select',\n valueOptions: (config.options as SelectOptionsType) || [],\n }\n }\n\n if (config.type === 'number') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'number',\n inputCount: operator === 'inRange' ? 2 : 1,\n numberOptions: config.options as NumberOptionsType,\n }\n }\n\n if (config.type === 'text') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'text',\n }\n }\n}\n\nconst filterFieldReducer = (\n state: FilterFieldState,\n action: Action | SetValuesAction\n) => {\n switch (action.type) {\n case 'setField': {\n const config = state.filterConfigs.find(\n (config) => config.field === action.payload\n )\n\n if (!config) return state\n\n const operatorOptions = config ? TypeToOperatorOptions[config.type] : []\n\n const newFilter = {\n ...state.filter,\n type: config.type,\n field: action.payload,\n operator: operatorOptions[0].value,\n values: [],\n } as FormFilter\n\n const pendingFilter = {\n ...newFilter,\n errors: validateFormFilter(newFilter),\n }\n\n return {\n ...state,\n filter: pendingFilter,\n config,\n operatorOptions,\n valueInputConfig:\n operatorOptions.length > 0\n ? buildValueInputConfig(config, operatorOptions[0].value)\n : undefined,\n }\n }\n case 'setOperator': {\n if (!state.config) return state\n if (!action.payload) return state\n\n const pendingFilter = {\n ...state.filter,\n operator: action.payload,\n values: [],\n } as FormFilter\n\n return {\n ...state,\n filter: {\n ...pendingFilter,\n errors: validateFormFilter(pendingFilter),\n },\n valueInputConfig: buildValueInputConfig(state.config, action.payload),\n }\n }\n case 'setValues': {\n if (!state.filter) return state\n\n const values =\n state.filter.type === 'number'\n ? action.payload.map((value) => Number(value))\n : (action.payload.filter(\n (value) => value !== null && value !== undefined\n ) as string[])\n\n const pendingFilter = {\n ...state.filter,\n values: values,\n }\n\n pendingFilter.errors = validateFormFilter(pendingFilter)\n\n return {\n ...state,\n filter: pendingFilter,\n }\n }\n case 'initialize': {\n const field =\n state.filter?.field ||\n state.filterConfigs.find((config) => !config.disabled)?.field\n const config = state.filterConfigs.find(\n (config) => config.field === field\n )\n\n if (!config) return state\n\n const operatorOptions = config ? TypeToOperatorOptions[config.type] : []\n\n const operator = state.filter?.operator || operatorOptions[0].value\n\n const filter =\n state.filter ??\n ({\n field,\n type: config.type,\n operator,\n values: [],\n } as FormFilter)\n\n const errors = validateFormFilter(filter)\n filter.errors = errors\n\n return {\n ...state,\n config,\n filter,\n operatorOptions,\n valueInputConfig:\n operatorOptions.length > 0\n ? buildValueInputConfig(config, operator)\n : undefined,\n }\n }\n default:\n return state\n }\n}\n\nexport const useFilterField = ({\n filterConfigs,\n filter: initialFilter,\n}: UseFilterFieldInputs): UseFilterFieldOutputs => {\n const [{ filter, config, operatorOptions, valueInputConfig }, dispatch] =\n React.useReducer(\n filterFieldReducer,\n {\n filter: initialFilter,\n filterConfigs,\n config: undefined,\n operatorOptions: [],\n valueInputConfig: undefined,\n },\n (state) => {\n return filterFieldReducer(state, {\n type: 'initialize',\n payload: undefined,\n })\n }\n )\n\n const handleFieldChange = (value: string) => {\n dispatch({\n type: 'setField',\n payload: value,\n })\n }\n\n const handleOperatorChange = (value: string) => {\n dispatch({\n type: 'setOperator',\n payload: value,\n })\n }\n\n const handleValuesChange = (\n value: (string | number | undefined | null)[]\n ) => {\n dispatch({\n type: 'setValues',\n payload: value,\n })\n }\n\n return {\n filter,\n config,\n operatorOptions,\n valueInputConfig,\n handleFieldChange,\n handleOperatorChange,\n handleValuesChange,\n }\n}\n"],"names":["config"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFilterField.js","sources":["../../../../src/components/filterform/useFilterField.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n FilterConfig,\n FilterType,\n FormFilter,\n NumberOptionsType,\n Operator,\n SelectOptionsType,\n} from './types'\nimport {\n isMultiValueTextOperator,\n normalizeMultiValues,\n validateFormFilter,\n} from './filterHelpers'\nexport { isMultiValueTextOperator } from './filterHelpers'\nexport type UseFilterFieldInputs = {\n filterConfigs: FilterConfig[]\n filter?: FormFilter\n}\n\ntype UseFilterFieldOutputs = {\n filter: FormFilter | undefined\n config: FilterConfig | undefined\n operatorOptions: { label: string; value: string }[]\n valueInputConfig: ValueInputConfig | undefined\n handleFieldChange: (value: string) => void\n handleOperatorChange: (value: string) => void\n handleValuesChange: (value: (string | number | undefined | null)[]) => void\n}\n\nexport const TypeToOperatorOptions: Record<\n FilterType,\n { label: string; value: Operator }[]\n> = {\n select: [\n { label: 'is any of', value: 'equals' },\n { label: 'is not any of', value: 'notEqual' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n ],\n number: [\n { label: 'is', value: 'equals' },\n { label: 'is not', value: 'notEqual' },\n { label: 'is greater than', value: 'greaterThan' },\n { label: 'is greater than or equal to', value: 'greaterThanOrEqual' },\n { label: 'is less than', value: 'lessThan' },\n { label: 'is less than or equal to', value: 'lessThanOrEqual' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n { label: 'is between', value: 'inRange' },\n ],\n text: [\n { label: 'contains', value: 'contains' },\n { label: 'does not contain', value: 'notContains' },\n { label: 'starts with', value: 'startsWith' },\n { label: 'ends with', value: 'endsWith' },\n { label: 'has no value', value: 'blank' },\n { label: 'has any value', value: 'notBlank' },\n ],\n}\n\n// Multi-value exact-match operators for text fields. Deliberately NOT part of\n// `TypeToOperatorOptions.text`: a field only offers them when its\n// `FilterConfig.operators` lists them, so every existing consumer keeps the\n// operator list it has today (see the `operators` doc in types.ts).\nexport const MultiValueTextOperatorOptions: {\n label: string\n value: Operator\n}[] = [\n { label: 'is any of', value: 'isAnyOf' },\n { label: 'is not any of', value: 'isNoneOf' },\n]\n\n/**\n * Operator options a field offers: its type's default list unless the config\n * names its own (`operators`), in which case that list — in the given order,\n * dropping anything the type can't express. `operators` may therefore both\n * narrow the defaults and add the opt-in multi-value text operators.\n */\nexport const operatorOptionsFor = (\n config: FilterConfig\n): { label: string; value: Operator }[] => {\n const defaults = TypeToOperatorOptions[config.type]\n if (!config.operators) return defaults\n const known =\n config.type === 'text'\n ? [...defaults, ...MultiValueTextOperatorOptions]\n : defaults\n return config.operators.flatMap((operator) => {\n const option = known.find((candidate) => candidate.value === operator)\n return option ? [option] : []\n })\n}\n\ntype SelectValueInputConfig = {\n type: 'select'\n valueOptions: { label: string; value: string }[]\n}\n\ntype NumberValueInputConfig = {\n type: 'number'\n inputCount: number\n numberOptions?: { max: number; min: number; step: number }\n}\n\ntype TextValueInputConfig = {\n type: 'text'\n // True for `isAnyOf` / `isNoneOf`: the value input is a chips list rather\n // than a single text box. `maxValues` is the config's cap, if any.\n multiValue?: boolean\n maxValues?: number\n}\n\nexport type ValueInputConfig =\n SelectValueInputConfig | NumberValueInputConfig | TextValueInputConfig\n\ntype FilterFieldState = {\n filter: FormFilter | undefined\n filterConfigs: FilterConfig[]\n config: FilterConfig | undefined\n operatorOptions: { label: string; value: string }[]\n valueInputConfig: ValueInputConfig | undefined\n}\n\ntype Action = {\n type: 'setField' | 'setOperator' | 'initialize'\n payload: string | undefined\n}\ntype SetValuesAction = {\n type: 'setValues'\n payload: (string | number | undefined | null)[]\n}\n\nconst buildValueInputConfig = (\n config: FilterConfig,\n operator: string\n): ValueInputConfig | undefined => {\n if (config.type === 'select') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'select',\n valueOptions: (config.options as SelectOptionsType) || [],\n }\n }\n\n if (config.type === 'number') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'number',\n inputCount: operator === 'inRange' ? 2 : 1,\n numberOptions: config.options as NumberOptionsType,\n }\n }\n\n if (config.type === 'text') {\n if (operator === 'blank' || operator === 'notBlank') return\n\n return {\n type: 'text',\n multiValue: isMultiValueTextOperator(operator),\n maxValues: config.maxValues,\n }\n }\n}\n\nconst filterFieldReducer = (\n state: FilterFieldState,\n action: Action | SetValuesAction\n) => {\n switch (action.type) {\n case 'setField': {\n const config = state.filterConfigs.find(\n (config) => config.field === action.payload\n )\n\n if (!config) return state\n\n const operatorOptions = operatorOptionsFor(config)\n\n const newFilter = {\n ...state.filter,\n type: config.type,\n field: action.payload,\n operator: operatorOptions[0]?.value,\n values: [],\n } as FormFilter\n\n const pendingFilter = {\n ...newFilter,\n errors: validateFormFilter(newFilter, config),\n }\n\n return {\n ...state,\n filter: pendingFilter,\n config,\n operatorOptions,\n valueInputConfig:\n operatorOptions.length > 0\n ? buildValueInputConfig(config, operatorOptions[0].value)\n : undefined,\n }\n }\n case 'setOperator': {\n if (!state.config) return state\n if (!action.payload) return state\n\n const pendingFilter = {\n ...state.filter,\n operator: action.payload,\n values: [],\n } as FormFilter\n\n return {\n ...state,\n filter: {\n ...pendingFilter,\n errors: validateFormFilter(pendingFilter, state.config),\n },\n valueInputConfig: buildValueInputConfig(state.config, action.payload),\n }\n }\n case 'setValues': {\n if (!state.filter) return state\n\n const values =\n state.filter.type === 'number'\n ? action.payload.map((value) => Number(value))\n : isMultiValueTextOperator(state.filter.operator)\n ? // Normalized on the way into state, not just for display —\n // validation counts and `onSubmit` emit exactly these chips.\n normalizeMultiValues(action.payload)\n : (action.payload.filter(\n (value) => value !== null && value !== undefined\n ) as string[])\n\n const pendingFilter = {\n ...state.filter,\n values: values,\n }\n\n pendingFilter.errors = validateFormFilter(pendingFilter, state.config)\n\n return {\n ...state,\n filter: pendingFilter,\n }\n }\n case 'initialize': {\n const field =\n state.filter?.field ||\n state.filterConfigs.find((config) => !config.disabled)?.field\n const config = state.filterConfigs.find(\n (config) => config.field === field\n )\n\n if (!config) return state\n\n const operatorOptions = operatorOptionsFor(config)\n\n // A persisted filter's operator must still be one this field offers.\n // Configs change between sessions (a field narrowed to `contains`, or\n // one that never opted into the multi-value operators), and the\n // backend may not understand a stale operator — so it falls back to\n // the field's first operator with its values cleared, rather than\n // re-submitting something the config no longer allows.\n const persisted = state.filter?.operator\n const persistedAllowed =\n persisted !== undefined &&\n operatorOptions.some((option) => option.value === persisted)\n const operator = persistedAllowed ? persisted : operatorOptions[0]?.value\n\n let filter: FormFilter\n if (!state.filter) {\n filter = {\n field,\n type: config.type,\n operator,\n values: [],\n } as FormFilter\n } else if (!persistedAllowed) {\n filter = { ...state.filter, operator, values: [] } as FormFilter\n } else if (isMultiValueTextOperator(operator)) {\n // Same normalization as `setValues`, so a persisted chip list that\n // predates it (or was hand-edited) can't show one chip and count two.\n filter = {\n ...state.filter,\n values: normalizeMultiValues(state.filter.values),\n }\n } else {\n // A copy: the incoming object is the caller's, and writing `errors`\n // onto it would hide the correction from `FilterInput`'s comparison\n // of what it was given against what it initialized to.\n filter = { ...state.filter }\n }\n\n filter.errors = validateFormFilter(filter, config)\n\n return {\n ...state,\n config,\n filter,\n operatorOptions,\n valueInputConfig:\n operatorOptions.length > 0\n ? buildValueInputConfig(config, operator)\n : undefined,\n }\n }\n default:\n return state\n }\n}\n\nexport const useFilterField = ({\n filterConfigs,\n filter: initialFilter,\n}: UseFilterFieldInputs): UseFilterFieldOutputs => {\n const [{ filter, config, operatorOptions, valueInputConfig }, dispatch] =\n React.useReducer(\n filterFieldReducer,\n {\n filter: initialFilter,\n filterConfigs,\n config: undefined,\n operatorOptions: [],\n valueInputConfig: undefined,\n },\n (state) => {\n return filterFieldReducer(state, {\n type: 'initialize',\n payload: undefined,\n })\n }\n )\n\n const handleFieldChange = (value: string) => {\n dispatch({\n type: 'setField',\n payload: value,\n })\n }\n\n const handleOperatorChange = (value: string) => {\n dispatch({\n type: 'setOperator',\n payload: value,\n })\n }\n\n const handleValuesChange = (\n value: (string | number | undefined | null)[]\n ) => {\n dispatch({\n type: 'setValues',\n payload: value,\n })\n }\n\n return {\n filter,\n config,\n operatorOptions,\n valueInputConfig,\n handleFieldChange,\n handleOperatorChange,\n handleValuesChange,\n }\n}\n"],"names":["config"],"mappings":"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"}
|
|
@@ -41,7 +41,13 @@ const VennDiagram = ({ data, title, tooltip, onClick }) => {
|
|
|
41
41
|
}
|
|
42
42
|
]
|
|
43
43
|
};
|
|
44
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
+
react.Chart,
|
|
46
|
+
{
|
|
47
|
+
options,
|
|
48
|
+
containerProps: { className: "highcharts-light" }
|
|
49
|
+
}
|
|
50
|
+
);
|
|
45
51
|
};
|
|
46
52
|
exports.VennDiagram = VennDiagram;
|
|
47
53
|
//# sourceMappingURL=VennDiagram.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VennDiagram.cjs","sources":["../../../../src/components/vennDiagram/VennDiagram.tsx"],"sourcesContent":["import type * as Highcharts from 'highcharts'\nimport { Chart as HighchartsReact } from '@highcharts/react'\nimport '@highcharts/react/series/Venn.js'\nimport '@highcharts/react/options/Accessibility.js'\nimport { theme } from 'antd'\n\ntype Props = {\n data: Highcharts.PointOptionsObject[]\n title?: string\n tooltip?: Highcharts.TooltipOptions\n onClick?: Highcharts.SeriesClickCallbackFunction\n}\n\nexport const VennDiagram = ({ data, title, tooltip, onClick }: Props) => {\n const { token } = theme.useToken()\n\n const baseFont: Highcharts.CSSObject = {\n fontSize: `${token.fontSize}px`,\n fontFamily: token.fontFamily,\n color: token.colorText,\n textOutline: 'none',\n opacity: 1,\n }\n\n const options: Highcharts.Options = {\n title: {\n text: title,\n },\n ...(tooltip ? { tooltip } : {}),\n chart: {\n spacing: [36, 36, 36, 36],\n },\n series: [\n {\n type: 'venn',\n data,\n events: {\n click: onClick,\n },\n cursor: onClick ? 'pointer' : undefined,\n dataLabels: {\n style: baseFont,\n },\n states: {\n inactive: {\n opacity: 0.3,\n },\n },\n },\n ],\n }\n\n return <HighchartsReact
|
|
1
|
+
{"version":3,"file":"VennDiagram.cjs","sources":["../../../../src/components/vennDiagram/VennDiagram.tsx"],"sourcesContent":["import type * as Highcharts from 'highcharts'\nimport { Chart as HighchartsReact } from '@highcharts/react'\nimport '@highcharts/react/series/Venn.js'\nimport '@highcharts/react/options/Accessibility.js'\nimport { theme } from 'antd'\n\ntype Props = {\n data: Highcharts.PointOptionsObject[]\n title?: string\n tooltip?: Highcharts.TooltipOptions\n onClick?: Highcharts.SeriesClickCallbackFunction\n}\n\nexport const VennDiagram = ({ data, title, tooltip, onClick }: Props) => {\n const { token } = theme.useToken()\n\n const baseFont: Highcharts.CSSObject = {\n fontSize: `${token.fontSize}px`,\n fontFamily: token.fontFamily,\n color: token.colorText,\n textOutline: 'none',\n opacity: 1,\n }\n\n const options: Highcharts.Options = {\n title: {\n text: title,\n },\n ...(tooltip ? { tooltip } : {}),\n chart: {\n spacing: [36, 36, 36, 36],\n },\n series: [\n {\n type: 'venn',\n data,\n events: {\n click: onClick,\n },\n cursor: onClick ? 'pointer' : undefined,\n dataLabels: {\n style: baseFont,\n },\n states: {\n inactive: {\n opacity: 0.3,\n },\n },\n },\n ],\n }\n\n return (\n <HighchartsReact\n options={options}\n containerProps={{ className: 'highcharts-light' }}\n />\n )\n}\n"],"names":["theme","jsx","HighchartsReact"],"mappings":";;;;;;;AAaO,MAAM,cAAc,CAAC,EAAE,MAAM,OAAO,SAAS,cAAqB;AACvE,QAAM,EAAE,MAAA,IAAUA,KAAAA,MAAM,SAAA;AAExB,QAAM,WAAiC;AAAA,IACrC,UAAU,GAAG,MAAM,QAAQ;AAAA,IAC3B,YAAY,MAAM;AAAA,IAClB,OAAO,MAAM;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EAAA;AAGX,QAAM,UAA8B;AAAA,IAClC,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,IAER,GAAI,UAAU,EAAE,QAAA,IAAY,CAAA;AAAA,IAC5B,OAAO;AAAA,MACL,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,IAAA;AAAA,IAE1B,QAAQ;AAAA,MACN;AAAA,QACE,MAAM;AAAA,QACN;AAAA,QACA,QAAQ;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ,UAAU,YAAY;AAAA,QAC9B,YAAY;AAAA,UACV,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ;AAAA,UACN,UAAU;AAAA,YACR,SAAS;AAAA,UAAA;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGF,SACEC,2BAAAA;AAAAA,IAACC,MAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA,gBAAgB,EAAE,WAAW,mBAAA;AAAA,IAAmB;AAAA,EAAA;AAGtD;;"}
|
|
@@ -39,7 +39,13 @@ const VennDiagram = ({ data, title, tooltip, onClick }) => {
|
|
|
39
39
|
}
|
|
40
40
|
]
|
|
41
41
|
};
|
|
42
|
-
return /* @__PURE__ */ jsx(
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
Chart,
|
|
44
|
+
{
|
|
45
|
+
options,
|
|
46
|
+
containerProps: { className: "highcharts-light" }
|
|
47
|
+
}
|
|
48
|
+
);
|
|
43
49
|
};
|
|
44
50
|
export {
|
|
45
51
|
VennDiagram
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VennDiagram.js","sources":["../../../../src/components/vennDiagram/VennDiagram.tsx"],"sourcesContent":["import type * as Highcharts from 'highcharts'\nimport { Chart as HighchartsReact } from '@highcharts/react'\nimport '@highcharts/react/series/Venn.js'\nimport '@highcharts/react/options/Accessibility.js'\nimport { theme } from 'antd'\n\ntype Props = {\n data: Highcharts.PointOptionsObject[]\n title?: string\n tooltip?: Highcharts.TooltipOptions\n onClick?: Highcharts.SeriesClickCallbackFunction\n}\n\nexport const VennDiagram = ({ data, title, tooltip, onClick }: Props) => {\n const { token } = theme.useToken()\n\n const baseFont: Highcharts.CSSObject = {\n fontSize: `${token.fontSize}px`,\n fontFamily: token.fontFamily,\n color: token.colorText,\n textOutline: 'none',\n opacity: 1,\n }\n\n const options: Highcharts.Options = {\n title: {\n text: title,\n },\n ...(tooltip ? { tooltip } : {}),\n chart: {\n spacing: [36, 36, 36, 36],\n },\n series: [\n {\n type: 'venn',\n data,\n events: {\n click: onClick,\n },\n cursor: onClick ? 'pointer' : undefined,\n dataLabels: {\n style: baseFont,\n },\n states: {\n inactive: {\n opacity: 0.3,\n },\n },\n },\n ],\n }\n\n return <HighchartsReact
|
|
1
|
+
{"version":3,"file":"VennDiagram.js","sources":["../../../../src/components/vennDiagram/VennDiagram.tsx"],"sourcesContent":["import type * as Highcharts from 'highcharts'\nimport { Chart as HighchartsReact } from '@highcharts/react'\nimport '@highcharts/react/series/Venn.js'\nimport '@highcharts/react/options/Accessibility.js'\nimport { theme } from 'antd'\n\ntype Props = {\n data: Highcharts.PointOptionsObject[]\n title?: string\n tooltip?: Highcharts.TooltipOptions\n onClick?: Highcharts.SeriesClickCallbackFunction\n}\n\nexport const VennDiagram = ({ data, title, tooltip, onClick }: Props) => {\n const { token } = theme.useToken()\n\n const baseFont: Highcharts.CSSObject = {\n fontSize: `${token.fontSize}px`,\n fontFamily: token.fontFamily,\n color: token.colorText,\n textOutline: 'none',\n opacity: 1,\n }\n\n const options: Highcharts.Options = {\n title: {\n text: title,\n },\n ...(tooltip ? { tooltip } : {}),\n chart: {\n spacing: [36, 36, 36, 36],\n },\n series: [\n {\n type: 'venn',\n data,\n events: {\n click: onClick,\n },\n cursor: onClick ? 'pointer' : undefined,\n dataLabels: {\n style: baseFont,\n },\n states: {\n inactive: {\n opacity: 0.3,\n },\n },\n },\n ],\n }\n\n return (\n <HighchartsReact\n options={options}\n containerProps={{ className: 'highcharts-light' }}\n />\n )\n}\n"],"names":["HighchartsReact"],"mappings":";;;;;AAaO,MAAM,cAAc,CAAC,EAAE,MAAM,OAAO,SAAS,cAAqB;AACvE,QAAM,EAAE,MAAA,IAAU,MAAM,SAAA;AAExB,QAAM,WAAiC;AAAA,IACrC,UAAU,GAAG,MAAM,QAAQ;AAAA,IAC3B,YAAY,MAAM;AAAA,IAClB,OAAO,MAAM;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EAAA;AAGX,QAAM,UAA8B;AAAA,IAClC,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,IAER,GAAI,UAAU,EAAE,QAAA,IAAY,CAAA;AAAA,IAC5B,OAAO;AAAA,MACL,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE;AAAA,IAAA;AAAA,IAE1B,QAAQ;AAAA,MACN;AAAA,QACE,MAAM;AAAA,QACN;AAAA,QACA,QAAQ;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ,UAAU,YAAY;AAAA,QAC9B,YAAY;AAAA,UACV,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ;AAAA,UACN,UAAU;AAAA,YACR,SAAS;AAAA,UAAA;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGF,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA,gBAAgB,EAAE,WAAW,mBAAA;AAAA,IAAmB;AAAA,EAAA;AAGtD;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j2-health/design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "J2 Health shared React component library",
|
|
6
6
|
"repository": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"classnames": "^2.5.1",
|
|
60
60
|
"formik": "^2.4.6",
|
|
61
61
|
"formik-antd": "^3.0.0-beta.9",
|
|
62
|
-
"highcharts": "^12.5.0",
|
|
62
|
+
"highcharts": "^12.5.0 || ^13.0.1",
|
|
63
63
|
"lodash": "^4.17.0",
|
|
64
64
|
"react": "^18.3.1",
|
|
65
65
|
"react-dom": "^18.3.1",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@ant-design/icons": "^5.6.1",
|
|
70
|
-
"@chromatic-com/storybook": "^5.
|
|
70
|
+
"@chromatic-com/storybook": "^5.3.0",
|
|
71
71
|
"@eslint/js": "^9.11.1",
|
|
72
72
|
"@highcharts/react": "^4.2.1",
|
|
73
73
|
"@phosphor-icons/react": "^2.1.7",
|
|
@@ -86,17 +86,17 @@
|
|
|
86
86
|
"autoprefixer": "^10.4.20",
|
|
87
87
|
"classnames": "^2.5.1",
|
|
88
88
|
"eslint": "^9.39.0",
|
|
89
|
-
"eslint-config-prettier": "^
|
|
89
|
+
"eslint-config-prettier": "^10.1.8",
|
|
90
90
|
"eslint-plugin-import": "^2.31.0",
|
|
91
91
|
"eslint-plugin-react": "^7.37.2",
|
|
92
92
|
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
|
|
93
93
|
"eslint-plugin-react-refresh": "^0.4.14",
|
|
94
|
-
"eslint-plugin-storybook": "^10.
|
|
94
|
+
"eslint-plugin-storybook": "^10.5.10",
|
|
95
95
|
"formik": "^2.4.6",
|
|
96
96
|
"formik-antd": "^3.0.0-beta.9",
|
|
97
97
|
"globals": "^15.9.0",
|
|
98
98
|
"happy-dom": "^20.9.0",
|
|
99
|
-
"highcharts": "^
|
|
99
|
+
"highcharts": "^13.0.1",
|
|
100
100
|
"lodash": "^4.18.1",
|
|
101
101
|
"postcss": "^8.5.26",
|
|
102
102
|
"prettier": "^3.3.3",
|