@backstage-community/plugin-servicenow 1.5.0 → 1.5.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/alpha/plugin.esm.js +1 -0
  3. package/dist/alpha/plugin.esm.js.map +1 -1
  4. package/dist/alpha.d.ts +95 -1
  5. package/dist/alpha.esm.js +3 -1
  6. package/dist/alpha.esm.js.map +1 -1
  7. package/dist/components/Servicenow/EntityServicenowContent.esm.js +13 -11
  8. package/dist/components/Servicenow/EntityServicenowContent.esm.js.map +1 -1
  9. package/dist/components/Servicenow/IncidentsFilter.esm.js +9 -5
  10. package/dist/components/Servicenow/IncidentsFilter.esm.js.map +1 -1
  11. package/dist/components/Servicenow/IncidentsListColumns.esm.js +43 -39
  12. package/dist/components/Servicenow/IncidentsListColumns.esm.js.map +1 -1
  13. package/dist/components/Servicenow/IncidentsTableBody.esm.js +6 -3
  14. package/dist/components/Servicenow/IncidentsTableBody.esm.js.map +1 -1
  15. package/dist/components/Servicenow/IncidentsTableHeader.esm.js +3 -2
  16. package/dist/components/Servicenow/IncidentsTableHeader.esm.js.map +1 -1
  17. package/dist/components/Servicenow/IncidentsTableRow.esm.js +8 -4
  18. package/dist/components/Servicenow/IncidentsTableRow.esm.js.map +1 -1
  19. package/dist/components/shared-components/IncidentEnumFilter.esm.js +2 -3
  20. package/dist/components/shared-components/IncidentEnumFilter.esm.js.map +1 -1
  21. package/dist/hooks/useTranslation.esm.js +13 -0
  22. package/dist/hooks/useTranslation.esm.js.map +1 -0
  23. package/dist/translations/de.esm.js +37 -0
  24. package/dist/translations/de.esm.js.map +1 -0
  25. package/dist/translations/es.esm.js +37 -0
  26. package/dist/translations/es.esm.js.map +1 -0
  27. package/dist/translations/fr.esm.js +37 -0
  28. package/dist/translations/fr.esm.js.map +1 -0
  29. package/dist/translations/index.esm.js +16 -0
  30. package/dist/translations/index.esm.js.map +1 -0
  31. package/dist/translations/it.esm.js +37 -0
  32. package/dist/translations/it.esm.js.map +1 -0
  33. package/dist/translations/ja.esm.js +37 -0
  34. package/dist/translations/ja.esm.js.map +1 -0
  35. package/dist/translations/ref.esm.js +53 -0
  36. package/dist/translations/ref.esm.js.map +1 -0
  37. package/dist/utils/incidentUtils.esm.js +75 -3
  38. package/dist/utils/incidentUtils.esm.js.map +1 -1
  39. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IncidentsTableRow.esm.js","sources":["../../../src/components/Servicenow/IncidentsTableRow.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 OpenInNewIcon from '@mui/icons-material/OpenInNew';\nimport IconButton from '@mui/material/IconButton';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { makeStyles } from '@mui/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\n\nimport { convertDateFormat } from '../../utils/stringUtils';\nimport {\n getIncidentStateValue,\n getPriorityValue,\n} from '../../utils/incidentUtils';\nimport type { IncidentsData } from '../../types';\n\nconst useStyles = makeStyles(() => ({\n tableCellStyle: {\n lineHeight: '1.5rem',\n fontSize: '0.875rem',\n },\n}));\n\nexport const IncidentsTableRow = ({ data }: { data: IncidentsData }) => {\n const classes = useStyles();\n\n return (\n <TableRow\n hover\n sx={{\n fontSize: '0.875rem',\n '&:last-child td, &:last-child th': { border: 0 },\n borderBottom: '1px solid #e0e0e0',\n }}\n >\n <TableCell component=\"th\" scope=\"row\" className={classes.tableCellStyle}>\n {data.number}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n <Tooltip title={data?.description} arrow placement=\"top\">\n <Typography\n variant=\"body1\"\n style={{\n maxWidth: 208,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {data?.shortDescription}\n </Typography>\n </Tooltip>\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {convertDateFormat(data?.sysCreatedOn)}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {getPriorityValue(data?.priority)}\n </TableCell>\n\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {getIncidentStateValue(data?.incidentState)}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n <IconButton onClick={() => window.open(data.url, '_blank')}>\n <OpenInNewIcon fontSize=\"small\" style={{ color: 'inherit' }} />\n </IconButton>\n </TableCell>\n </TableRow>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AA+BA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,cAAgB,EAAA;AAAA,IACd,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA;AAAA;AAEd,CAAE,CAAA,CAAA;AAEK,MAAM,iBAAoB,GAAA,CAAC,EAAE,IAAA,EAAoC,KAAA;AACtE,EAAA,MAAM,UAAU,SAAU,EAAA;AAE1B,EACE,uBAAA,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAK,EAAA,IAAA;AAAA,MACL,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,UAAA;AAAA,QACV,kCAAA,EAAoC,EAAE,MAAA,EAAQ,CAAE,EAAA;AAAA,QAChD,YAAc,EAAA;AAAA,OAChB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,SAAA,EAAA,EAAU,WAAU,IAAK,EAAA,KAAA,EAAM,OAAM,SAAW,EAAA,OAAA,CAAQ,cACtD,EAAA,QAAA,EAAA,IAAA,CAAK,MACR,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,SAAA,EAAA,EAAU,KAAM,EAAA,MAAA,EAAO,WAAW,OAAQ,CAAA,cAAA,EACzC,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA,EAAQ,OAAO,IAAM,EAAA,WAAA,EAAa,KAAK,EAAA,IAAA,EAAC,WAAU,KACjD,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,OAAA;AAAA,YACR,KAAO,EAAA;AAAA,cACL,QAAU,EAAA,GAAA;AAAA,cACV,UAAY,EAAA,QAAA;AAAA,cACZ,QAAU,EAAA,QAAA;AAAA,cACV,YAAc,EAAA;AAAA,aAChB;AAAA,YAEC,QAAM,EAAA,IAAA,EAAA;AAAA;AAAA,WAEX,CACF,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,QAAQ,cACxC,EAAA,QAAA,EAAA,iBAAA,CAAkB,IAAM,EAAA,YAAY,CACvC,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,QAAQ,cACxC,EAAA,QAAA,EAAA,gBAAA,CAAiB,IAAM,EAAA,QAAQ,CAClC,EAAA,CAAA;AAAA,wBAEA,GAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,QAAQ,cACxC,EAAA,QAAA,EAAA,qBAAA,CAAsB,IAAM,EAAA,aAAa,CAC5C,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,OAAQ,CAAA,cAAA,EACzC,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,OAAS,EAAA,MAAM,MAAO,CAAA,IAAA,CAAK,IAAK,CAAA,GAAA,EAAK,QAAQ,CAAA,EACvD,QAAC,kBAAA,GAAA,CAAA,aAAA,EAAA,EAAc,QAAS,EAAA,OAAA,EAAQ,KAAO,EAAA,EAAE,KAAO,EAAA,SAAA,EAAa,EAAA,CAAA,EAC/D,CACF,EAAA;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"IncidentsTableRow.esm.js","sources":["../../../src/components/Servicenow/IncidentsTableRow.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 OpenInNewIcon from '@mui/icons-material/OpenInNew';\nimport IconButton from '@mui/material/IconButton';\nimport TableCell from '@mui/material/TableCell';\nimport TableRow from '@mui/material/TableRow';\nimport { makeStyles } from '@mui/styles';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\n\nimport { convertDateFormat } from '../../utils/stringUtils';\nimport {\n renderStatusLabel,\n usePriorityMap,\n useIncidentStateMap,\n} from '../../utils/incidentUtils';\nimport type { IncidentsData } from '../../types';\nimport { useTranslation } from '../../hooks/useTranslation';\n\nconst useStyles = makeStyles(() => ({\n tableCellStyle: {\n lineHeight: '1.5rem',\n fontSize: '0.875rem',\n },\n}));\n\nexport const IncidentsTableRow = ({ data }: { data: IncidentsData }) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const priorityMap = usePriorityMap();\n const incidentStateMap = useIncidentStateMap();\n\n return (\n <TableRow\n hover\n sx={{\n fontSize: '0.875rem',\n '&:last-child td, &:last-child th': { border: 0 },\n borderBottom: '1px solid #e0e0e0',\n }}\n >\n <TableCell component=\"th\" scope=\"row\" className={classes.tableCellStyle}>\n {data.number}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n <Tooltip title={data?.description} arrow placement=\"top\">\n <Typography\n variant=\"body1\"\n style={{\n maxWidth: 208,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n {data?.shortDescription}\n </Typography>\n </Tooltip>\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {convertDateFormat(data?.sysCreatedOn)}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {renderStatusLabel(priorityMap[data?.priority])}\n </TableCell>\n\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n {renderStatusLabel(incidentStateMap[data?.incidentState])}\n </TableCell>\n <TableCell align=\"left\" className={classes.tableCellStyle}>\n <Tooltip title={t('actions.openInServicenow')} arrow placement=\"top\">\n <IconButton onClick={() => window.open(data.url, '_blank')}>\n <OpenInNewIcon fontSize=\"small\" style={{ color: 'inherit' }} />\n </IconButton>\n </Tooltip>\n </TableCell>\n </TableRow>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAiCA,MAAM,SAAA,GAAY,WAAW,OAAO;AAAA,EAClC,cAAgB,EAAA;AAAA,IACd,UAAY,EAAA,QAAA;AAAA,IACZ,QAAU,EAAA;AAAA;AAEd,CAAE,CAAA,CAAA;AAEK,MAAM,iBAAoB,GAAA,CAAC,EAAE,IAAA,EAAoC,KAAA;AACtE,EAAA,MAAM,UAAU,SAAU,EAAA;AAC1B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA;AAC7B,EAAA,MAAM,cAAc,cAAe,EAAA;AACnC,EAAA,MAAM,mBAAmB,mBAAoB,EAAA;AAE7C,EACE,uBAAA,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,KAAK,EAAA,IAAA;AAAA,MACL,EAAI,EAAA;AAAA,QACF,QAAU,EAAA,UAAA;AAAA,QACV,kCAAA,EAAoC,EAAE,MAAA,EAAQ,CAAE,EAAA;AAAA,QAChD,YAAc,EAAA;AAAA,OAChB;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,SAAA,EAAA,EAAU,WAAU,IAAK,EAAA,KAAA,EAAM,OAAM,SAAW,EAAA,OAAA,CAAQ,cACtD,EAAA,QAAA,EAAA,IAAA,CAAK,MACR,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,SAAA,EAAA,EAAU,KAAM,EAAA,MAAA,EAAO,WAAW,OAAQ,CAAA,cAAA,EACzC,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA,EAAQ,OAAO,IAAM,EAAA,WAAA,EAAa,KAAK,EAAA,IAAA,EAAC,WAAU,KACjD,EAAA,QAAA,kBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAQ,EAAA,OAAA;AAAA,YACR,KAAO,EAAA;AAAA,cACL,QAAU,EAAA,GAAA;AAAA,cACV,UAAY,EAAA,QAAA;AAAA,cACZ,QAAU,EAAA,QAAA;AAAA,cACV,YAAc,EAAA;AAAA,aAChB;AAAA,YAEC,QAAM,EAAA,IAAA,EAAA;AAAA;AAAA,WAEX,CACF,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,QAAQ,cACxC,EAAA,QAAA,EAAA,iBAAA,CAAkB,IAAM,EAAA,YAAY,CACvC,EAAA,CAAA;AAAA,wBACC,GAAA,CAAA,SAAA,EAAA,EAAU,KAAM,EAAA,MAAA,EAAO,SAAW,EAAA,OAAA,CAAQ,cACxC,EAAA,QAAA,EAAA,iBAAA,CAAkB,WAAY,CAAA,IAAA,EAAM,QAAQ,CAAC,CAChD,EAAA,CAAA;AAAA,wBAEC,GAAA,CAAA,SAAA,EAAA,EAAU,KAAM,EAAA,MAAA,EAAO,SAAW,EAAA,OAAA,CAAQ,cACxC,EAAA,QAAA,EAAA,iBAAA,CAAkB,gBAAiB,CAAA,IAAA,EAAM,aAAa,CAAC,CAC1D,EAAA,CAAA;AAAA,4BACC,SAAU,EAAA,EAAA,KAAA,EAAM,MAAO,EAAA,SAAA,EAAW,QAAQ,cACzC,EAAA,QAAA,kBAAA,GAAA,CAAC,OAAQ,EAAA,EAAA,KAAA,EAAO,EAAE,0BAA0B,CAAA,EAAG,OAAK,IAAC,EAAA,SAAA,EAAU,OAC7D,QAAC,kBAAA,GAAA,CAAA,UAAA,EAAA,EAAW,OAAS,EAAA,MAAM,OAAO,IAAK,CAAA,IAAA,CAAK,GAAK,EAAA,QAAQ,GACvD,QAAC,kBAAA,GAAA,CAAA,aAAA,EAAA,EAAc,QAAS,EAAA,OAAA,EAAQ,OAAO,EAAE,KAAA,EAAO,WAAa,EAAA,CAAA,EAC/D,GACF,CACF,EAAA;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -7,11 +7,10 @@ import CheckBoxIcon from '@mui/icons-material/CheckBox';
