@perses-dev/dashboards 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/DashboardToolbar/DashboardToolbar.js +18 -5
- package/dist/cjs/components/DeletePanelDialog/DeletePanelDialog.js +2 -0
- package/dist/cjs/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +2 -0
- package/dist/cjs/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +74 -0
- package/dist/cjs/components/{UnsavedChangesConfirmationDialog → DiscardChangesConfirmationDialog}/index.js +1 -1
- package/dist/cjs/components/GridLayout/GridTitle.js +38 -22
- package/dist/cjs/components/Panel/PanelHeader.js +59 -26
- package/dist/cjs/components/PanelDrawer/PanelDrawer.js +29 -8
- package/dist/cjs/components/PanelDrawer/PanelEditorForm.js +11 -6
- package/dist/cjs/components/TimeRangeControls/TimeRangeControls.js +9 -2
- package/dist/cjs/components/Variables/Variable.js +5 -3
- package/dist/cjs/components/Variables/VariableEditor.js +123 -104
- package/dist/cjs/components/Variables/VariableEditorForm/VariableEditorForm.js +69 -57
- package/dist/cjs/components/Variables/VariableList.js +7 -20
- package/dist/cjs/components/Variables/variable-model.js +12 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/context/DashboardProvider/DashboardProvider.js +2 -0
- package/dist/cjs/context/DashboardProvider/dashboard-provider-api.js +10 -1
- package/dist/cjs/context/DashboardProvider/discard-changes-dialog-slice.js +33 -0
- package/dist/cjs/views/ViewDashboard/DashboardApp.js +14 -14
- package/dist/cjs/views/ViewDashboard/ViewDashboard.js +2 -1
- package/dist/components/DashboardToolbar/DashboardToolbar.d.ts +2 -0
- package/dist/components/DashboardToolbar/DashboardToolbar.d.ts.map +1 -1
- package/dist/components/DashboardToolbar/DashboardToolbar.js +19 -6
- package/dist/components/DashboardToolbar/DashboardToolbar.js.map +1 -1
- package/dist/components/DeletePanelDialog/DeletePanelDialog.js +2 -0
- package/dist/components/DeletePanelDialog/DeletePanelDialog.js.map +1 -1
- package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.d.ts.map +1 -1
- package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js +2 -0
- package/dist/components/DeletePanelGroupDialog/DeletePanelGroupDialog.js.map +1 -1
- package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts +3 -0
- package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.d.ts.map +1 -0
- package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js +63 -0
- package/dist/components/DiscardChangesConfirmationDialog/DiscardChangesConfirmationDialog.js.map +1 -0
- package/dist/components/DiscardChangesConfirmationDialog/index.d.ts +2 -0
- package/dist/components/DiscardChangesConfirmationDialog/index.d.ts.map +1 -0
- package/dist/components/{UnsavedChangesConfirmationDialog → DiscardChangesConfirmationDialog}/index.js +1 -1
- package/dist/components/{UnsavedChangesConfirmationDialog → DiscardChangesConfirmationDialog}/index.js.map +1 -1
- package/dist/components/GridLayout/GridTitle.d.ts.map +1 -1
- package/dist/components/GridLayout/GridTitle.js +38 -22
- package/dist/components/GridLayout/GridTitle.js.map +1 -1
- package/dist/components/Panel/PanelHeader.d.ts.map +1 -1
- package/dist/components/Panel/PanelHeader.js +61 -28
- package/dist/components/Panel/PanelHeader.js.map +1 -1
- package/dist/components/PanelDrawer/PanelDrawer.d.ts.map +1 -1
- package/dist/components/PanelDrawer/PanelDrawer.js +32 -11
- package/dist/components/PanelDrawer/PanelDrawer.js.map +1 -1
- package/dist/components/PanelDrawer/PanelEditorForm.d.ts +1 -1
- package/dist/components/PanelDrawer/PanelEditorForm.d.ts.map +1 -1
- package/dist/components/PanelDrawer/PanelEditorForm.js +12 -7
- package/dist/components/PanelDrawer/PanelEditorForm.js.map +1 -1
- package/dist/components/TimeRangeControls/TimeRangeControls.d.ts +5 -1
- package/dist/components/TimeRangeControls/TimeRangeControls.d.ts.map +1 -1
- package/dist/components/TimeRangeControls/TimeRangeControls.js +9 -2
- package/dist/components/TimeRangeControls/TimeRangeControls.js.map +1 -1
- package/dist/components/Variables/Variable.js +5 -3
- package/dist/components/Variables/Variable.js.map +1 -1
- package/dist/components/Variables/VariableEditor.d.ts.map +1 -1
- package/dist/components/Variables/VariableEditor.js +121 -102
- package/dist/components/Variables/VariableEditor.js.map +1 -1
- package/dist/components/Variables/VariableEditorForm/VariableEditorForm.d.ts.map +1 -1
- package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js +70 -58
- package/dist/components/Variables/VariableEditorForm/VariableEditorForm.js.map +1 -1
- package/dist/components/Variables/VariableList.d.ts.map +1 -1
- package/dist/components/Variables/VariableList.js +7 -20
- package/dist/components/Variables/VariableList.js.map +1 -1
- package/dist/components/Variables/variable-model.d.ts +7 -0
- package/dist/components/Variables/variable-model.d.ts.map +1 -1
- package/dist/components/Variables/variable-model.js +10 -0
- package/dist/components/Variables/variable-model.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/context/DashboardProvider/DashboardProvider.d.ts +2 -1
- package/dist/context/DashboardProvider/DashboardProvider.d.ts.map +1 -1
- package/dist/context/DashboardProvider/DashboardProvider.js +2 -0
- package/dist/context/DashboardProvider/DashboardProvider.js.map +1 -1
- package/dist/context/DashboardProvider/dashboard-provider-api.d.ts +5 -0
- package/dist/context/DashboardProvider/dashboard-provider-api.d.ts.map +1 -1
- package/dist/context/DashboardProvider/dashboard-provider-api.js +8 -0
- package/dist/context/DashboardProvider/dashboard-provider-api.js.map +1 -1
- package/dist/context/DashboardProvider/discard-changes-dialog-slice.d.ts +15 -0
- package/dist/context/DashboardProvider/discard-changes-dialog-slice.d.ts.map +1 -0
- package/dist/context/DashboardProvider/discard-changes-dialog-slice.js +27 -0
- package/dist/context/DashboardProvider/discard-changes-dialog-slice.js.map +1 -0
- package/dist/context/DashboardProvider/index.d.ts +1 -0
- package/dist/context/DashboardProvider/index.d.ts.map +1 -1
- package/dist/context/DashboardProvider/index.js.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.d.ts +1 -0
- package/dist/views/ViewDashboard/DashboardApp.d.ts.map +1 -1
- package/dist/views/ViewDashboard/DashboardApp.js +16 -16
- package/dist/views/ViewDashboard/DashboardApp.js.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.d.ts +1 -0
- package/dist/views/ViewDashboard/ViewDashboard.d.ts.map +1 -1
- package/dist/views/ViewDashboard/ViewDashboard.js +2 -1
- package/dist/views/ViewDashboard/ViewDashboard.js.map +1 -1
- package/package.json +4 -4
- package/dist/cjs/components/UnsavedChangesConfirmationDialog/UnsavedChangesConfirmationDialog.js +0 -67
- package/dist/components/UnsavedChangesConfirmationDialog/UnsavedChangesConfirmationDialog.d.ts +0 -8
- package/dist/components/UnsavedChangesConfirmationDialog/UnsavedChangesConfirmationDialog.d.ts.map +0 -1
- package/dist/components/UnsavedChangesConfirmationDialog/UnsavedChangesConfirmationDialog.js +0 -56
- package/dist/components/UnsavedChangesConfirmationDialog/UnsavedChangesConfirmationDialog.js.map +0 -1
- package/dist/components/UnsavedChangesConfirmationDialog/index.d.ts +0 -2
- package/dist/components/UnsavedChangesConfirmationDialog/index.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Variables/Variable.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\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\nimport { useEffect, useMemo, useState } from 'react';\nimport { Select, FormControl, InputLabel, MenuItem, Box, LinearProgress, TextField } from '@mui/material';\nimport { VariableName, ListVariableDefinition, VariableValue } from '@perses-dev/core';\nimport { DEFAULT_ALL_VALUE } from '@perses-dev/plugin-system';\nimport { useTemplateVariable, useTemplateVariableActions } from '../../context';\nimport { useListVariablePluginValues } from './variable-model';\ntype TemplateVariableProps = {\n name: VariableName;\n};\n\nexport function TemplateVariable({ name }: TemplateVariableProps) {\n const ctx = useTemplateVariable(name);\n const kind = ctx.definition?.kind;\n switch (kind) {\n case 'TextVariable':\n return <TextVariable name={name} />;\n case 'ListVariable':\n return <ListVariable name={name} />;\n }\n\n return <div>Unsupported Variable Kind: ${kind}</div>;\n}\n\nfunction ListVariable({ name }: TemplateVariableProps) {\n const ctx = useTemplateVariable(name);\n const definition = ctx.definition as ListVariableDefinition;\n const variablesOptionsQuery = useListVariablePluginValues(definition);\n const { setVariableValue, setVariableLoading, setVariableOptions } = useTemplateVariableActions();\n\n const allowMultiple = definition?.spec.allow_multiple === true;\n const allowAllValue = definition?.spec.allow_all_value === true;\n const title = definition?.spec.display?.name ?? name;\n\n useEffect(() => {\n setVariableLoading(name, variablesOptionsQuery.isFetching);\n if (variablesOptionsQuery.data) {\n setVariableOptions(name, variablesOptionsQuery.data);\n }\n }, [variablesOptionsQuery, name, setVariableLoading, setVariableOptions]);\n\n let value = ctx.state?.value;\n const options = ctx.state?.options;\n const loading = ctx.state?.loading;\n\n // Make sure value is an array if allowMultiple is true\n if (allowMultiple && !Array.isArray(value)) {\n value = typeof value === 'string' ? [value] : [];\n }\n\n const finalOptions = useMemo(() => {\n let computedOptions = options ? [...options] : [];\n\n // Add the all value if it's allowed\n if (allowAllValue) {\n computedOptions = [{ value: DEFAULT_ALL_VALUE, label: 'All' }, ...computedOptions];\n }\n return computedOptions;\n }, [options, allowAllValue]);\n\n const valueIsInOptions = useMemo(\n () =>\n Boolean(\n finalOptions.find((v) => {\n if (allowMultiple) {\n return (value as string[]).includes(v.value);\n }\n return value === v.value;\n })\n ),\n [finalOptions, value, allowMultiple]\n );\n\n let selectValue = value;\n if (!valueIsInOptions) {\n selectValue = allowMultiple ? [] : '';\n }\n\n useEffect(() => {\n const firstOption = finalOptions?.[0];\n\n // If there is no value but there are options, set the value to the first option.\n if (!value && firstOption) {\n setVariableValue(name, firstOption.value);\n }\n }, [finalOptions, setVariableValue, value, name, allowMultiple]);\n\n return (\n <Box display={'flex'}>\n <FormControl fullWidth>\n <InputLabel id={name}>{title}</InputLabel>\n <Select\n sx={{ minWidth: 100, maxWidth: 250 }}\n id={name}\n label={name}\n value={selectValue}\n onChange={(e) => {\n // Must be selected\n if (e.target.value === null || e.target.value.length === 0) {\n if (allowAllValue) {\n setVariableValue(name, DEFAULT_ALL_VALUE);\n }\n return;\n }\n setVariableValue(name, e.target.value as VariableValue);\n }}\n multiple={allowMultiple}\n >\n {loading && (\n <MenuItem value=\"loading\" disabled>\n Loading\n </MenuItem>\n )}\n\n {finalOptions.length === 0 && (\n <MenuItem value=\"empty\" disabled>\n No options\n </MenuItem>\n )}\n {finalOptions.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n {loading && <LinearProgress />}\n </FormControl>\n </Box>\n );\n}\n\nfunction TextVariable({ name }: TemplateVariableProps) {\n const { state } = useTemplateVariable(name);\n const [tempValue, setTempValue] = useState(state?.value ?? '');\n const { setVariableValue } = useTemplateVariableActions();\n\n useEffect(() => {\n setTempValue(state?.value ?? '');\n }, [state?.value]);\n\n return (\n <TextField\n value={tempValue}\n onChange={(e) => setTempValue(e.target.value)}\n onBlur={() => setVariableValue(name, tempValue)}\n placeholder={name}\n label={name}\n />\n );\n}\n"],"names":["useEffect","useMemo","useState","Select","FormControl","InputLabel","MenuItem","Box","LinearProgress","TextField","DEFAULT_ALL_VALUE","useTemplateVariable","useTemplateVariableActions","useListVariablePluginValues","TemplateVariable","name","ctx","kind","definition","TextVariable","ListVariable","div","variablesOptionsQuery","setVariableValue","setVariableLoading","setVariableOptions","allowMultiple","spec","allow_multiple","allowAllValue","allow_all_value","title","display","isFetching","data","value","state","options","loading","Array","isArray","finalOptions","computedOptions","label","valueIsInOptions","Boolean","find","v","includes","selectValue","firstOption","fullWidth","id","sx","minWidth","maxWidth","onChange","e","target","length","multiple","disabled","map","option","tempValue","setTempValue","onBlur","placeholder"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Variables/Variable.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\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\nimport { useEffect, useMemo, useState } from 'react';\nimport { Select, FormControl, InputLabel, MenuItem, Box, LinearProgress, TextField } from '@mui/material';\nimport { VariableName, ListVariableDefinition, VariableValue } from '@perses-dev/core';\nimport { DEFAULT_ALL_VALUE } from '@perses-dev/plugin-system';\nimport { useTemplateVariable, useTemplateVariableActions } from '../../context';\nimport { useListVariablePluginValues } from './variable-model';\ntype TemplateVariableProps = {\n name: VariableName;\n};\n\nexport function TemplateVariable({ name }: TemplateVariableProps) {\n const ctx = useTemplateVariable(name);\n const kind = ctx.definition?.kind;\n switch (kind) {\n case 'TextVariable':\n return <TextVariable name={name} />;\n case 'ListVariable':\n return <ListVariable name={name} />;\n }\n\n return <div>Unsupported Variable Kind: ${kind}</div>;\n}\n\nfunction ListVariable({ name }: TemplateVariableProps) {\n const ctx = useTemplateVariable(name);\n const definition = ctx.definition as ListVariableDefinition;\n const variablesOptionsQuery = useListVariablePluginValues(definition);\n const { setVariableValue, setVariableLoading, setVariableOptions } = useTemplateVariableActions();\n\n const allowMultiple = definition?.spec.allow_multiple === true;\n const allowAllValue = definition?.spec.allow_all_value === true;\n const title = definition?.spec.display?.name ?? name;\n\n useEffect(() => {\n setVariableLoading(name, variablesOptionsQuery.isFetching);\n if (variablesOptionsQuery.data) {\n setVariableOptions(name, variablesOptionsQuery.data);\n }\n }, [variablesOptionsQuery, name, setVariableLoading, setVariableOptions]);\n\n let value = ctx.state?.value;\n const options = ctx.state?.options;\n const loading = ctx.state?.loading;\n\n // Make sure value is an array if allowMultiple is true\n if (allowMultiple && !Array.isArray(value)) {\n value = typeof value === 'string' ? [value] : [];\n }\n\n const finalOptions = useMemo(() => {\n let computedOptions = options ? [...options] : [];\n\n // Add the all value if it's allowed\n if (allowAllValue) {\n computedOptions = [{ value: DEFAULT_ALL_VALUE, label: 'All' }, ...computedOptions];\n }\n return computedOptions;\n }, [options, allowAllValue]);\n\n const valueIsInOptions = useMemo(\n () =>\n Boolean(\n finalOptions.find((v) => {\n if (allowMultiple) {\n return (value as string[]).includes(v.value);\n }\n return value === v.value;\n })\n ),\n [finalOptions, value, allowMultiple]\n );\n\n let selectValue = value;\n if (!valueIsInOptions) {\n selectValue = allowMultiple ? [] : '';\n }\n\n useEffect(() => {\n const firstOption = finalOptions?.[0];\n\n // If there is no value but there are options, set the value to the first option.\n if (!value && firstOption) {\n setVariableValue(name, firstOption.value);\n }\n }, [finalOptions, setVariableValue, value, name, allowMultiple]);\n\n return (\n <Box display={'flex'}>\n <FormControl fullWidth>\n <InputLabel id={name}>{title}</InputLabel>\n <Select\n sx={{ minWidth: 100, maxWidth: 250 }}\n id={name}\n label={name}\n value={selectValue}\n onChange={(e) => {\n // Must be selected\n if (e.target.value === null || e.target.value.length === 0) {\n if (allowAllValue) {\n setVariableValue(name, DEFAULT_ALL_VALUE);\n }\n return;\n }\n setVariableValue(name, e.target.value as VariableValue);\n }}\n multiple={allowMultiple}\n >\n {loading && (\n <MenuItem value=\"loading\" disabled>\n Loading\n </MenuItem>\n )}\n\n {finalOptions.length === 0 && (\n <MenuItem value=\"empty\" disabled>\n No options\n </MenuItem>\n )}\n {finalOptions.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </Select>\n {loading && <LinearProgress />}\n </FormControl>\n </Box>\n );\n}\n\nfunction TextVariable({ name }: TemplateVariableProps) {\n const { state, definition } = useTemplateVariable(name);\n const [tempValue, setTempValue] = useState(state?.value ?? '');\n const { setVariableValue } = useTemplateVariableActions();\n\n useEffect(() => {\n setTempValue(state?.value ?? '');\n }, [state?.value]);\n\n return (\n <TextField\n value={tempValue}\n onChange={(e) => setTempValue(e.target.value)}\n onBlur={() => setVariableValue(name, tempValue)}\n placeholder={name}\n label={definition?.spec.display?.name ?? name}\n />\n );\n}\n"],"names":["useEffect","useMemo","useState","Select","FormControl","InputLabel","MenuItem","Box","LinearProgress","TextField","DEFAULT_ALL_VALUE","useTemplateVariable","useTemplateVariableActions","useListVariablePluginValues","TemplateVariable","name","ctx","kind","definition","TextVariable","ListVariable","div","variablesOptionsQuery","setVariableValue","setVariableLoading","setVariableOptions","allowMultiple","spec","allow_multiple","allowAllValue","allow_all_value","title","display","isFetching","data","value","state","options","loading","Array","isArray","finalOptions","computedOptions","label","valueIsInOptions","Boolean","find","v","includes","selectValue","firstOption","fullWidth","id","sx","minWidth","maxWidth","onChange","e","target","length","multiple","disabled","map","option","tempValue","setTempValue","onBlur","placeholder"],"mappings":"AAAA,oCAAoC;AACpC,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,6CAA6C;AAC7C,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO,CAAC;AACrD,SAASC,MAAM,EAAEC,WAAW,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,cAAc,EAAEC,SAAS,QAAQ,eAAe,CAAC;AAE1G,SAASC,iBAAiB,QAAQ,2BAA2B,CAAC;AAC9D,SAASC,mBAAmB,EAAEC,0BAA0B,QAAQ,eAAe,CAAC;AAChF,SAASC,2BAA2B,QAAQ,kBAAkB,CAAC;AAK/D,OAAO,SAASC,gBAAgB,CAAC,EAAEC,IAAI,CAAA,EAAyB,EAAE;QAEnDC,GAAc;IAD3B,MAAMA,GAAG,GAAGL,mBAAmB,CAACI,IAAI,CAAC,AAAC;IACtC,MAAME,IAAI,GAAGD,CAAAA,GAAc,GAAdA,GAAG,CAACE,UAAU,cAAdF,GAAc,WAAM,GAApBA,KAAAA,CAAoB,GAApBA,GAAc,CAAEC,IAAI,AAAC;IAClC,OAAQA,IAAI;QACV,KAAK,cAAc;YACjB,qBAAO,KAACE,YAAY;gBAACJ,IAAI,EAAEA,IAAI;cAAI,CAAC;QACtC,KAAK,cAAc;YACjB,qBAAO,KAACK,YAAY;gBAACL,IAAI,EAAEA,IAAI;cAAI,CAAC;KACvC;IAED,qBAAO,MAACM,KAAG;;YAAC,8BAA4B;YAACJ,IAAI;;MAAO,CAAC;AACvD,CAAC;AAED,SAASG,YAAY,CAAC,EAAEL,IAAI,CAAA,EAAyB,EAAE;aAiBzCC,IAAS,EACLA,IAAS,EACTA,IAAS;IAlBzB,MAAMA,GAAG,GAAGL,mBAAmB,CAACI,IAAI,CAAC,AAAC;IACtC,MAAMG,UAAU,GAAGF,GAAG,CAACE,UAAU,AAA0B,AAAC;IAC5D,MAAMI,qBAAqB,GAAGT,2BAA2B,CAACK,UAAU,CAAC,AAAC;IACtE,MAAM,EAAEK,gBAAgB,CAAA,EAAEC,kBAAkB,CAAA,EAAEC,kBAAkB,CAAA,EAAE,GAAGb,0BAA0B,EAAE,AAAC;IAElG,MAAMc,aAAa,GAAGR,CAAAA,UAAU,aAAVA,UAAU,WAAM,GAAhBA,KAAAA,CAAgB,GAAhBA,UAAU,CAAES,IAAI,CAACC,cAAc,MAAK,IAAI,AAAC;IAC/D,MAAMC,aAAa,GAAGX,CAAAA,UAAU,aAAVA,UAAU,WAAM,GAAhBA,KAAAA,CAAgB,GAAhBA,UAAU,CAAES,IAAI,CAACG,eAAe,MAAK,IAAI,AAAC;QAClDZ,IAA8B;IAA5C,MAAMa,KAAK,GAAGb,CAAAA,IAA8B,GAA9BA,OAAAA,UAAU,aAAVA,UAAU,WAAM,GAAhBA,KAAAA,CAAgB,GAAhBA,UAAU,CAAES,IAAI,CAACK,OAAO,4BAAM,GAA9Bd,KAAAA,CAA8B,OAAJH,IAAI,cAA9BG,IAA8B,cAA9BA,IAA8B,GAAIH,IAAI,AAAC;IAErDf,SAAS,CAAC,IAAM;QACdwB,kBAAkB,CAACT,IAAI,EAAEO,qBAAqB,CAACW,UAAU,CAAC,CAAC;QAC3D,IAAIX,qBAAqB,CAACY,IAAI,EAAE;YAC9BT,kBAAkB,CAACV,IAAI,EAAEO,qBAAqB,CAACY,IAAI,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,EAAE;QAACZ,qBAAqB;QAAEP,IAAI;QAAES,kBAAkB;QAAEC,kBAAkB;KAAC,CAAC,CAAC;IAE1E,IAAIU,KAAK,GAAGnB,CAAAA,IAAS,GAATA,GAAG,CAACoB,KAAK,cAATpB,IAAS,WAAO,GAAhBA,KAAAA,CAAgB,GAAhBA,IAAS,CAAEmB,KAAK,AAAC;IAC7B,MAAME,OAAO,GAAGrB,CAAAA,IAAS,GAATA,GAAG,CAACoB,KAAK,cAATpB,IAAS,WAAS,GAAlBA,KAAAA,CAAkB,GAAlBA,IAAS,CAAEqB,OAAO,AAAC;IACnC,MAAMC,OAAO,GAAGtB,CAAAA,IAAS,GAATA,GAAG,CAACoB,KAAK,cAATpB,IAAS,WAAS,GAAlBA,KAAAA,CAAkB,GAAlBA,IAAS,CAAEsB,OAAO,AAAC;IAEnC,uDAAuD;IACvD,IAAIZ,aAAa,IAAI,CAACa,KAAK,CAACC,OAAO,CAACL,KAAK,CAAC,EAAE;QAC1CA,KAAK,GAAG,OAAOA,KAAK,KAAK,QAAQ,GAAG;YAACA,KAAK;SAAC,GAAG,EAAE,CAAC;IACnD,CAAC;IAED,MAAMM,YAAY,GAAGxC,OAAO,CAAC,IAAM;QACjC,IAAIyC,eAAe,GAAGL,OAAO,GAAG;eAAIA,OAAO;SAAC,GAAG,EAAE,AAAC;QAElD,oCAAoC;QACpC,IAAIR,aAAa,EAAE;YACjBa,eAAe,GAAG;gBAAC;oBAAEP,KAAK,EAAEzB,iBAAiB;oBAAEiC,KAAK,EAAE,KAAK;iBAAE;mBAAKD,eAAe;aAAC,CAAC;QACrF,CAAC;QACD,OAAOA,eAAe,CAAC;IACzB,CAAC,EAAE;QAACL,OAAO;QAAER,aAAa;KAAC,CAAC,AAAC;IAE7B,MAAMe,gBAAgB,GAAG3C,OAAO,CAC9B,IACE4C,OAAO,CACLJ,YAAY,CAACK,IAAI,CAAC,CAACC,CAAC,GAAK;YACvB,IAAIrB,aAAa,EAAE;gBACjB,OAAO,AAACS,KAAK,CAAca,QAAQ,CAACD,CAAC,CAACZ,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,OAAOA,KAAK,KAAKY,CAAC,CAACZ,KAAK,CAAC;QAC3B,CAAC,CAAC,CACH,EACH;QAACM,YAAY;QAAEN,KAAK;QAAET,aAAa;KAAC,CACrC,AAAC;IAEF,IAAIuB,WAAW,GAAGd,KAAK,AAAC;IACxB,IAAI,CAACS,gBAAgB,EAAE;QACrBK,WAAW,GAAGvB,aAAa,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,CAAC;IAED1B,SAAS,CAAC,IAAM;QACd,MAAMkD,WAAW,GAAGT,YAAY,aAAZA,YAAY,WAAK,GAAjBA,KAAAA,CAAiB,GAAjBA,YAAY,AAAE,CAAC,CAAC,CAAC,AAAC;QAEtC,iFAAiF;QACjF,IAAI,CAACN,KAAK,IAAIe,WAAW,EAAE;YACzB3B,gBAAgB,CAACR,IAAI,EAAEmC,WAAW,CAACf,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,EAAE;QAACM,YAAY;QAAElB,gBAAgB;QAAEY,KAAK;QAAEpB,IAAI;QAAEW,aAAa;KAAC,CAAC,CAAC;IAEjE,qBACE,KAACnB,GAAG;QAACyB,OAAO,EAAE,MAAM;kBAClB,cAAA,MAAC5B,WAAW;YAAC+C,SAAS;;8BACpB,KAAC9C,UAAU;oBAAC+C,EAAE,EAAErC,IAAI;8BAAGgB,KAAK;kBAAc;8BAC1C,MAAC5B,MAAM;oBACLkD,EAAE,EAAE;wBAAEC,QAAQ,EAAE,GAAG;wBAAEC,QAAQ,EAAE,GAAG;qBAAE;oBACpCH,EAAE,EAAErC,IAAI;oBACR4B,KAAK,EAAE5B,IAAI;oBACXoB,KAAK,EAAEc,WAAW;oBAClBO,QAAQ,EAAE,CAACC,CAAC,GAAK;wBACf,mBAAmB;wBACnB,IAAIA,CAAC,CAACC,MAAM,CAACvB,KAAK,KAAK,IAAI,IAAIsB,CAAC,CAACC,MAAM,CAACvB,KAAK,CAACwB,MAAM,KAAK,CAAC,EAAE;4BAC1D,IAAI9B,aAAa,EAAE;gCACjBN,gBAAgB,CAACR,IAAI,EAAEL,iBAAiB,CAAC,CAAC;4BAC5C,CAAC;4BACD,OAAO;wBACT,CAAC;wBACDa,gBAAgB,CAACR,IAAI,EAAE0C,CAAC,CAACC,MAAM,CAACvB,KAAK,CAAkB,CAAC;oBAC1D,CAAC;oBACDyB,QAAQ,EAAElC,aAAa;;wBAEtBY,OAAO,kBACN,KAAChC,QAAQ;4BAAC6B,KAAK,EAAC,SAAS;4BAAC0B,QAAQ;sCAAC,SAEnC;0BAAW,AACZ;wBAEApB,YAAY,CAACkB,MAAM,KAAK,CAAC,kBACxB,KAACrD,QAAQ;4BAAC6B,KAAK,EAAC,OAAO;4BAAC0B,QAAQ;sCAAC,YAEjC;0BAAW,AACZ;wBACApB,YAAY,CAACqB,GAAG,CAAC,CAACC,MAAM,iBACvB,KAACzD,QAAQ;gCAAoB6B,KAAK,EAAE4B,MAAM,CAAC5B,KAAK;0CAC7C4B,MAAM,CAACpB,KAAK;+BADAoB,MAAM,CAAC5B,KAAK,CAEhB,AACZ,CAAC;;kBACK;gBACRG,OAAO,kBAAI,KAAC9B,cAAc,KAAG;;UAClB;MACV,CACN;AACJ,CAAC;AAED,SAASW,YAAY,CAAC,EAAEJ,IAAI,CAAA,EAAyB,EAAE;;IACrD,MAAM,EAAEqB,KAAK,CAAA,EAAElB,UAAU,CAAA,EAAE,GAAGP,mBAAmB,CAACI,IAAI,CAAC,AAAC;QACbqB,IAAY;IAAvD,MAAM,CAAC4B,SAAS,EAAEC,YAAY,CAAC,GAAG/D,QAAQ,CAACkC,CAAAA,IAAY,GAAZA,KAAK,aAALA,KAAK,WAAO,GAAZA,KAAAA,CAAY,GAAZA,KAAK,CAAED,KAAK,cAAZC,IAAY,cAAZA,IAAY,GAAI,EAAE,CAAC,AAAC;IAC/D,MAAM,EAAEb,gBAAgB,CAAA,EAAE,GAAGX,0BAA0B,EAAE,AAAC;IAE1DZ,SAAS,CAAC,IAAM;YACDoC,GAAY;QAAzB6B,YAAY,CAAC7B,CAAAA,GAAY,GAAZA,KAAK,aAALA,KAAK,WAAO,GAAZA,KAAAA,CAAY,GAAZA,KAAK,CAAED,KAAK,cAAZC,GAAY,cAAZA,GAAY,GAAI,EAAE,CAAC,CAAC;IACnC,CAAC,EAAE;QAACA,KAAK,aAALA,KAAK,WAAO,GAAZA,KAAAA,CAAY,GAAZA,KAAK,CAAED,KAAK;KAAC,CAAC,CAAC;QAQRjB,IAA8B;IANzC,qBACE,KAACT,SAAS;QACR0B,KAAK,EAAE6B,SAAS;QAChBR,QAAQ,EAAE,CAACC,CAAC,GAAKQ,YAAY,CAACR,CAAC,CAACC,MAAM,CAACvB,KAAK,CAAC;QAC7C+B,MAAM,EAAE,IAAM3C,gBAAgB,CAACR,IAAI,EAAEiD,SAAS,CAAC;QAC/CG,WAAW,EAAEpD,IAAI;QACjB4B,KAAK,EAAEzB,CAAAA,IAA8B,GAA9BA,OAAAA,UAAU,aAAVA,UAAU,WAAM,GAAhBA,KAAAA,CAAgB,GAAhBA,UAAU,CAAES,IAAI,CAACK,OAAO,4BAAM,GAA9Bd,KAAAA,CAA8B,OAAJH,IAAI,cAA9BG,IAA8B,cAA9BA,IAA8B,GAAIH,IAAI;MAC7C,CACF;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableEditor.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableEditor.tsx"],"names":[],"mappings":";AA8BA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"VariableEditor.d.ts","sourceRoot":"","sources":["../../../src/components/Variables/VariableEditor.tsx"],"names":[],"mappings":";AA8BA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA8BtD,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,eA+LA"}
|
|
@@ -12,13 +12,19 @@
|
|
|
12
12
|
// limitations under the License.
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
14
|
import { useState, useMemo } from 'react';
|
|
15
|
-
import { Button, Stack, Box, TableContainer, TableBody, TableRow, TableCell, Table,
|
|
15
|
+
import { Button, Stack, Box, TableContainer, TableBody, TableRow, TableCell as MuiTableCell, Table, TableHead, Switch, Typography, IconButton, Alert, styled } from '@mui/material';
|
|
16
16
|
import { useImmer } from 'use-immer';
|
|
17
17
|
import PencilIcon from 'mdi-material-ui/Pencil';
|
|
18
18
|
import TrashIcon from 'mdi-material-ui/TrashCan';
|
|
19
19
|
import ArrowUp from 'mdi-material-ui/ArrowUp';
|
|
20
20
|
import ArrowDown from 'mdi-material-ui/ArrowDown';
|
|
21
|
+
import { useDiscardChangesConfirmationDialog } from '../../context';
|
|
21
22
|
import { VariableEditForm } from './VariableEditorForm';
|
|
23
|
+
import { VARIABLE_TYPES } from './variable-model';
|
|
24
|
+
function getVariableLabelByKind(kind) {
|
|
25
|
+
var ref;
|
|
26
|
+
return (ref = VARIABLE_TYPES.find((variableType)=>variableType.kind === kind)) === null || ref === void 0 ? void 0 : ref.label;
|
|
27
|
+
}
|
|
22
28
|
function getValidation(variableDefinitions) {
|
|
23
29
|
const errors = [];
|
|
24
30
|
/** Variable names must be unique */ const variableNames = variableDefinitions.map((variableDefinition)=>variableDefinition.spec.name);
|
|
@@ -38,6 +44,23 @@ export function VariableEditor(props) {
|
|
|
38
44
|
variableDefinitions
|
|
39
45
|
]);
|
|
40
46
|
const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];
|
|
47
|
+
const { openDiscardChangesConfirmationDialog , closeDiscardChangesConfirmationDialog } = useDiscardChangesConfirmationDialog();
|
|
48
|
+
const handleCancel = ()=>{
|
|
49
|
+
if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {
|
|
50
|
+
openDiscardChangesConfirmationDialog({
|
|
51
|
+
onDiscardChanges: ()=>{
|
|
52
|
+
closeDiscardChangesConfirmationDialog();
|
|
53
|
+
props.onCancel();
|
|
54
|
+
},
|
|
55
|
+
onCancel: ()=>{
|
|
56
|
+
closeDiscardChangesConfirmationDialog();
|
|
57
|
+
},
|
|
58
|
+
description: 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.'
|
|
59
|
+
});
|
|
60
|
+
} else {
|
|
61
|
+
props.onCancel();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
41
64
|
const removeVariable = (index)=>{
|
|
42
65
|
setVariableDefinitions((draft)=>{
|
|
43
66
|
draft.splice(index, 1);
|
|
@@ -53,6 +76,7 @@ export function VariableEditor(props) {
|
|
|
53
76
|
}
|
|
54
77
|
});
|
|
55
78
|
});
|
|
79
|
+
setVariableEditIdx(variableDefinitions.length);
|
|
56
80
|
};
|
|
57
81
|
const toggleVariableVisibility = (index, visible)=>{
|
|
58
82
|
setVariableDefinitions((draft)=>{
|
|
@@ -90,6 +114,7 @@ export function VariableEditor(props) {
|
|
|
90
114
|
}
|
|
91
115
|
});
|
|
92
116
|
};
|
|
117
|
+
var ref;
|
|
93
118
|
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
94
119
|
children: [
|
|
95
120
|
currentEditingVariableDefinition && /*#__PURE__*/ _jsx(VariableEditForm, {
|
|
@@ -109,12 +134,12 @@ export function VariableEditor(props) {
|
|
|
109
134
|
display: 'flex',
|
|
110
135
|
alignItems: 'center',
|
|
111
136
|
padding: (theme)=>theme.spacing(1, 2),
|
|
112
|
-
borderBottom: (theme)=>`1px solid ${theme.palette.
|
|
137
|
+
borderBottom: (theme)=>`1px solid ${theme.palette.divider}`
|
|
113
138
|
},
|
|
114
139
|
children: [
|
|
115
140
|
/*#__PURE__*/ _jsx(Typography, {
|
|
116
141
|
variant: "h2",
|
|
117
|
-
children: "
|
|
142
|
+
children: "Variables"
|
|
118
143
|
}),
|
|
119
144
|
/*#__PURE__*/ _jsxs(Stack, {
|
|
120
145
|
direction: "row",
|
|
@@ -130,133 +155,127 @@ export function VariableEditor(props) {
|
|
|
130
155
|
children: "Apply"
|
|
131
156
|
}),
|
|
132
157
|
/*#__PURE__*/ _jsx(Button, {
|
|
158
|
+
color: "secondary",
|
|
133
159
|
variant: "outlined",
|
|
134
|
-
onClick:
|
|
135
|
-
props.onCancel();
|
|
136
|
-
},
|
|
160
|
+
onClick: handleCancel,
|
|
137
161
|
children: "Cancel"
|
|
138
162
|
})
|
|
139
163
|
]
|
|
140
164
|
})
|
|
141
165
|
]
|
|
142
166
|
}),
|
|
143
|
-
/*#__PURE__*/
|
|
167
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
144
168
|
padding: 2,
|
|
145
169
|
sx: {
|
|
146
170
|
overflowY: 'scroll'
|
|
147
171
|
},
|
|
148
|
-
children:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
172
|
+
children: /*#__PURE__*/ _jsxs(Stack, {
|
|
173
|
+
spacing: 2,
|
|
174
|
+
children: [
|
|
175
|
+
!validation.isValid && validation.errors.map((error)=>/*#__PURE__*/ _jsx(Alert, {
|
|
176
|
+
severity: "error",
|
|
177
|
+
children: error
|
|
178
|
+
}, error)),
|
|
179
|
+
/*#__PURE__*/ _jsx(TableContainer, {
|
|
180
|
+
children: /*#__PURE__*/ _jsxs(Table, {
|
|
181
|
+
sx: {
|
|
182
|
+
minWidth: 650
|
|
183
|
+
},
|
|
184
|
+
"aria-label": "simple table",
|
|
185
|
+
children: [
|
|
186
|
+
/*#__PURE__*/ _jsx(TableHead, {
|
|
187
|
+
children: /*#__PURE__*/ _jsxs(TableRow, {
|
|
188
|
+
children: [
|
|
189
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
190
|
+
children: "Visibility"
|
|
191
|
+
}),
|
|
192
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
193
|
+
children: "Name"
|
|
194
|
+
}),
|
|
195
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
196
|
+
children: "Type"
|
|
197
|
+
}),
|
|
198
|
+
/*#__PURE__*/ _jsx(TableCell, {
|
|
199
|
+
align: "right",
|
|
200
|
+
children: "Action"
|
|
201
|
+
})
|
|
202
|
+
]
|
|
203
|
+
})
|
|
204
|
+
}),
|
|
205
|
+
/*#__PURE__*/ _jsx(TableBody, {
|
|
206
|
+
children: variableDefinitions.map((v, idx)=>{
|
|
207
|
+
var ref1;
|
|
208
|
+
/*#__PURE__*/ return _jsxs(TableRow, {
|
|
171
209
|
children: [
|
|
172
210
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
173
|
-
|
|
211
|
+
component: "th",
|
|
212
|
+
scope: "row",
|
|
213
|
+
children: /*#__PURE__*/ _jsx(Switch, {
|
|
214
|
+
checked: ((ref1 = v.spec.display) === null || ref1 === void 0 ? void 0 : ref1.hidden) !== true,
|
|
215
|
+
onChange: (e)=>{
|
|
216
|
+
toggleVariableVisibility(idx, e.target.checked);
|
|
217
|
+
}
|
|
218
|
+
})
|
|
174
219
|
}),
|
|
175
220
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
176
|
-
|
|
221
|
+
component: "th",
|
|
222
|
+
scope: "row",
|
|
223
|
+
sx: {
|
|
224
|
+
fontWeight: 'bold'
|
|
225
|
+
},
|
|
226
|
+
children: v.spec.name
|
|
177
227
|
}),
|
|
178
228
|
/*#__PURE__*/ _jsx(TableCell, {
|
|
179
|
-
children:
|
|
229
|
+
children: (ref = getVariableLabelByKind(v.kind)) !== null && ref !== void 0 ? ref : v.kind
|
|
180
230
|
}),
|
|
181
|
-
/*#__PURE__*/
|
|
231
|
+
/*#__PURE__*/ _jsxs(TableCell, {
|
|
182
232
|
align: "right",
|
|
183
|
-
children:
|
|
233
|
+
children: [
|
|
234
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
235
|
+
onClick: ()=>changeVariableOrder(idx, 'up'),
|
|
236
|
+
disabled: idx === 0,
|
|
237
|
+
children: /*#__PURE__*/ _jsx(ArrowUp, {})
|
|
238
|
+
}),
|
|
239
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
240
|
+
onClick: ()=>changeVariableOrder(idx, 'down'),
|
|
241
|
+
disabled: idx === variableDefinitions.length - 1,
|
|
242
|
+
children: /*#__PURE__*/ _jsx(ArrowDown, {})
|
|
243
|
+
}),
|
|
244
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
245
|
+
onClick: ()=>setVariableEditIdx(idx),
|
|
246
|
+
children: /*#__PURE__*/ _jsx(PencilIcon, {})
|
|
247
|
+
}),
|
|
248
|
+
/*#__PURE__*/ _jsx(IconButton, {
|
|
249
|
+
onClick: ()=>removeVariable(idx),
|
|
250
|
+
children: /*#__PURE__*/ _jsx(TrashIcon, {})
|
|
251
|
+
})
|
|
252
|
+
]
|
|
184
253
|
})
|
|
185
254
|
]
|
|
186
|
-
})
|
|
187
|
-
}),
|
|
188
|
-
/*#__PURE__*/ _jsx(TableBody, {
|
|
189
|
-
children: variableDefinitions.map((v, idx)=>{
|
|
190
|
-
var ref;
|
|
191
|
-
/*#__PURE__*/ return _jsxs(TableRow, {
|
|
192
|
-
children: [
|
|
193
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
194
|
-
component: "th",
|
|
195
|
-
scope: "row",
|
|
196
|
-
children: /*#__PURE__*/ _jsx(Switch, {
|
|
197
|
-
checked: ((ref = v.spec.display) === null || ref === void 0 ? void 0 : ref.hidden) !== true,
|
|
198
|
-
onChange: (e)=>{
|
|
199
|
-
toggleVariableVisibility(idx, e.target.checked);
|
|
200
|
-
}
|
|
201
|
-
})
|
|
202
|
-
}),
|
|
203
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
204
|
-
component: "th",
|
|
205
|
-
scope: "row",
|
|
206
|
-
sx: {
|
|
207
|
-
fontWeight: 'bold'
|
|
208
|
-
},
|
|
209
|
-
children: v.spec.name
|
|
210
|
-
}),
|
|
211
|
-
/*#__PURE__*/ _jsx(TableCell, {
|
|
212
|
-
children: v.kind
|
|
213
|
-
}),
|
|
214
|
-
/*#__PURE__*/ _jsxs(TableCell, {
|
|
215
|
-
align: "right",
|
|
216
|
-
children: [
|
|
217
|
-
/*#__PURE__*/ _jsx(IconButton, {
|
|
218
|
-
onClick: ()=>changeVariableOrder(idx, 'up'),
|
|
219
|
-
disabled: idx === 0,
|
|
220
|
-
children: /*#__PURE__*/ _jsx(ArrowUp, {})
|
|
221
|
-
}),
|
|
222
|
-
/*#__PURE__*/ _jsx(IconButton, {
|
|
223
|
-
onClick: ()=>changeVariableOrder(idx, 'down'),
|
|
224
|
-
disabled: idx === variableDefinitions.length - 1,
|
|
225
|
-
children: /*#__PURE__*/ _jsx(ArrowDown, {})
|
|
226
|
-
}),
|
|
227
|
-
/*#__PURE__*/ _jsx(IconButton, {
|
|
228
|
-
onClick: ()=>setVariableEditIdx(idx),
|
|
229
|
-
children: /*#__PURE__*/ _jsx(PencilIcon, {})
|
|
230
|
-
}),
|
|
231
|
-
/*#__PURE__*/ _jsx(IconButton, {
|
|
232
|
-
onClick: ()=>removeVariable(idx),
|
|
233
|
-
children: /*#__PURE__*/ _jsx(TrashIcon, {})
|
|
234
|
-
})
|
|
235
|
-
]
|
|
236
|
-
})
|
|
237
|
-
]
|
|
238
|
-
}, v.spec.name);
|
|
239
|
-
})
|
|
255
|
+
}, v.spec.name);
|
|
240
256
|
})
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}),
|
|
244
|
-
/*#__PURE__*/ _jsx(Box, {
|
|
245
|
-
display: "flex",
|
|
246
|
-
children: /*#__PURE__*/ _jsx(Button, {
|
|
247
|
-
onClick: addVariable,
|
|
248
|
-
variant: "contained",
|
|
249
|
-
children: "Add New Variable"
|
|
250
|
-
})
|
|
257
|
+
})
|
|
258
|
+
]
|
|
251
259
|
})
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
260
|
+
}),
|
|
261
|
+
/*#__PURE__*/ _jsx(Box, {
|
|
262
|
+
display: "flex",
|
|
263
|
+
children: /*#__PURE__*/ _jsx(Button, {
|
|
264
|
+
onClick: addVariable,
|
|
265
|
+
variant: "contained",
|
|
266
|
+
children: "Add New"
|
|
267
|
+
})
|
|
268
|
+
})
|
|
269
|
+
]
|
|
270
|
+
})
|
|
255
271
|
})
|
|
256
272
|
]
|
|
257
273
|
})
|
|
258
274
|
]
|
|
259
275
|
});
|
|
260
276
|
}
|
|
277
|
+
const TableCell = styled(MuiTableCell)(({ theme })=>({
|
|
278
|
+
borderBottom: `solid 1px ${theme.palette.divider}`
|
|
279
|
+
}));
|
|
261
280
|
|
|
262
281
|
//# sourceMappingURL=VariableEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Variables/VariableEditor.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\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\nimport { useState, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell,\n Table,\n Paper,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n} from '@mui/material';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\n\nimport { VariableEditForm } from './VariableEditorForm';\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditForm\n initialVariableDefinition={currentEditingVariableDefinition}\n onChange={(definition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onCancel={() => setVariableEditIdx(null)}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.grey[100]}`,\n }}\n >\n <Typography variant=\"h2\">Template Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button\n variant=\"outlined\"\n onClick={() => {\n props.onCancel();\n }}\n >\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Typography variant=\"h3\" mb={2}>\n Variable List\n </Typography>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer component={Paper}>\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Variable Name</TableCell>\n <TableCell>Variable Type</TableCell>\n <TableCell align=\"right\">Action</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n {v.spec.name}\n </TableCell>\n <TableCell>{v.kind}</TableCell>\n <TableCell align=\"right\">\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n\n <IconButton onClick={() => setVariableEditIdx(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button onClick={addVariable} variant=\"contained\">\n Add New Variable\n </Button>\n </Box>\n </Stack>\n </Box>\n </>\n )}\n </>\n );\n}\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","Table","Paper","TableHead","Switch","Typography","IconButton","Alert","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","VariableEditForm","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","validation","currentEditingVariableDefinition","removeVariable","index","draft","splice","addVariable","kind","value","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","initialVariableDefinition","onChange","definition","onCancel","sx","alignItems","padding","theme","spacing","borderBottom","palette","grey","variant","marginLeft","disabled","onClick","overflowY","mb","error","severity","component","minWidth","aria-label","align","idx","scope","checked","e","target","fontWeight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Variables/VariableEditor.tsx"],"sourcesContent":["// Copyright 2022 The Perses Authors\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\nimport { useState, useMemo } from 'react';\nimport {\n Button,\n Stack,\n Box,\n TableContainer,\n TableBody,\n TableRow,\n TableCell as MuiTableCell,\n Table,\n TableHead,\n Switch,\n Typography,\n IconButton,\n Alert,\n styled,\n} from '@mui/material';\nimport { VariableDefinition } from '@perses-dev/core';\nimport { useImmer } from 'use-immer';\nimport PencilIcon from 'mdi-material-ui/Pencil';\nimport TrashIcon from 'mdi-material-ui/TrashCan';\nimport ArrowUp from 'mdi-material-ui/ArrowUp';\nimport ArrowDown from 'mdi-material-ui/ArrowDown';\n\nimport { useDiscardChangesConfirmationDialog } from '../../context';\nimport { VariableEditForm } from './VariableEditorForm';\nimport { VARIABLE_TYPES } from './variable-model';\n\nfunction getVariableLabelByKind(kind: string) {\n return VARIABLE_TYPES.find((variableType) => variableType.kind === kind)?.label;\n}\n\nfunction getValidation(variableDefinitions: VariableDefinition[]) {\n const errors = [];\n\n /** Variable names must be unique */\n const variableNames = variableDefinitions.map((variableDefinition) => variableDefinition.spec.name);\n const uniqueVariableNames = new Set(variableNames);\n if (variableNames.length !== uniqueVariableNames.size) {\n errors.push('Variable names must be unique');\n }\n return {\n errors: errors,\n isValid: errors.length === 0,\n };\n}\n\nexport function VariableEditor(props: {\n variableDefinitions: VariableDefinition[];\n onChange: (variableDefinitions: VariableDefinition[]) => void;\n onCancel: () => void;\n}) {\n const [variableDefinitions, setVariableDefinitions] = useImmer(props.variableDefinitions);\n const [variableEditIdx, setVariableEditIdx] = useState<number | null>(null);\n\n const validation = useMemo(() => getValidation(variableDefinitions), [variableDefinitions]);\n const currentEditingVariableDefinition = typeof variableEditIdx === 'number' && variableDefinitions[variableEditIdx];\n\n const { openDiscardChangesConfirmationDialog, closeDiscardChangesConfirmationDialog } =\n useDiscardChangesConfirmationDialog();\n const handleCancel = () => {\n if (JSON.stringify(props.variableDefinitions) !== JSON.stringify(variableDefinitions)) {\n openDiscardChangesConfirmationDialog({\n onDiscardChanges: () => {\n closeDiscardChangesConfirmationDialog();\n props.onCancel();\n },\n onCancel: () => {\n closeDiscardChangesConfirmationDialog();\n },\n description:\n 'You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered.',\n });\n } else {\n props.onCancel();\n }\n };\n\n const removeVariable = (index: number) => {\n setVariableDefinitions((draft) => {\n draft.splice(index, 1);\n });\n };\n\n const addVariable = () => {\n setVariableDefinitions((draft) => {\n draft.push({\n kind: 'TextVariable',\n spec: {\n name: 'NewVariable',\n value: '',\n },\n });\n });\n setVariableEditIdx(variableDefinitions.length);\n };\n\n const toggleVariableVisibility = (index: number, visible: boolean) => {\n setVariableDefinitions((draft) => {\n const v = draft[index];\n if (!v) {\n return;\n }\n if (!v.spec.display) {\n v.spec.display = {\n name: v.spec.name,\n hidden: false,\n };\n }\n v.spec.display.hidden = visible === false;\n });\n };\n\n const changeVariableOrder = (index: number, direction: 'up' | 'down') => {\n setVariableDefinitions((draft) => {\n if (direction === 'up') {\n const prevElement = draft[index - 1];\n const currentElement = draft[index];\n if (index === 0 || !prevElement || !currentElement) {\n return;\n }\n draft[index - 1] = currentElement;\n draft[index] = prevElement;\n } else {\n const nextElement = draft[index + 1];\n const currentElement = draft[index];\n if (index === draft.length - 1 || !nextElement || !currentElement) {\n return;\n }\n draft[index + 1] = currentElement;\n draft[index] = nextElement;\n }\n });\n };\n\n return (\n <>\n {currentEditingVariableDefinition && (\n <VariableEditForm\n initialVariableDefinition={currentEditingVariableDefinition}\n onChange={(definition) => {\n setVariableDefinitions((draft) => {\n draft[variableEditIdx] = definition;\n setVariableEditIdx(null);\n });\n }}\n onCancel={() => setVariableEditIdx(null)}\n />\n )}\n {!currentEditingVariableDefinition && (\n <>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n padding: (theme) => theme.spacing(1, 2),\n borderBottom: (theme) => `1px solid ${theme.palette.divider}`,\n }}\n >\n <Typography variant=\"h2\">Variables</Typography>\n <Stack direction=\"row\" spacing={1} marginLeft=\"auto\">\n <Button\n disabled={props.variableDefinitions === variableDefinitions || !validation.isValid}\n variant=\"contained\"\n onClick={() => {\n props.onChange(variableDefinitions);\n }}\n >\n Apply\n </Button>\n <Button color=\"secondary\" variant=\"outlined\" onClick={handleCancel}>\n Cancel\n </Button>\n </Stack>\n </Box>\n <Box padding={2} sx={{ overflowY: 'scroll' }}>\n <Stack spacing={2}>\n {!validation.isValid &&\n validation.errors.map((error) => (\n <Alert severity=\"error\" key={error}>\n {error}\n </Alert>\n ))}\n <TableContainer>\n <Table sx={{ minWidth: 650 }} aria-label=\"simple table\">\n <TableHead>\n <TableRow>\n <TableCell>Visibility</TableCell>\n <TableCell>Name</TableCell>\n <TableCell>Type</TableCell>\n <TableCell align=\"right\">Action</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {variableDefinitions.map((v, idx) => (\n <TableRow key={v.spec.name}>\n <TableCell component=\"th\" scope=\"row\">\n <Switch\n checked={v.spec.display?.hidden !== true}\n onChange={(e) => {\n toggleVariableVisibility(idx, e.target.checked);\n }}\n />\n </TableCell>\n <TableCell component=\"th\" scope=\"row\" sx={{ fontWeight: 'bold' }}>\n {v.spec.name}\n </TableCell>\n <TableCell>{getVariableLabelByKind(v.kind) ?? v.kind}</TableCell>\n <TableCell align=\"right\">\n <IconButton onClick={() => changeVariableOrder(idx, 'up')} disabled={idx === 0}>\n <ArrowUp />\n </IconButton>\n <IconButton\n onClick={() => changeVariableOrder(idx, 'down')}\n disabled={idx === variableDefinitions.length - 1}\n >\n <ArrowDown />\n </IconButton>\n\n <IconButton onClick={() => setVariableEditIdx(idx)}>\n <PencilIcon />\n </IconButton>\n <IconButton onClick={() => removeVariable(idx)}>\n <TrashIcon />\n </IconButton>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n <Box display=\"flex\">\n <Button onClick={addVariable} variant=\"contained\">\n Add New\n </Button>\n </Box>\n </Stack>\n </Box>\n </>\n )}\n </>\n );\n}\n\nconst TableCell = styled(MuiTableCell)(({ theme }) => ({\n borderBottom: `solid 1px ${theme.palette.divider}`,\n}));\n"],"names":["useState","useMemo","Button","Stack","Box","TableContainer","TableBody","TableRow","TableCell","MuiTableCell","Table","TableHead","Switch","Typography","IconButton","Alert","styled","useImmer","PencilIcon","TrashIcon","ArrowUp","ArrowDown","useDiscardChangesConfirmationDialog","VariableEditForm","VARIABLE_TYPES","getVariableLabelByKind","kind","find","variableType","label","getValidation","variableDefinitions","errors","variableNames","map","variableDefinition","spec","name","uniqueVariableNames","Set","length","size","push","isValid","VariableEditor","props","setVariableDefinitions","variableEditIdx","setVariableEditIdx","validation","currentEditingVariableDefinition","openDiscardChangesConfirmationDialog","closeDiscardChangesConfirmationDialog","handleCancel","JSON","stringify","onDiscardChanges","onCancel","description","removeVariable","index","draft","splice","addVariable","value","toggleVariableVisibility","visible","v","display","hidden","changeVariableOrder","direction","prevElement","currentElement","nextElement","initialVariableDefinition","onChange","definition","sx","alignItems","padding","theme","spacing","borderBottom","palette","divider","variant","marginLeft","disabled","onClick","color","overflowY","error","severity","minWidth","aria-label","align","idx","component","scope","checked","e","target","fontWeight"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VariableEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/components/Variables/VariableEditorForm/VariableEditorForm.tsx"],"names":[],"mappings":";AAkCA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,kBAAkB,CAAC;AAqF9E,wBAAgB,gBAAgB,CAAC,EAC/B,yBAAyB,EACzB,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,eAgNA"}
|