7
7
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
8
8
  import InputLabel from '@mui/material/InputLabel';
9
9
  import TextField from '@mui/material/TextField';
10
- import { PRIORITY_MAP, INCIDENT_STATE_MAP, renderStatusLabel } from '../../utils/incidentUtils.esm.js';
10
+ import { renderStatusLabel } from '../../utils/incidentUtils.esm.js';
11
11
 
12
12
  const IncidentEnumFilter = ({
13
13
  label,
14
- filterKey,
15
14
  dataMap,
16
15
  value,
17
16
  onChange
@@ -48,7 +47,7 @@ const IncidentEnumFilter = ({
48
47
  onChange,
49
48
  renderOption: (renderProps, option, { selected }) => {
50
49
  const { key, ...optionProps } = renderProps;
51
- const statusData = filterKey === "priority" ? PRIORITY_MAP[Number(option.value)] : INCIDENT_STATE_MAP[Number(option.value)];
50
+ const statusData = dataMap[Number(option.value)];
52
51
  return /* @__PURE__ */ jsxs("li", { ...optionProps, children: [
53
52
  /* @__PURE__ */ jsx(
54
53
  Checkbox,
@@ -1 +1 @@
1
- {"version":3,"file":"IncidentEnumFilter.esm.js","sources":["../../../src/components/shared-components/IncidentEnumFilter.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\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 { SelectItem } from '@backstage/core-components';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport InputLabel from '@mui/material/InputLabel';\nimport TextField from '@mui/material/TextField';\nimport {\n INCIDENT_STATE_MAP,\n PRIORITY_MAP,\n renderStatusLabel,\n} from '../../utils/incidentUtils';\n\ntype SourceMap = Record<number, { label: string }>;\n\nexport interface IncidentEnumFilterProps {\n label: string;\n filterKey: string;\n dataMap: SourceMap;\n value: SelectItem[];\n onChange: (event: any, value: SelectItem[]) => void;\n}\n\nexport const IncidentEnumFilter = ({\n label,\n filterKey,\n dataMap,\n value,\n onChange,\n}: IncidentEnumFilterProps) => {\n const items: SelectItem[] = Object.entries(dataMap).map(\n ([key, itemValue]) => ({\n value: key,\n label: itemValue.label,\n }),\n );\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <InputLabel\n sx={{\n transform: 'initial',\n fontWeight: 'bold',\n fontSize: theme => theme.typography.body2.fontSize,\n fontFamily: theme => theme.typography.fontFamily,\n color: theme => theme.palette.text.primary,\n }}\n >\n {label}\n </InputLabel>\n <Autocomplete\n multiple\n disableCloseOnSelect\n aria-label={label}\n options={items}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n getOptionLabel={option => option.label}\n onChange={onChange}\n renderOption={(renderProps, option, { selected }) => {\n const { key, ...optionProps } = renderProps;\n const statusData =\n filterKey === 'priority'\n ? PRIORITY_MAP[Number(option.value)]\n : INCIDENT_STATE_MAP[Number(option.value)];\n\n return (\n <li key={key} {...optionProps}>\n <Checkbox\n icon={<CheckBoxOutlineBlankIcon fontSize=\"small\" />}\n checkedIcon={<CheckBoxIcon fontSize=\"small\" />}\n checked={selected}\n />\n {renderStatusLabel(statusData)}\n </li>\n );\n }}\n size=\"small\"\n value={value}\n popupIcon={\n <ExpandMoreIcon\n data-testid={`select-${label.toLowerCase().replace(/\\s/g, '-')}`}\n />\n }\n renderInput={params => <TextField {...params} variant=\"outlined\" />}\n />\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAyCO,MAAM,qBAAqB,CAAC;AAAA,EACjC,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAA+B,KAAA;AAC7B,EAAA,MAAM,KAAsB,GAAA,MAAA,CAAO,OAAQ,CAAA,OAAO,CAAE,CAAA,GAAA;AAAA,IAClD,CAAC,CAAC,GAAK,EAAA,SAAS,CAAO,MAAA;AAAA,MACrB,KAAO,EAAA,GAAA;AAAA,MACP,OAAO,SAAU,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EACE,uBAAA,IAAA,CAAC,OAAI,EAAI,EAAA,EAAE,SAAS,MAAQ,EAAA,aAAA,EAAe,UACzC,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,SAAW,EAAA,SAAA;AAAA,UACX,UAAY,EAAA,MAAA;AAAA,UACZ,QAAU,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,QAAA;AAAA,UAC1C,UAAA,EAAY,CAAS,KAAA,KAAA,KAAA,CAAM,UAAW,CAAA,UAAA;AAAA,UACtC,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA;AAAA,SACrC;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAQ,EAAA,IAAA;AAAA,QACR,oBAAoB,EAAA,IAAA;AAAA,QACpB,YAAY,EAAA,KAAA;AAAA,QACZ,OAAS,EAAA,KAAA;AAAA,QACT,sBAAsB,CAAC,MAAA,EAAQ,GAAQ,KAAA,MAAA,CAAO,UAAU,GAAI,CAAA,KAAA;AAAA,QAC5D,cAAA,EAAgB,YAAU,MAAO,CAAA,KAAA;AAAA,QACjC,QAAA;AAAA,QACA,cAAc,CAAC,WAAA,EAAa,MAAQ,EAAA,EAAE,UAAe,KAAA;AACnD,UAAA,MAAM,EAAE,GAAA,EAAK,GAAG,WAAA,EAAgB,GAAA,WAAA;AAChC,UAAA,MAAM,UACJ,GAAA,SAAA,KAAc,UACV,GAAA,YAAA,CAAa,MAAO,CAAA,MAAA,CAAO,KAAK,CAAC,CACjC,GAAA,kBAAA,CAAmB,MAAO,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAE7C,UACE,uBAAA,IAAA,CAAC,IAAc,EAAA,EAAA,GAAG,WAChB,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAM,kBAAA,GAAA,CAAC,wBAAyB,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,gBACjD,WAAa,kBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,gBAC5C,OAAS,EAAA;AAAA;AAAA,aACX;AAAA,YACC,kBAAkB,UAAU;AAAA,WAAA,EAAA,EANtB,GAOT,CAAA;AAAA,SAEJ;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,KAAA;AAAA,QACA,SACE,kBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,UAAU,KAAM,CAAA,WAAA,GAAc,OAAQ,CAAA,KAAA,EAAO,GAAG,CAAC,CAAA;AAAA;AAAA,SAChE;AAAA,QAEF,aAAa,CAAU,MAAA,qBAAA,GAAA,CAAC,aAAW,GAAG,MAAA,EAAQ,SAAQ,UAAW,EAAA;AAAA;AAAA;AACnE,GACF,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"IncidentEnumFilter.esm.js","sources":["../../../src/components/shared-components/IncidentEnumFilter.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\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 { SelectItem } from '@backstage/core-components';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport InputLabel from '@mui/material/InputLabel';\nimport TextField from '@mui/material/TextField';\nimport { renderStatusLabel, StatusData } from '../../utils/incidentUtils';\n\nexport interface IncidentEnumFilterProps {\n label: string;\n /** @deprecated No longer used, kept for backwards compatibility */\n filterKey?: string;\n dataMap: Record<number, StatusData>;\n value: SelectItem[];\n onChange: (event: any, value: SelectItem[]) => void;\n}\n\nexport const IncidentEnumFilter = ({\n label,\n dataMap,\n value,\n onChange,\n}: IncidentEnumFilterProps) => {\n const items: SelectItem[] = Object.entries(dataMap).map(\n ([key, itemValue]) => ({\n value: key,\n label: itemValue.label,\n }),\n );\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n <InputLabel\n sx={{\n transform: 'initial',\n fontWeight: 'bold',\n fontSize: theme => theme.typography.body2.fontSize,\n fontFamily: theme => theme.typography.fontFamily,\n color: theme => theme.palette.text.primary,\n }}\n >\n {label}\n </InputLabel>\n <Autocomplete\n multiple\n disableCloseOnSelect\n aria-label={label}\n options={items}\n isOptionEqualToValue={(option, val) => option.value === val.value}\n getOptionLabel={option => option.label}\n onChange={onChange}\n renderOption={(renderProps, option, { selected }) => {\n const { key, ...optionProps } = renderProps;\n const statusData = dataMap[Number(option.value)];\n\n return (\n <li key={key} {...optionProps}>\n <Checkbox\n icon={<CheckBoxOutlineBlankIcon fontSize=\"small\" />}\n checkedIcon={<CheckBoxIcon fontSize=\"small\" />}\n checked={selected}\n />\n {renderStatusLabel(statusData)}\n </li>\n );\n }}\n size=\"small\"\n value={value}\n popupIcon={\n <ExpandMoreIcon\n data-testid={`select-${label.toLowerCase().replace(/\\s/g, '-')}`}\n />\n }\n renderInput={params => <TextField {...params} variant=\"outlined\" />}\n />\n </Box>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAoCO,MAAM,qBAAqB,CAAC;AAAA,EACjC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAA+B,KAAA;AAC7B,EAAA,MAAM,KAAsB,GAAA,MAAA,CAAO,OAAQ,CAAA,OAAO,CAAE,CAAA,GAAA;AAAA,IAClD,CAAC,CAAC,GAAK,EAAA,SAAS,CAAO,MAAA;AAAA,MACrB,KAAO,EAAA,GAAA;AAAA,MACP,OAAO,SAAU,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EACE,uBAAA,IAAA,CAAC,OAAI,EAAI,EAAA,EAAE,SAAS,MAAQ,EAAA,aAAA,EAAe,UACzC,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,EAAI,EAAA;AAAA,UACF,SAAW,EAAA,SAAA;AAAA,UACX,UAAY,EAAA,MAAA;AAAA,UACZ,QAAU,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,QAAA;AAAA,UAC1C,UAAA,EAAY,CAAS,KAAA,KAAA,KAAA,CAAM,UAAW,CAAA,UAAA;AAAA,UACtC,KAAO,EAAA,CAAA,KAAA,KAAS,KAAM,CAAA,OAAA,CAAQ,IAAK,CAAA;AAAA,SACrC;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,QAAQ,EAAA,IAAA;AAAA,QACR,oBAAoB,EAAA,IAAA;AAAA,QACpB,YAAY,EAAA,KAAA;AAAA,QACZ,OAAS,EAAA,KAAA;AAAA,QACT,sBAAsB,CAAC,MAAA,EAAQ,GAAQ,KAAA,MAAA,CAAO,UAAU,GAAI,CAAA,KAAA;AAAA,QAC5D,cAAA,EAAgB,YAAU,MAAO,CAAA,KAAA;AAAA,QACjC,QAAA;AAAA,QACA,cAAc,CAAC,WAAA,EAAa,MAAQ,EAAA,EAAE,UAAe,KAAA;AACnD,UAAA,MAAM,EAAE,GAAA,EAAK,GAAG,WAAA,EAAgB,GAAA,WAAA;AAChC,UAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,MAAO,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AAE/C,UACE,uBAAA,IAAA,CAAC,IAAc,EAAA,EAAA,GAAG,WAChB,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,IAAM,kBAAA,GAAA,CAAC,wBAAyB,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,gBACjD,WAAa,kBAAA,GAAA,CAAC,YAAa,EAAA,EAAA,QAAA,EAAS,OAAQ,EAAA,CAAA;AAAA,gBAC5C,OAAS,EAAA;AAAA;AAAA,aACX;AAAA,YACC,kBAAkB,UAAU;AAAA,WAAA,EAAA,EANtB,GAOT,CAAA;AAAA,SAEJ;AAAA,QACA,IAAK,EAAA,OAAA;AAAA,QACL,KAAA;AAAA,QACA,SACE,kBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,UAAU,KAAM,CAAA,WAAA,GAAc,OAAQ,CAAA,KAAA,EAAO,GAAG,CAAC,CAAA;AAAA;AAAA,SAChE;AAAA,QAEF,aAAa,CAAU,MAAA,qBAAA,GAAA,CAAC,aAAW,GAAG,MAAA,EAAQ,SAAQ,UAAW,EAAA;AAAA;AAAA;AACnE,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,13 @@
1
+ import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
2
+ import '../translations/index.esm.js';
3
+ import { servicenowTranslationRef } from '../translations/ref.esm.js';
4
+
5
+ const useTranslation = () => {
6
+ const { t } = useTranslationRef(servicenowTranslationRef);
7
+ return {
8
+ t
9
+ };
10
+ };
11
+
12
+ export { useTranslation };
13
+ //# sourceMappingURL=useTranslation.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTranslation.esm.js","sources":["../../src/hooks/useTranslation.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport {\n useTranslationRef,\n TranslationRef,\n} from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from '../translations';\n\ntype ServicenowMessages =\n typeof servicenowTranslationRef extends TranslationRef<\n string,\n infer TMessages extends { [x: string]: string }\n >\n ? TMessages\n : never;\n\n/**\n * Hook to access the ServiceNow plugin translations.\n * @alpha\n */\nexport const useTranslation = (): {\n t: (\n key: keyof ServicenowMessages,\n options?: Record<string, unknown>,\n ) => string;\n} => {\n const { t } = useTranslationRef(servicenowTranslationRef);\n return {\n t: t as unknown as (\n key: keyof ServicenowMessages,\n options?: Record<string, unknown>,\n ) => string,\n };\n};\n"],"names":[],"mappings":";;;;AAiCO,MAAM,iBAAiB,MAKzB;AACH,EAAA,MAAM,EAAE,CAAA,EAAM,GAAA,iBAAA,CAAkB,wBAAwB,CAAA;AACxD,EAAO,OAAA;AAAA,IACL;AAAA,GAIF;AACF;;;;"}
@@ -0,0 +1,37 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslationDe = createTranslationMessages({
5
+ ref: servicenowTranslationRef,
6
+ messages: {
7
+ "page.title": "ServiceNow Tickets",
8
+ "page.titleWithCount": "ServiceNow Tickets ({{count}})",
9
+ "table.searchPlaceholder": "Suchen",
10
+ "table.labelRowsSelect": "{{count}} Zeilen",
11
+ "table.columns.incidentNumber": "Vorfallnummer",
12
+ "table.columns.description": "Beschreibung",
13
+ "table.columns.created": "Erstellt",
14
+ "table.columns.priority": "Priorit\xE4t",
15
+ "table.columns.state": "Status",
16
+ "table.columns.actions": "Aktionen",
17
+ "table.emptyContent": "Keine Eintr\xE4ge gefunden",
18
+ "filter.state": "Status",
19
+ "filter.priority": "Priorit\xE4t",
20
+ "priority.critical": "Kritisch",
21
+ "priority.high": "Hoch",
22
+ "priority.moderate": "Mittel",
23
+ "priority.low": "Niedrig",
24
+ "priority.planning": "Planung",
25
+ "incidentState.new": "Neu",
26
+ "incidentState.inProgress": "In Bearbeitung",
27
+ "incidentState.onHold": "Wartend",
28
+ "incidentState.resolved": "Gel\xF6st",
29
+ "incidentState.closed": "Geschlossen",
30
+ "incidentState.cancelled": "Abgebrochen",
31
+ "errors.loadingIncidents": "Fehler beim Laden der Vorf\xE4lle: {{error}}",
32
+ "actions.openInServicenow": "In ServiceNow \xF6ffnen"
33
+ }
34
+ });
35
+
36
+ export { servicenowTranslationDe as default };
37
+ //# sourceMappingURL=de.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\nconst servicenowTranslationDe = createTranslationMessages({\n ref: servicenowTranslationRef,\n messages: {\n 'page.title': 'ServiceNow Tickets',\n 'page.titleWithCount': 'ServiceNow Tickets ({{count}})',\n 'table.searchPlaceholder': 'Suchen',\n 'table.labelRowsSelect': '{{count}} Zeilen',\n 'table.columns.incidentNumber': 'Vorfallnummer',\n 'table.columns.description': 'Beschreibung',\n 'table.columns.created': 'Erstellt',\n 'table.columns.priority': 'Priorität',\n 'table.columns.state': 'Status',\n 'table.columns.actions': 'Aktionen',\n 'table.emptyContent': 'Keine Einträge gefunden',\n 'filter.state': 'Status',\n 'filter.priority': 'Priorität',\n 'priority.critical': 'Kritisch',\n 'priority.high': 'Hoch',\n 'priority.moderate': 'Mittel',\n 'priority.low': 'Niedrig',\n 'priority.planning': 'Planung',\n 'incidentState.new': 'Neu',\n 'incidentState.inProgress': 'In Bearbeitung',\n 'incidentState.onHold': 'Wartend',\n 'incidentState.resolved': 'Gelöst',\n 'incidentState.closed': 'Geschlossen',\n 'incidentState.cancelled': 'Abgebrochen',\n 'errors.loadingIncidents': 'Fehler beim Laden der Vorfälle: {{error}}',\n 'actions.openInServicenow': 'In ServiceNow öffnen',\n },\n});\n\nexport default servicenowTranslationDe;\n"],"names":[],"mappings":";;;AAkBA,MAAM,0BAA0B,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,wBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,oBAAA;AAAA,IACd,qBAAuB,EAAA,gCAAA;AAAA,IACvB,yBAA2B,EAAA,QAAA;AAAA,IAC3B,uBAAyB,EAAA,kBAAA;AAAA,IACzB,8BAAgC,EAAA,eAAA;AAAA,IAChC,2BAA6B,EAAA,cAAA;AAAA,IAC7B,uBAAyB,EAAA,UAAA;AAAA,IACzB,wBAA0B,EAAA,cAAA;AAAA,IAC1B,qBAAuB,EAAA,QAAA;AAAA,IACvB,uBAAyB,EAAA,UAAA;AAAA,IACzB,oBAAsB,EAAA,4BAAA;AAAA,IACtB,cAAgB,EAAA,QAAA;AAAA,IAChB,iBAAmB,EAAA,cAAA;AAAA,IACnB,mBAAqB,EAAA,UAAA;AAAA,IACrB,eAAiB,EAAA,MAAA;AAAA,IACjB,mBAAqB,EAAA,QAAA;AAAA,IACrB,cAAgB,EAAA,SAAA;AAAA,IAChB,mBAAqB,EAAA,SAAA;AAAA,IACrB,mBAAqB,EAAA,KAAA;AAAA,IACrB,0BAA4B,EAAA,gBAAA;AAAA,IAC5B,sBAAwB,EAAA,SAAA;AAAA,IACxB,wBAA0B,EAAA,WAAA;AAAA,IAC1B,sBAAwB,EAAA,aAAA;AAAA,IACxB,yBAA2B,EAAA,aAAA;AAAA,IAC3B,yBAA2B,EAAA,8CAAA;AAAA,IAC3B,0BAA4B,EAAA;AAAA;AAEhC,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslationEs = createTranslationMessages({
5
+ ref: servicenowTranslationRef,
6
+ messages: {
7
+ "page.title": "Tickets de ServiceNow",
8
+ "page.titleWithCount": "Tickets de ServiceNow ({{count}})",
9
+ "table.searchPlaceholder": "Buscar",
10
+ "table.labelRowsSelect": "{{count}} filas",
11
+ "table.columns.incidentNumber": "N\xFAmero de incidente",
12
+ "table.columns.description": "Descripci\xF3n",
13
+ "table.columns.created": "Creado",
14
+ "table.columns.priority": "Prioridad",
15
+ "table.columns.state": "Estado",
16
+ "table.columns.actions": "Acciones",
17
+ "table.emptyContent": "No se encontraron registros",
18
+ "filter.state": "Estado",
19
+ "filter.priority": "Prioridad",
20
+ "priority.critical": "Cr\xEDtica",
21
+ "priority.high": "Alta",
22
+ "priority.moderate": "Moderada",
23
+ "priority.low": "Baja",
24
+ "priority.planning": "Planificaci\xF3n",
25
+ "incidentState.new": "Nuevo",
26
+ "incidentState.inProgress": "En progreso",
27
+ "incidentState.onHold": "En espera",
28
+ "incidentState.resolved": "Resuelto",
29
+ "incidentState.closed": "Cerrado",
30
+ "incidentState.cancelled": "Cancelado",
31
+ "errors.loadingIncidents": "Error al cargar incidentes: {{error}}",
32
+ "actions.openInServicenow": "Abrir en ServiceNow"
33
+ }
34
+ });
35
+
36
+ export { servicenowTranslationEs as default };
37
+ //# sourceMappingURL=es.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"es.esm.js","sources":["../../src/translations/es.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\nconst servicenowTranslationEs = createTranslationMessages({\n ref: servicenowTranslationRef,\n messages: {\n 'page.title': 'Tickets de ServiceNow',\n 'page.titleWithCount': 'Tickets de ServiceNow ({{count}})',\n 'table.searchPlaceholder': 'Buscar',\n 'table.labelRowsSelect': '{{count}} filas',\n 'table.columns.incidentNumber': 'Número de incidente',\n 'table.columns.description': 'Descripción',\n 'table.columns.created': 'Creado',\n 'table.columns.priority': 'Prioridad',\n 'table.columns.state': 'Estado',\n 'table.columns.actions': 'Acciones',\n 'table.emptyContent': 'No se encontraron registros',\n 'filter.state': 'Estado',\n 'filter.priority': 'Prioridad',\n 'priority.critical': 'Crítica',\n 'priority.high': 'Alta',\n 'priority.moderate': 'Moderada',\n 'priority.low': 'Baja',\n 'priority.planning': 'Planificación',\n 'incidentState.new': 'Nuevo',\n 'incidentState.inProgress': 'En progreso',\n 'incidentState.onHold': 'En espera',\n 'incidentState.resolved': 'Resuelto',\n 'incidentState.closed': 'Cerrado',\n 'incidentState.cancelled': 'Cancelado',\n 'errors.loadingIncidents': 'Error al cargar incidentes: {{error}}',\n 'actions.openInServicenow': 'Abrir en ServiceNow',\n },\n});\n\nexport default servicenowTranslationEs;\n"],"names":[],"mappings":";;;AAkBA,MAAM,0BAA0B,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,wBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,uBAAA;AAAA,IACd,qBAAuB,EAAA,mCAAA;AAAA,IACvB,yBAA2B,EAAA,QAAA;AAAA,IAC3B,uBAAyB,EAAA,iBAAA;AAAA,IACzB,8BAAgC,EAAA,wBAAA;AAAA,IAChC,2BAA6B,EAAA,gBAAA;AAAA,IAC7B,uBAAyB,EAAA,QAAA;AAAA,IACzB,wBAA0B,EAAA,WAAA;AAAA,IAC1B,qBAAuB,EAAA,QAAA;AAAA,IACvB,uBAAyB,EAAA,UAAA;AAAA,IACzB,oBAAsB,EAAA,6BAAA;AAAA,IACtB,cAAgB,EAAA,QAAA;AAAA,IAChB,iBAAmB,EAAA,WAAA;AAAA,IACnB,mBAAqB,EAAA,YAAA;AAAA,IACrB,eAAiB,EAAA,MAAA;AAAA,IACjB,mBAAqB,EAAA,UAAA;AAAA,IACrB,cAAgB,EAAA,MAAA;AAAA,IAChB,mBAAqB,EAAA,kBAAA;AAAA,IACrB,mBAAqB,EAAA,OAAA;AAAA,IACrB,0BAA4B,EAAA,aAAA;AAAA,IAC5B,sBAAwB,EAAA,WAAA;AAAA,IACxB,wBAA0B,EAAA,UAAA;AAAA,IAC1B,sBAAwB,EAAA,SAAA;AAAA,IACxB,yBAA2B,EAAA,WAAA;AAAA,IAC3B,yBAA2B,EAAA,uCAAA;AAAA,IAC3B,0BAA4B,EAAA;AAAA;AAEhC,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslationFr = createTranslationMessages({
5
+ ref: servicenowTranslationRef,
6
+ messages: {
7
+ "page.title": "Tickets ServiceNow",
8
+ "page.titleWithCount": "Tickets ServiceNow ({{count}})",
9
+ "table.searchPlaceholder": "Rechercher",
10
+ "table.labelRowsSelect": "{{count}} lignes",
11
+ "table.columns.incidentNumber": "Num\xE9ro d'incident",
12
+ "table.columns.description": "Description",
13
+ "table.columns.created": "Cr\xE9\xE9",
14
+ "table.columns.priority": "Priorit\xE9",
15
+ "table.columns.state": "\xC9tat",
16
+ "table.columns.actions": "Actions",
17
+ "table.emptyContent": "Aucun enregistrement trouv\xE9",
18
+ "filter.state": "\xC9tat",
19
+ "filter.priority": "Priorit\xE9",
20
+ "priority.critical": "Critique",
21
+ "priority.high": "\xC9lev\xE9e",
22
+ "priority.moderate": "Mod\xE9r\xE9e",
23
+ "priority.low": "Basse",
24
+ "priority.planning": "Planification",
25
+ "incidentState.new": "Nouveau",
26
+ "incidentState.inProgress": "En cours",
27
+ "incidentState.onHold": "En attente",
28
+ "incidentState.resolved": "R\xE9solu",
29
+ "incidentState.closed": "Ferm\xE9",
30
+ "incidentState.cancelled": "Annul\xE9",
31
+ "errors.loadingIncidents": "Erreur lors du chargement des incidents: {{error}}",
32
+ "actions.openInServicenow": "Ouvrir dans ServiceNow"
33
+ }
34
+ });
35
+
36
+ export { servicenowTranslationFr as default };
37
+ //# sourceMappingURL=fr.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.esm.js","sources":["../../src/translations/fr.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\nconst servicenowTranslationFr = createTranslationMessages({\n ref: servicenowTranslationRef,\n messages: {\n 'page.title': 'Tickets ServiceNow',\n 'page.titleWithCount': 'Tickets ServiceNow ({{count}})',\n 'table.searchPlaceholder': 'Rechercher',\n 'table.labelRowsSelect': '{{count}} lignes',\n 'table.columns.incidentNumber': \"Numéro d'incident\",\n 'table.columns.description': 'Description',\n 'table.columns.created': 'Créé',\n 'table.columns.priority': 'Priorité',\n 'table.columns.state': 'État',\n 'table.columns.actions': 'Actions',\n 'table.emptyContent': 'Aucun enregistrement trouvé',\n 'filter.state': 'État',\n 'filter.priority': 'Priorité',\n 'priority.critical': 'Critique',\n 'priority.high': 'Élevée',\n 'priority.moderate': 'Modérée',\n 'priority.low': 'Basse',\n 'priority.planning': 'Planification',\n 'incidentState.new': 'Nouveau',\n 'incidentState.inProgress': 'En cours',\n 'incidentState.onHold': 'En attente',\n 'incidentState.resolved': 'Résolu',\n 'incidentState.closed': 'Fermé',\n 'incidentState.cancelled': 'Annulé',\n 'errors.loadingIncidents':\n 'Erreur lors du chargement des incidents: {{error}}',\n 'actions.openInServicenow': 'Ouvrir dans ServiceNow',\n },\n});\n\nexport default servicenowTranslationFr;\n"],"names":[],"mappings":";;;AAkBA,MAAM,0BAA0B,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,wBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,oBAAA;AAAA,IACd,qBAAuB,EAAA,gCAAA;AAAA,IACvB,yBAA2B,EAAA,YAAA;AAAA,IAC3B,uBAAyB,EAAA,kBAAA;AAAA,IACzB,8BAAgC,EAAA,sBAAA;AAAA,IAChC,2BAA6B,EAAA,aAAA;AAAA,IAC7B,uBAAyB,EAAA,YAAA;AAAA,IACzB,wBAA0B,EAAA,aAAA;AAAA,IAC1B,qBAAuB,EAAA,SAAA;AAAA,IACvB,uBAAyB,EAAA,SAAA;AAAA,IACzB,oBAAsB,EAAA,gCAAA;AAAA,IACtB,cAAgB,EAAA,SAAA;AAAA,IAChB,iBAAmB,EAAA,aAAA;AAAA,IACnB,mBAAqB,EAAA,UAAA;AAAA,IACrB,eAAiB,EAAA,cAAA;AAAA,IACjB,mBAAqB,EAAA,eAAA;AAAA,IACrB,cAAgB,EAAA,OAAA;AAAA,IAChB,mBAAqB,EAAA,eAAA;AAAA,IACrB,mBAAqB,EAAA,SAAA;AAAA,IACrB,0BAA4B,EAAA,UAAA;AAAA,IAC5B,sBAAwB,EAAA,YAAA;AAAA,IACxB,wBAA0B,EAAA,WAAA;AAAA,IAC1B,sBAAwB,EAAA,UAAA;AAAA,IACxB,yBAA2B,EAAA,WAAA;AAAA,IAC3B,yBACE,EAAA,oDAAA;AAAA,IACF,0BAA4B,EAAA;AAAA;AAEhC,CAAC;;;;"}
@@ -0,0 +1,16 @@
1
+ import { createTranslationResource } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslations = createTranslationResource({
5
+ ref: servicenowTranslationRef,
6
+ translations: {
7
+ de: () => import('./de.esm.js'),
8
+ fr: () => import('./fr.esm.js'),
9
+ it: () => import('./it.esm.js'),
10
+ es: () => import('./es.esm.js'),
11
+ ja: () => import('./ja.esm.js')
12
+ }
13
+ });
14
+
15
+ export { servicenowTranslationRef, servicenowTranslations };
16
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/translations/index.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationResource } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\n/**\n * Translation resources for the ServiceNow plugin.\n * @alpha\n */\nexport const servicenowTranslations = createTranslationResource({\n ref: servicenowTranslationRef,\n translations: {\n de: () => import('./de'),\n fr: () => import('./fr'),\n it: () => import('./it'),\n es: () => import('./es'),\n ja: () => import('./ja'),\n },\n});\n\nexport { servicenowTranslationRef };\n"],"names":[],"mappings":";;;AAsBO,MAAM,yBAAyB,yBAA0B,CAAA;AAAA,EAC9D,GAAK,EAAA,wBAAA;AAAA,EACL,YAAc,EAAA;AAAA,IACZ,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM;AAAA;AAE3B,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslationIt = createTranslationMessages({
5
+ ref: servicenowTranslationRef,
6
+ messages: {
7
+ "page.title": "Ticket ServiceNow",
8
+ "page.titleWithCount": "Ticket ServiceNow ({{count}})",
9
+ "table.searchPlaceholder": "Cerca",
10
+ "table.labelRowsSelect": "{{count}} righe",
11
+ "table.columns.incidentNumber": "Numero incidente",
12
+ "table.columns.description": "Descrizione",
13
+ "table.columns.created": "Creato",
14
+ "table.columns.priority": "Priorit\xE0",
15
+ "table.columns.state": "Stato",
16
+ "table.columns.actions": "Azioni",
17
+ "table.emptyContent": "Nessun record trovato",
18
+ "filter.state": "Stato",
19
+ "filter.priority": "Priorit\xE0",
20
+ "priority.critical": "Critica",
21
+ "priority.high": "Alta",
22
+ "priority.moderate": "Moderata",
23
+ "priority.low": "Bassa",
24
+ "priority.planning": "Pianificazione",
25
+ "incidentState.new": "Nuovo",
26
+ "incidentState.inProgress": "In corso",
27
+ "incidentState.onHold": "In attesa",
28
+ "incidentState.resolved": "Risolto",
29
+ "incidentState.closed": "Chiuso",
30
+ "incidentState.cancelled": "Annullato",
31
+ "errors.loadingIncidents": "Errore durante il caricamento degli incidenti: {{error}}",
32
+ "actions.openInServicenow": "Apri in ServiceNow"
33
+ }
34
+ });
35
+
36
+ export { servicenowTranslationIt as default };
37
+ //# sourceMappingURL=it.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"it.esm.js","sources":["../../src/translations/it.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\nconst servicenowTranslationIt = createTranslationMessages({\n ref: servicenowTranslationRef,\n messages: {\n 'page.title': 'Ticket ServiceNow',\n 'page.titleWithCount': 'Ticket ServiceNow ({{count}})',\n 'table.searchPlaceholder': 'Cerca',\n 'table.labelRowsSelect': '{{count}} righe',\n 'table.columns.incidentNumber': 'Numero incidente',\n 'table.columns.description': 'Descrizione',\n 'table.columns.created': 'Creato',\n 'table.columns.priority': 'Priorità',\n 'table.columns.state': 'Stato',\n 'table.columns.actions': 'Azioni',\n 'table.emptyContent': 'Nessun record trovato',\n 'filter.state': 'Stato',\n 'filter.priority': 'Priorità',\n 'priority.critical': 'Critica',\n 'priority.high': 'Alta',\n 'priority.moderate': 'Moderata',\n 'priority.low': 'Bassa',\n 'priority.planning': 'Pianificazione',\n 'incidentState.new': 'Nuovo',\n 'incidentState.inProgress': 'In corso',\n 'incidentState.onHold': 'In attesa',\n 'incidentState.resolved': 'Risolto',\n 'incidentState.closed': 'Chiuso',\n 'incidentState.cancelled': 'Annullato',\n 'errors.loadingIncidents':\n 'Errore durante il caricamento degli incidenti: {{error}}',\n 'actions.openInServicenow': 'Apri in ServiceNow',\n },\n});\n\nexport default servicenowTranslationIt;\n"],"names":[],"mappings":";;;AAkBA,MAAM,0BAA0B,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,wBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,mBAAA;AAAA,IACd,qBAAuB,EAAA,+BAAA;AAAA,IACvB,yBAA2B,EAAA,OAAA;AAAA,IAC3B,uBAAyB,EAAA,iBAAA;AAAA,IACzB,8BAAgC,EAAA,kBAAA;AAAA,IAChC,2BAA6B,EAAA,aAAA;AAAA,IAC7B,uBAAyB,EAAA,QAAA;AAAA,IACzB,wBAA0B,EAAA,aAAA;AAAA,IAC1B,qBAAuB,EAAA,OAAA;AAAA,IACvB,uBAAyB,EAAA,QAAA;AAAA,IACzB,oBAAsB,EAAA,uBAAA;AAAA,IACtB,cAAgB,EAAA,OAAA;AAAA,IAChB,iBAAmB,EAAA,aAAA;AAAA,IACnB,mBAAqB,EAAA,SAAA;AAAA,IACrB,eAAiB,EAAA,MAAA;AAAA,IACjB,mBAAqB,EAAA,UAAA;AAAA,IACrB,cAAgB,EAAA,OAAA;AAAA,IAChB,mBAAqB,EAAA,gBAAA;AAAA,IACrB,mBAAqB,EAAA,OAAA;AAAA,IACrB,0BAA4B,EAAA,UAAA;AAAA,IAC5B,sBAAwB,EAAA,WAAA;AAAA,IACxB,wBAA0B,EAAA,SAAA;AAAA,IAC1B,sBAAwB,EAAA,QAAA;AAAA,IACxB,yBAA2B,EAAA,WAAA;AAAA,IAC3B,yBACE,EAAA,0DAAA;AAAA,IACF,0BAA4B,EAAA;AAAA;AAEhC,CAAC;;;;"}
@@ -0,0 +1,37 @@
1
+ import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
2
+ import { servicenowTranslationRef } from './ref.esm.js';
3
+
4
+ const servicenowTranslationJa = createTranslationMessages({
5
+ ref: servicenowTranslationRef,
6
+ messages: {
7
+ "page.title": "ServiceNow\u30C1\u30B1\u30C3\u30C8",
8
+ "page.titleWithCount": "ServiceNow\u30C1\u30B1\u30C3\u30C8 ({{count}})",
9
+ "table.searchPlaceholder": "\u691C\u7D22",
10
+ "table.labelRowsSelect": "{{count}} \u884C",
11
+ "table.columns.incidentNumber": "\u30A4\u30F3\u30B7\u30C7\u30F3\u30C8\u756A\u53F7",
12
+ "table.columns.description": "\u8AAC\u660E",
13
+ "table.columns.created": "\u4F5C\u6210\u65E5\u6642",
14
+ "table.columns.priority": "\u512A\u5148\u5EA6",
15
+ "table.columns.state": "\u72B6\u614B",
16
+ "table.columns.actions": "\u30A2\u30AF\u30B7\u30E7\u30F3",
17
+ "table.emptyContent": "\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093",
18
+ "filter.state": "\u72B6\u614B",
19
+ "filter.priority": "\u512A\u5148\u5EA6",
20
+ "priority.critical": "\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB",
21
+ "priority.high": "\u9AD8",
22
+ "priority.moderate": "\u4E2D",
23
+ "priority.low": "\u4F4E",
24
+ "priority.planning": "\u8A08\u753B\u4E2D",
25
+ "incidentState.new": "\u65B0\u898F",
26
+ "incidentState.inProgress": "\u5BFE\u5FDC\u4E2D",
27
+ "incidentState.onHold": "\u4FDD\u7559\u4E2D",
28
+ "incidentState.resolved": "\u89E3\u6C7A\u6E08\u307F",
29
+ "incidentState.closed": "\u30AF\u30ED\u30FC\u30BA",
30
+ "incidentState.cancelled": "\u30AD\u30E3\u30F3\u30BB\u30EB",
31
+ "errors.loadingIncidents": "\u30A4\u30F3\u30B7\u30C7\u30F3\u30C8\u306E\u8AAD\u307F\u8FBC\u307F\u30A8\u30E9\u30FC: {{error}}",
32
+ "actions.openInServicenow": "ServiceNow\u3067\u958B\u304F"
33
+ }
34
+ });
35
+
36
+ export { servicenowTranslationJa as default };
37
+ //# sourceMappingURL=ja.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.esm.js","sources":["../../src/translations/ja.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { servicenowTranslationRef } from './ref';\n\nconst servicenowTranslationJa = createTranslationMessages({\n ref: servicenowTranslationRef,\n messages: {\n 'page.title': 'ServiceNowチケット',\n 'page.titleWithCount': 'ServiceNowチケット ({{count}})',\n 'table.searchPlaceholder': '検索',\n 'table.labelRowsSelect': '{{count}} 行',\n 'table.columns.incidentNumber': 'インシデント番号',\n 'table.columns.description': '説明',\n 'table.columns.created': '作成日時',\n 'table.columns.priority': '優先度',\n 'table.columns.state': '状態',\n 'table.columns.actions': 'アクション',\n 'table.emptyContent': 'レコードが見つかりません',\n 'filter.state': '状態',\n 'filter.priority': '優先度',\n 'priority.critical': 'クリティカル',\n 'priority.high': '高',\n 'priority.moderate': '中',\n 'priority.low': '低',\n 'priority.planning': '計画中',\n 'incidentState.new': '新規',\n 'incidentState.inProgress': '対応中',\n 'incidentState.onHold': '保留中',\n 'incidentState.resolved': '解決済み',\n 'incidentState.closed': 'クローズ',\n 'incidentState.cancelled': 'キャンセル',\n 'errors.loadingIncidents': 'インシデントの読み込みエラー: {{error}}',\n 'actions.openInServicenow': 'ServiceNowで開く',\n },\n});\n\nexport default servicenowTranslationJa;\n"],"names":[],"mappings":";;;AAkBA,MAAM,0BAA0B,yBAA0B,CAAA;AAAA,EACxD,GAAK,EAAA,wBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,YAAc,EAAA,oCAAA;AAAA,IACd,qBAAuB,EAAA,gDAAA;AAAA,IACvB,yBAA2B,EAAA,cAAA;AAAA,IAC3B,uBAAyB,EAAA,kBAAA;AAAA,IACzB,8BAAgC,EAAA,kDAAA;AAAA,IAChC,2BAA6B,EAAA,cAAA;AAAA,IAC7B,uBAAyB,EAAA,0BAAA;AAAA,IACzB,wBAA0B,EAAA,oBAAA;AAAA,IAC1B,qBAAuB,EAAA,cAAA;AAAA,IACvB,uBAAyB,EAAA,gCAAA;AAAA,IACzB,oBAAsB,EAAA,0EAAA;AAAA,IACtB,cAAgB,EAAA,cAAA;AAAA,IAChB,iBAAmB,EAAA,oBAAA;AAAA,IACnB,mBAAqB,EAAA,sCAAA;AAAA,IACrB,eAAiB,EAAA,QAAA;AAAA,IACjB,mBAAqB,EAAA,QAAA;AAAA,IACrB,cAAgB,EAAA,QAAA;AAAA,IAChB,mBAAqB,EAAA,oBAAA;AAAA,IACrB,mBAAqB,EAAA,cAAA;AAAA,IACrB,0BAA4B,EAAA,oBAAA;AAAA,IAC5B,sBAAwB,EAAA,oBAAA;AAAA,IACxB,wBAA0B,EAAA,0BAAA;AAAA,IAC1B,sBAAwB,EAAA,0BAAA;AAAA,IACxB,yBAA2B,EAAA,gCAAA;AAAA,IAC3B,yBAA2B,EAAA,iGAAA;AAAA,IAC3B,0BAA4B,EAAA;AAAA;AAEhC,CAAC;;;;"}
@@ -0,0 +1,53 @@
1
+ import { createTranslationRef } from '@backstage/core-plugin-api/alpha';
2
+
3
+ const servicenowMessages = {
4
+ page: {
5
+ title: "ServiceNow tickets",
6
+ titleWithCount: "ServiceNow tickets ({{count}})"
7
+ },
8
+ table: {
9
+ searchPlaceholder: "Search",
10
+ labelRowsSelect: "{{count}} rows",
11
+ columns: {
12
+ incidentNumber: "Incident Number",
13
+ description: "Description",
14
+ created: "Created",
15
+ priority: "Priority",
16
+ state: "State",
17
+ actions: "Actions"
18
+ },
19
+ emptyContent: "No records found"
20
+ },
21
+ filter: {
22
+ state: "State",
23
+ priority: "Priority"
24
+ },
25
+ priority: {
26
+ critical: "Critical",
27
+ high: "High",
28
+ moderate: "Moderate",
29
+ low: "Low",
30
+ planning: "Planning"
31
+ },
32
+ incidentState: {
33
+ new: "New",
34
+ inProgress: "In Progress",
35
+ onHold: "On Hold",
36
+ resolved: "Resolved",
37
+ closed: "Closed",
38
+ cancelled: "Cancelled"
39
+ },
40
+ errors: {
41
+ loadingIncidents: "Error loading incidents: {{error}}"
42
+ },
43
+ actions: {
44
+ openInServicenow: "Open in ServiceNow"
45
+ }
46
+ };
47
+ const servicenowTranslationRef = createTranslationRef({
48
+ id: "plugin.servicenow",
49
+ messages: servicenowMessages
50
+ });
51
+
52
+ export { servicenowMessages, servicenowTranslationRef };
53
+ //# sourceMappingURL=ref.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.esm.js","sources":["../../src/translations/ref.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nexport const servicenowMessages = {\n page: {\n title: 'ServiceNow tickets',\n titleWithCount: 'ServiceNow tickets ({{count}})',\n },\n table: {\n searchPlaceholder: 'Search',\n labelRowsSelect: '{{count}} rows',\n columns: {\n incidentNumber: 'Incident Number',\n description: 'Description',\n created: 'Created',\n priority: 'Priority',\n state: 'State',\n actions: 'Actions',\n },\n emptyContent: 'No records found',\n },\n filter: {\n state: 'State',\n priority: 'Priority',\n },\n priority: {\n critical: 'Critical',\n high: 'High',\n moderate: 'Moderate',\n low: 'Low',\n planning: 'Planning',\n },\n incidentState: {\n new: 'New',\n inProgress: 'In Progress',\n onHold: 'On Hold',\n resolved: 'Resolved',\n closed: 'Closed',\n cancelled: 'Cancelled',\n },\n errors: {\n loadingIncidents: 'Error loading incidents: {{error}}',\n },\n actions: {\n openInServicenow: 'Open in ServiceNow',\n },\n};\n\n/**\n * Translation reference for the ServiceNow plugin.\n * @alpha\n */\nexport const servicenowTranslationRef = createTranslationRef({\n id: 'plugin.servicenow',\n messages: servicenowMessages,\n});\n"],"names":[],"mappings":";;AAiBO,MAAM,kBAAqB,GAAA;AAAA,EAChC,IAAM,EAAA;AAAA,IACJ,KAAO,EAAA,oBAAA;AAAA,IACP,cAAgB,EAAA;AAAA,GAClB;AAAA,EACA,KAAO,EAAA;AAAA,IACL,iBAAmB,EAAA,QAAA;AAAA,IACnB,eAAiB,EAAA,gBAAA;AAAA,IACjB,OAAS,EAAA;AAAA,MACP,cAAgB,EAAA,iBAAA;AAAA,MAChB,WAAa,EAAA,aAAA;AAAA,MACb,OAAS,EAAA,SAAA;AAAA,MACT,QAAU,EAAA,UAAA;AAAA,MACV,KAAO,EAAA,OAAA;AAAA,MACP,OAAS,EAAA;AAAA,KACX;AAAA,IACA,YAAc,EAAA;AAAA,GAChB;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,OAAA;AAAA,IACP,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,QAAU,EAAA,UAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,UAAA;AAAA,IACV,GAAK,EAAA,KAAA;AAAA,IACL,QAAU,EAAA;AAAA,GACZ;AAAA,EACA,aAAe,EAAA;AAAA,IACb,GAAK,EAAA,KAAA;AAAA,IACL,UAAY,EAAA,aAAA;AAAA,IACZ,MAAQ,EAAA,SAAA;AAAA,IACR,QAAU,EAAA,UAAA;AAAA,IACV,MAAQ,EAAA,QAAA;AAAA,IACR,SAAW,EAAA;AAAA,GACb;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,gBAAkB,EAAA;AAAA,GACpB;AAAA,EACA,OAAS,EAAA;AAAA,IACP,gBAAkB,EAAA;AAAA;AAEtB;AAMO,MAAM,2BAA2B,oBAAqB,CAAA;AAAA,EAC3D,EAAI,EAAA,mBAAA;AAAA,EACJ,QAAU,EAAA;AACZ,CAAC;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
2
3
  import LabelImportantIcon from '@mui/icons-material/LabelImportant';
3
4
  import KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';
4
5
  import KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';
@@ -10,6 +11,7 @@ import { ModerateIcon } from '../components/Servicenow/ModerateIcon.esm.js';
10
11
  import { InProgressIcon } from '../components/Servicenow/InProgressIcon.esm.js';
11
12
  import { ClosedIcon } from '../components/Servicenow/ClosedIcon.esm.js';
12
13
  import Typography from '@mui/material/Typography';
14
+ import { useTranslation } from '../hooks/useTranslation.esm.js';
13
15
 
14
16
  const iconStyleBase = { marginRight: 8 };
15
17
  const typographyStyleBase = { display: "flex", alignItems: "center" };
@@ -33,6 +35,78 @@ const INCIDENT_STATE_MAP = {
33
35
  7: { Icon: ClosedIcon, color: "#6A6E73", label: "Closed" },
34
36
  8: { Icon: ClosedIcon, color: "#6A6E73", label: "Cancelled" }
35
37
  };
38
+ const usePriorityMap = () => {
39
+ const { t } = useTranslation();
40
+ return useMemo(
41
+ () => ({
42
+ 1: {
43
+ Icon: LabelImportantIcon,
44
+ color: "#C9190B",
45
+ label: t("priority.critical"),
46
+ transform: "rotate(-90deg)"
47
+ },
48
+ 2: {
49
+ Icon: KeyboardDoubleArrowUpIcon,
50
+ color: "#EC7A08",
51
+ label: t("priority.high")
52
+ },
53
+ 3: {
54
+ Icon: ModerateIcon,
55
+ color: "#F0AB00",
56
+ label: t("priority.moderate")
57
+ },
58
+ 4: {
59
+ Icon: KeyboardDoubleArrowDownIcon,
60
+ color: "#2B9AF3",
61
+ label: t("priority.low")
62
+ },
63
+ 5: {
64
+ Icon: FormatListNumberedIcon,
65
+ color: "#6A6E73",
66
+ label: t("priority.planning")
67
+ }
68
+ }),
69
+ [t]
70
+ );
71
+ };
72
+ const useIncidentStateMap = () => {
73
+ const { t } = useTranslation();
74
+ return useMemo(
75
+ () => ({
76
+ 1: {
77
+ Icon: PendingOutlinedIcon,
78
+ color: "#6A6E73",
79
+ label: t("incidentState.new")
80
+ },
81
+ 2: {
82
+ Icon: InProgressIcon,
83
+ color: "#6A6E73",
84
+ label: t("incidentState.inProgress")
85
+ },
86
+ 3: {
87
+ Icon: PauseCircleOutlineIcon,
88
+ color: "#6A6E73",
89
+ label: t("incidentState.onHold")
90
+ },
91
+ 6: {
92
+ Icon: CheckCircleOutlineIcon,
93
+ color: "#3E8635",
94
+ label: t("incidentState.resolved")
95
+ },
96
+ 7: {
97
+ Icon: ClosedIcon,
98
+ color: "#6A6E73",
99
+ label: t("incidentState.closed")
100
+ },
101
+ 8: {
102
+ Icon: ClosedIcon,
103
+ color: "#6A6E73",
104
+ label: t("incidentState.cancelled")
105
+ }
106
+ }),
107
+ [t]
108
+ );
109
+ };
36
110
  const renderStatusLabel = (data) => {
37
111
  if (!data) return "";
38
112
  const { Icon, color, label, transform } = data;
@@ -51,8 +125,6 @@ const renderStatusLabel = (data) => {
51
125
  label
52
126
  ] });
53
127
  };
54
- const getPriorityValue = (priority) => renderStatusLabel(PRIORITY_MAP[priority]);
55
- const getIncidentStateValue = (state) => renderStatusLabel(INCIDENT_STATE_MAP[state]);
56
128
 
57
- export { INCIDENT_STATE_MAP, PRIORITY_MAP, getIncidentStateValue, getPriorityValue, renderStatusLabel };
129
+ export { INCIDENT_STATE_MAP, PRIORITY_MAP, renderStatusLabel, useIncidentStateMap, usePriorityMap };
58
130
  //# sourceMappingURL=incidentUtils.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"incidentUtils.esm.js","sources":["../../src/utils/incidentUtils.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { ElementType } from 'react';\nimport LabelImportantIcon from '@mui/icons-material/LabelImportant';\nimport KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\nimport KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';\nimport FormatListNumberedIcon from '@mui/icons-material/FormatListNumbered';\nimport PendingOutlinedIcon from '@mui/icons-material/PendingOutlined';\nimport CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline';\nimport PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';\nimport { ModerateIcon } from '../components/Servicenow/ModerateIcon';\nimport { InProgressIcon } from '../components/Servicenow/InProgressIcon';\nimport { ClosedIcon } from '../components/Servicenow/ClosedIcon';\n\nimport Typography from '@mui/material/Typography';\n\ninterface StatusData {\n Icon: ElementType;\n color: string;\n label: string;\n transform?: string;\n}\n\nconst iconStyleBase = { marginRight: 8 };\nconst typographyStyleBase = { display: 'flex', alignItems: 'center' };\n\nexport const PRIORITY_MAP: Record<number, StatusData> = {\n 1: {\n Icon: LabelImportantIcon,\n color: '#C9190B',\n label: 'Critical',\n transform: 'rotate(-90deg)',\n },\n 2: { Icon: KeyboardDoubleArrowUpIcon, color: '#EC7A08', label: 'High' },\n 3: { Icon: ModerateIcon, color: '#F0AB00', label: 'Moderate' },\n 4: { Icon: KeyboardDoubleArrowDownIcon, color: '#2B9AF3', label: 'Low' },\n 5: { Icon: FormatListNumberedIcon, color: '#6A6E73', label: 'Planning' },\n};\n\nexport const INCIDENT_STATE_MAP: Record<number, StatusData> = {\n 1: { Icon: PendingOutlinedIcon, color: '#6A6E73', label: 'New' },\n 2: { Icon: InProgressIcon, color: '#6A6E73', label: 'In Progress' },\n 3: { Icon: PauseCircleOutlineIcon, color: '#6A6E73', label: 'On Hold' },\n 6: { Icon: CheckCircleOutlineIcon, color: '#3E8635', label: 'Resolved' },\n 7: { Icon: ClosedIcon, color: '#6A6E73', label: 'Closed' },\n 8: { Icon: ClosedIcon, color: '#6A6E73', label: 'Cancelled' },\n};\n\nexport const renderStatusLabel = (data?: StatusData) => {\n if (!data) return '';\n\n const { Icon, color, label, transform } = data;\n return (\n <Typography variant=\"body2\" style={typographyStyleBase}>\n <Icon\n fontSize=\"small\"\n style={{\n color,\n marginRight: iconStyleBase.marginRight,\n ...(transform ? { transform } : {}),\n }}\n />\n {label}\n </Typography>\n );\n};\n\nexport const getPriorityValue = (priority: number) =>\n renderStatusLabel(PRIORITY_MAP[priority]);\nexport const getIncidentStateValue = (state: number) =>\n renderStatusLabel(INCIDENT_STATE_MAP[state]);\n"],"names":[],"mappings":";;;;;;;;;;;;;AAoCA,MAAM,aAAA,GAAgB,EAAE,WAAA,EAAa,CAAE,EAAA;AACvC,MAAM,mBAAsB,GAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,YAAY,QAAS,EAAA;AAE7D,MAAM,YAA2C,GAAA;AAAA,EACtD,CAAG,EAAA;AAAA,IACD,IAAM,EAAA,kBAAA;AAAA,IACN,KAAO,EAAA,SAAA;AAAA,IACP,KAAO,EAAA,UAAA;AAAA,IACP,SAAW,EAAA;AAAA,GACb;AAAA,EACA,GAAG,EAAE,IAAA,EAAM,2BAA2B,KAAO,EAAA,SAAA,EAAW,OAAO,MAAO,EAAA;AAAA,EACtE,GAAG,EAAE,IAAA,EAAM,cAAc,KAAO,EAAA,SAAA,EAAW,OAAO,UAAW,EAAA;AAAA,EAC7D,GAAG,EAAE,IAAA,EAAM,6BAA6B,KAAO,EAAA,SAAA,EAAW,OAAO,KAAM,EAAA;AAAA,EACvE,GAAG,EAAE,IAAA,EAAM,wBAAwB,KAAO,EAAA,SAAA,EAAW,OAAO,UAAW;AACzE;AAEO,MAAM,kBAAiD,GAAA;AAAA,EAC5D,GAAG,EAAE,IAAA,EAAM,qBAAqB,KAAO,EAAA,SAAA,EAAW,OAAO,KAAM,EAAA;AAAA,EAC/D,GAAG,EAAE,IAAA,EAAM,gBAAgB,KAAO,EAAA,SAAA,EAAW,OAAO,aAAc,EAAA;AAAA,EAClE,GAAG,EAAE,IAAA,EAAM,wBAAwB,KAAO,EAAA,SAAA,EAAW,OAAO,SAAU,EAAA;AAAA,EACtE,GAAG,EAAE,IAAA,EAAM,wBAAwB,KAAO,EAAA,SAAA,EAAW,OAAO,UAAW,EAAA;AAAA,EACvE,GAAG,EAAE,IAAA,EAAM,YAAY,KAAO,EAAA,SAAA,EAAW,OAAO,QAAS,EAAA;AAAA,EACzD,GAAG,EAAE,IAAA,EAAM,YAAY,KAAO,EAAA,SAAA,EAAW,OAAO,WAAY;AAC9D;AAEa,MAAA,iBAAA,GAAoB,CAAC,IAAsB,KAAA;AACtD,EAAI,IAAA,CAAC,MAAa,OAAA,EAAA;AAElB,EAAA,MAAM,EAAE,IAAA,EAAM,KAAO,EAAA,KAAA,EAAO,WAAc,GAAA,IAAA;AAC1C,EAAA,uBACG,IAAA,CAAA,UAAA,EAAA,EAAW,OAAQ,EAAA,OAAA,EAAQ,OAAO,mBACjC,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,OAAA;AAAA,QACT,KAAO,EAAA;AAAA,UACL,KAAA;AAAA,UACA,aAAa,aAAc,CAAA,WAAA;AAAA,UAC3B,GAAI,SAAA,GAAY,EAAE,SAAA,KAAc;AAAC;AACnC;AAAA,KACF;AAAA,IACC;AAAA,GACH,EAAA,CAAA;AAEJ;AAEO,MAAM,mBAAmB,CAAC,QAAA,KAC/B,iBAAkB,CAAA,YAAA,CAAa,QAAQ,CAAC;AACnC,MAAM,wBAAwB,CAAC,KAAA,KACpC,iBAAkB,CAAA,kBAAA,CAAmB,KAAK,CAAC;;;;"}
1
+ {"version":3,"file":"incidentUtils.esm.js","sources":["../../src/utils/incidentUtils.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\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 */\nimport { ElementType, useMemo } from 'react';\nimport LabelImportantIcon from '@mui/icons-material/LabelImportant';\nimport KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown';\nimport KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp';\nimport FormatListNumberedIcon from '@mui/icons-material/FormatListNumbered';\nimport PendingOutlinedIcon from '@mui/icons-material/PendingOutlined';\nimport CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline';\nimport PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';\nimport { ModerateIcon } from '../components/Servicenow/ModerateIcon';\nimport { InProgressIcon } from '../components/Servicenow/InProgressIcon';\nimport { ClosedIcon } from '../components/Servicenow/ClosedIcon';\n\nimport Typography from '@mui/material/Typography';\nimport { useTranslation } from '../hooks/useTranslation';\n\nexport interface StatusData {\n Icon: ElementType;\n color: string;\n label: string;\n transform?: string;\n}\n\nconst iconStyleBase = { marginRight: 8 };\nconst typographyStyleBase = { display: 'flex', alignItems: 'center' };\n\n/**\n * @deprecated Use usePriorityMap hook for translated labels\n */\nexport const PRIORITY_MAP: Record<number, StatusData> = {\n 1: {\n Icon: LabelImportantIcon,\n color: '#C9190B',\n label: 'Critical',\n transform: 'rotate(-90deg)',\n },\n 2: { Icon: KeyboardDoubleArrowUpIcon, color: '#EC7A08', label: 'High' },\n 3: { Icon: ModerateIcon, color: '#F0AB00', label: 'Moderate' },\n 4: { Icon: KeyboardDoubleArrowDownIcon, color: '#2B9AF3', label: 'Low' },\n 5: { Icon: FormatListNumberedIcon, color: '#6A6E73', label: 'Planning' },\n};\n\n/**\n * @deprecated Use useIncidentStateMap hook for translated labels\n */\nexport const INCIDENT_STATE_MAP: Record<number, StatusData> = {\n 1: { Icon: PendingOutlinedIcon, color: '#6A6E73', label: 'New' },\n 2: { Icon: InProgressIcon, color: '#6A6E73', label: 'In Progress' },\n 3: { Icon: PauseCircleOutlineIcon, color: '#6A6E73', label: 'On Hold' },\n 6: { Icon: CheckCircleOutlineIcon, color: '#3E8635', label: 'Resolved' },\n 7: { Icon: ClosedIcon, color: '#6A6E73', label: 'Closed' },\n 8: { Icon: ClosedIcon, color: '#6A6E73', label: 'Cancelled' },\n};\n\n/**\n * Hook to get translated priority map\n */\nexport const usePriorityMap = (): Record<number, StatusData> => {\n const { t } = useTranslation();\n\n return useMemo(\n () => ({\n 1: {\n Icon: LabelImportantIcon,\n color: '#C9190B',\n label: t('priority.critical'),\n transform: 'rotate(-90deg)',\n },\n 2: {\n Icon: KeyboardDoubleArrowUpIcon,\n color: '#EC7A08',\n label: t('priority.high'),\n },\n 3: {\n Icon: ModerateIcon,\n color: '#F0AB00',\n label: t('priority.moderate'),\n },\n 4: {\n Icon: KeyboardDoubleArrowDownIcon,\n color: '#2B9AF3',\n label: t('priority.low'),\n },\n 5: {\n Icon: FormatListNumberedIcon,\n color: '#6A6E73',\n label: t('priority.planning'),\n },\n }),\n [t],\n );\n};\n\n/**\n * Hook to get translated incident state map\n */\nexport const useIncidentStateMap = (): Record<number, StatusData> => {\n const { t } = useTranslation();\n\n return useMemo(\n () => ({\n 1: {\n Icon: PendingOutlinedIcon,\n color: '#6A6E73',\n label: t('incidentState.new'),\n },\n 2: {\n Icon: InProgressIcon,\n color: '#6A6E73',\n label: t('incidentState.inProgress'),\n },\n 3: {\n Icon: PauseCircleOutlineIcon,\n color: '#6A6E73',\n label: t('incidentState.onHold'),\n },\n 6: {\n Icon: CheckCircleOutlineIcon,\n color: '#3E8635',\n label: t('incidentState.resolved'),\n },\n 7: {\n Icon: ClosedIcon,\n color: '#6A6E73',\n label: t('incidentState.closed'),\n },\n 8: {\n Icon: ClosedIcon,\n color: '#6A6E73',\n label: t('incidentState.cancelled'),\n },\n }),\n [t],\n );\n};\n\nexport const renderStatusLabel = (data?: StatusData) => {\n if (!data) return '';\n\n const { Icon, color, label, transform } = data;\n return (\n <Typography variant=\"body2\" style={typographyStyleBase}>\n <Icon\n fontSize=\"small\"\n style={{\n color,\n marginRight: iconStyleBase.marginRight,\n ...(transform ? { transform } : {}),\n }}\n />\n {label}\n </Typography>\n );\n};\n\nexport const getPriorityValue = (priority: number) =>\n renderStatusLabel(PRIORITY_MAP[priority]);\nexport const getIncidentStateValue = (state: number) =>\n renderStatusLabel(INCIDENT_STATE_MAP[state]);\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-servicenow",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "license": "Apache-2.0",
5
5
  "main": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",
@@ -81,11 +81,13 @@
81
81
  "react-router-dom": "^6.0.0"
82
82
  },
83
83
  "devDependencies": {
84
+ "@axe-core/playwright": "^4.11.0",
84
85
  "@backstage/cli": "^0.34.5",
85
86
  "@backstage/core-app-api": "^1.19.2",
86
87
  "@backstage/dev-utils": "^1.1.17",
87
88
  "@backstage/test-utils": "^1.7.13",
88
89
  "@material-ui/core": "^4.12.4",
90
+ "@playwright/test": "^1.57.0",
89
91
  "@testing-library/jest-dom": "^6.0.0",
90
92
  "@testing-library/react": "^14.0.0",
91
93
  "@testing-library/user-event": "^14.0.0",