@greenbone/ui-lib 0.7.7-alpha0 → 0.7.8-alpha3

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 (66) hide show
  1. package/README.md +2 -2
  2. package/lib/cjs/api/error/Errors/BadRequestError.js.map +1 -1
  3. package/lib/cjs/api/error/Errors/CustomError.js.map +1 -1
  4. package/lib/cjs/api/error/Errors/FetchError.js.map +1 -1
  5. package/lib/cjs/api/error/Errors/InvalidStatusCodeError.js.map +1 -1
  6. package/lib/cjs/api/error/Errors/NotFoundError.js.map +1 -1
  7. package/lib/cjs/api/error/Errors/ParsingError.js.map +1 -1
  8. package/lib/cjs/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  9. package/lib/cjs/components/Filter/utils/libs.js +1 -1
  10. package/lib/cjs/components/Filter/utils/libs.js.map +1 -1
  11. package/lib/cjs/components/Form/Switch/Switch.js +2 -0
  12. package/lib/cjs/components/Form/Switch/Switch.js.map +1 -0
  13. package/lib/cjs/components/Form/index.js +1 -1
  14. package/lib/cjs/components/Form/index.js.map +1 -1
  15. package/lib/cjs/components/Layout/AppHeader/headerConfig/getHeaderConfig.js +2 -0
  16. package/lib/cjs/components/Layout/AppHeader/headerConfig/getHeaderConfig.js.map +1 -0
  17. package/lib/cjs/components/Layout/AppHeader/index.js +1 -1
  18. package/lib/cjs/components/Layout/AppHeader/index.js.map +1 -1
  19. package/lib/cjs/components/Layout/AppNavigation/Menu/UrlProvider.js.map +1 -1
  20. package/lib/cjs/components/Layout/AppNavigation/Menu/menuFactory.js +1 -1
  21. package/lib/cjs/components/Layout/AppNavigation/Menu/menuFactory.js.map +1 -1
  22. package/lib/cjs/components/Layout/AppNavigation/Menu/menuItems.js +1 -1
  23. package/lib/cjs/components/Layout/AppNavigation/Menu/menuItems.js.map +1 -1
  24. package/lib/cjs/components/Table/persistence/TableSessionStorage.js.map +1 -1
  25. package/lib/cjs/helper/Controller/DateTime.js.map +1 -1
  26. package/lib/cjs/helper/SessionStorage.js.map +1 -1
  27. package/lib/esm/api/error/Errors/BadRequestError.js.map +1 -1
  28. package/lib/esm/api/error/Errors/CustomError.js.map +1 -1
  29. package/lib/esm/api/error/Errors/FetchError.js.map +1 -1
  30. package/lib/esm/api/error/Errors/InvalidStatusCodeError.js.map +1 -1
  31. package/lib/esm/api/error/Errors/NotFoundError.js.map +1 -1
  32. package/lib/esm/api/error/Errors/ParsingError.js.map +1 -1
  33. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  34. package/lib/esm/components/Filter/utils/libs.js +1 -1
  35. package/lib/esm/components/Filter/utils/libs.js.map +1 -1
  36. package/lib/esm/components/Form/Switch/Switch.js +2 -0
  37. package/lib/esm/components/Form/Switch/Switch.js.map +1 -0
  38. package/lib/esm/components/Form/index.js +1 -1
  39. package/lib/esm/components/Form/index.js.map +1 -1
  40. package/lib/esm/components/Layout/AppHeader/headerConfig/getHeaderConfig.js +2 -0
  41. package/lib/esm/components/Layout/AppHeader/headerConfig/getHeaderConfig.js.map +1 -0
  42. package/lib/esm/components/Layout/AppHeader/index.js +1 -1
  43. package/lib/esm/components/Layout/AppHeader/index.js.map +1 -1
  44. package/lib/esm/components/Layout/AppNavigation/Menu/UrlProvider.js.map +1 -1
  45. package/lib/esm/components/Layout/AppNavigation/Menu/menuFactory.js +1 -1
  46. package/lib/esm/components/Layout/AppNavigation/Menu/menuFactory.js.map +1 -1
  47. package/lib/esm/components/Layout/AppNavigation/Menu/menuItems.js +1 -1
  48. package/lib/esm/components/Layout/AppNavigation/Menu/menuItems.js.map +1 -1
  49. package/lib/esm/components/Table/persistence/TableSessionStorage.js.map +1 -1
  50. package/lib/esm/helper/Controller/DateTime.js.map +1 -1
  51. package/lib/esm/helper/SessionStorage.js.map +1 -1
  52. package/package.json +8 -8
  53. package/types/src/components/Filter/addons/sortFilterOptions.d.ts.map +1 -1
  54. package/types/src/components/Filter/addons/useTranslateFilterOptions.d.ts.map +1 -1
  55. package/types/src/components/Filter/utils/libs.d.ts.map +1 -1
  56. package/types/src/components/Form/Switch/Switch.d.ts +6 -0
  57. package/types/src/components/Form/Switch/Switch.d.ts.map +1 -0
  58. package/types/src/components/Form/index.d.ts +1 -0
  59. package/types/src/components/Form/index.d.ts.map +1 -1
  60. package/types/src/components/Layout/AppHeader/headerConfig/getHeaderConfig.d.ts +7 -0
  61. package/types/src/components/Layout/AppHeader/headerConfig/getHeaderConfig.d.ts.map +1 -0
  62. package/types/src/components/Layout/AppHeader/headerConfig/getHeaderConfig.test.d.ts +2 -0
  63. package/types/src/components/Layout/AppHeader/headerConfig/getHeaderConfig.test.d.ts.map +1 -0
  64. package/types/src/components/Layout/AppHeader/index.d.ts +1 -0
  65. package/types/src/components/Layout/AppHeader/index.d.ts.map +1 -1
  66. package/types/src/components/Layout/AppNavigation/Menu/menuItems.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/helper/Controller/DateTime.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { DateTime as LuxonDateTime, DateTimeOptions } from \"luxon\"\n\nexport class DateTime {\n dateTime: LuxonDateTime\n\n /**\n * Not for public use, only needed to create the object. Call local() instead.\n * @param dateTime - LuxonDateTimeObject\n */\n constructor(dateTime: LuxonDateTime) {\n // @ts-ignore\n this.dateTime = dateTime ? dateTime : dateTime.utc()\n }\n\n public get isDateTime() {\n return true\n }\n\n /**\n * Checks if the DateTime object is valid.\n * @returns {boolean}\n */\n public get isValid() {\n return this.dateTime.isValid\n }\n\n public get year() {\n return this.dateTime.year\n }\n\n public get month() {\n return this.dateTime.month\n }\n\n public get day() {\n return this.dateTime.day\n }\n\n public get hour() {\n return this.dateTime.hour\n }\n\n public get minute() {\n return this.dateTime.minute\n }\n\n public get second() {\n return this.dateTime.second\n }\n\n static fromMillis(milliseconds: number) {\n return new DateTime(LuxonDateTime.fromMillis(milliseconds * 1000))\n }\n\n /**\n * Creates a new DateTime, all parameters are optional. If none are passed the current DateTime is returned\n * @param year\n * @param month\n * @param day\n * @param hour\n * @param minute\n * @param second\n * @param millisecond\n * @returns {DateTime}\n */\n static local(\n year?: number,\n month?: number,\n day?: number,\n hour?: number,\n minute?: number,\n second?: number,\n millisecond?: number\n ) {\n // @ts-ignore\n return new DateTime(\n LuxonDateTime.local(\n // @ts-ignore\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n )\n )\n }\n\n static utc(\n year?: number,\n month?: number,\n day?: number,\n hour?: number,\n minute?: number,\n second?: number,\n millisecond?: number\n ) {\n return new DateTime(\n LuxonDateTime.utc(\n // @ts-ignore\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n )\n )\n }\n\n /**\n * Parses an ISO DateTime String and returns an DateTime object.\n * Examples for ISO Strings:\n * 2007-08-31T16:47+00:00 16:47 Uhr am 31. August 2007 in der Zeitzone UTC.\n * 2007-12-24T18:21Z 18:21 Uhr am 24. Dezember 2007, ebenfalls in der Zeitzone UTC.\n * 2008-02-01T09:00:22+05 9:00:22 Uhr am 1. Februar 2008 in einer Zeitzone, die UTC fünf Stunden voraus ist, beispielsweise in der in Pakistan festgelegten Zonenzeit.\n * 2009-01-01T12:00:00+01:00 12:00:00 Uhr am 1. Januar 2009 in Wien (MEZ)\n * 2009-06-30T18:30:00+02:00 18:30:00 Uhr am 30. Juni 2009 in Wien (MESZ – Sommerzeit)\n * @param isoString : string\n * @returns {DateTime}\n */\n public static fromIsoString(isoString: string, opts?: DateTimeOptions) {\n return new DateTime(LuxonDateTime.fromISO(isoString, opts))\n }\n\n public toJsDate() {\n return this.dateTime.toJSDate()\n }\n\n /**\n * Required for object comparison\n * @returns {number}\n */\n public valueOf() {\n return this.dateTime.toMillis()\n }\n\n public equals(other: DateTime) {\n return this.dateTime.equals(other.dateTime)\n }\n\n public diff(other: DateTime) {\n return this.dateTime.diff(other.dateTime)\n }\n\n /**\n * Returns a string formatted as HH:mm\n * @returns {string}\n */\n public toTimeString() {\n return this.toFormat(\"HH:mm\")\n }\n\n /**\n * Returns the date as an ISO String.\n * The ISO Format is specifically designed for the GSP Backend,\n * for that reason seconds, and milliseconds are omitted.\n * Returns a string in the following format \"yyyy-MM-dd'T'HH:mmZZZ\"\n * @returns {string}\n */\n public toIsoString() {\n return this.toFormat(\"yyyy-MM-dd'T'HH:mmZZZ\")\n }\n\n public toLocalIsoString() {\n return this.dateTime.toISO({\n includeOffset: true,\n includePrefix: false,\n })\n }\n\n /**\n * Standalone token Description Example\n S millisecond,no padding 54\n SSS millisecond,padded to 3 054\n u fractional seconds, functionally identical to SSS 054\n s second, no padding 4\n ss second, padded to 2 padding 04\n m minute, no padding 7\n mm minute, padded to 2 07\n h hour in 12-hour time, no padding 1\n hh hour in 12-hour time, padded to 2 01\n H hour in 24-hour time, no padding 9\n HH hour in 24-hour time, padded to 2 13\n Z narrow offset +5\n ZZ short offset +05:00\n ZZZ techie offset +0500\n ZZZZ abbreviated named offset EST\n ZZZZZ unabbreviated named offset Eastern Standard Time\n z IANA zone America/New_York\n a meridiem AM\n d day of the month, no padding 6\n dd day of the month, padded to 2 06\n c E day of the week, as number from 1-7 (Monday is 1, Sunday is 7) 3\n ccc EEE day of the week, as an abbreviate localized string Wed\n cccc EEEE day of the week, as an unabbreviated localized string Wednesday\n ccccc EEEEE day of the week, as a single localized letter W\n L M month as an unpadded number 8\n LL MM month as an padded number 08\n LLL MMM month as an abbreviated localized string Aug\n LLLL MMMM month as an unabbreviated localized string August\n LLLLL MMMMM month as a single localized letter A\n y year, unpadded 2014\n yy two-digit year 14\n yyyy four- to six- digit year, pads to 4 2014\n G abbreviated localized era AD\n GG unabbreviated localized era Anno Domini\n GGGGG one-letter localized era A\n kk ISO week year, unpadded 17\n kkkk ISO week year, padded to 4 2014\n W ISO week number, unpadded 32\n WW ISO week number, padded to 2 32\n o ordinal (day of year), unpadded 218\n ooo ordinal (day of year), padded to 3 218\n q quarter, no padding 3\n qq quarter, padded to 2 03\n D localized numeric date 9/4/2017\n DD localized date with abbreviated month Aug 6, 2014\n DDD localized date with full month August 6, 2014\n DDDD localized date with full month and weekday Wednesday, August 6, 2014\n t localized time 9:07 AM\n tt localized time with seconds 1:07:04 PM\n ttt localized time with seconds and abbreviated offset 1:07:04 PM EDT\n tttt localized time with seconds and full offset 1:07:04 PM Eastern Daylight Time\n T localized 24-hour time 13:07\n TT localized 24-hour time with seconds 13:07:04\n TTT localized 24-hour time with seconds and abbreviated offset 13:07:04 EDT\n TTTT localized 24-hour time with seconds and full offset 13:07:04 Eastern Daylight Time\n f short localized date and time 8/6/2014, 1:07 PM\n ff less short localized date and time Aug 6, 2014, 1:07 PM\n fff verbose localized date and time August 6, 2014, 1:07 PM EDT\n ffff extra verbose localized date and time Wednesday, August 6, 2014, 1:07 PM Eastern Daylight Time\n F short localized date and time with seconds 8/6/2014, 1:07:04 PM\n FF less short localized date and time with seconds Aug 6, 2014, 1:07:04 PM\n FFF verbose localized date and time with seconds August 6, 2014, 1:07:04 PM EDT\n FFFF extra verbose localized date and time with seconds Wednesday, August 6, 2014, 1:07:04 PM Eastern Daylight Time\n X unix timestamp in seconds 1407287224\n x unix timestamp in milliseconds 1407287224054\n * See https://moment.github.io/luxon/docs/manual/formatting.html\n * @param formatString\n * @returns {string}\n */\n public toFormat(formatString: string) {\n return this.dateTime.toFormat(formatString)\n }\n\n /**\n * Allow calculation with dates.\n * To substract pass a negative value;\n * @param object\n * @returns {DateTime}\n */\n public add(object: any) {\n return new DateTime(this.dateTime.plus(object))\n }\n\n /**\n * Returns the difference as an unsigned number,\n * returns null instead of a negative value\n * @param other\n * @returns {number}\n */\n public unsignedSubtractDays(other: DateTime) {\n let result = this.dateTime.diff(other.dateTime, \"days\").days\n result = Math.max(0, result)\n\n return Math.ceil(result)\n }\n\n /**\n * Returns the difference as an unsigned number,\n * returns null instead of a negative value\n * @param other\n * @returns {number}\n */\n public unsignedSubstractMinutes(other: DateTime) {\n let result = this.dateTime.diff(other.dateTime, \"minutes\").minutes\n result = Math.max(0, result)\n\n return Math.ceil(result)\n }\n\n /**\n * Resets the time to 00:00\n * @param dateTime\n * @returns {DateTime}\n */\n public stripTime() {\n if (!this.isValid) {\n throw new Error(\"Date is invalid\")\n }\n\n const dateTime = this.dateTime\n\n return DateTime.utc(dateTime.year, dateTime.month, dateTime.day)\n }\n\n public toString() {\n this.dateTime.toString()\n }\n\n public toIntlFormat() {\n return new Intl.DateTimeFormat(\"en-GB\", {\n dateStyle: \"short\",\n timeStyle: \"short\",\n }).format(this.toJsDate())\n }\n}\n"],"names":["DateTime","isDateTime","isValid","dateTime","year","month","day","hour","minute","second","fromMillis","milliseconds","LuxonDateTime","local","millisecond","utc","fromIsoString","isoString","opts","fromISO","toJsDate","toJSDate","valueOf","toMillis","equals","other","diff","toTimeString","toFormat","toIsoString","toLocalIsoString","toISO","includeOffset","includePrefix","formatString","add","object","plus","unsignedSubtractDays","result","days","Math","max","ceil","unsignedSubstractMinutes","minutes","stripTime","Error","toString","toIntlFormat","Intl","DateTimeFormat","dateStyle","timeStyle","format","constructor"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/helper/Controller/DateTime.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { DateTime as LuxonDateTime, DateTimeOptions } from \"luxon\"\n\nexport class DateTime {\n dateTime: LuxonDateTime\n\n /**\n * Not for public use, only needed to create the object. Call local() instead.\n * @param dateTime - LuxonDateTimeObject\n */\n constructor(dateTime: LuxonDateTime) {\n // @ts-ignore\n this.dateTime = dateTime ? dateTime : dateTime.utc()\n }\n\n public get isDateTime() {\n return true\n }\n\n /**\n * Checks if the DateTime object is valid.\n * @returns {boolean}\n */\n public get isValid() {\n return this.dateTime.isValid\n }\n\n public get year() {\n return this.dateTime.year\n }\n\n public get month() {\n return this.dateTime.month\n }\n\n public get day() {\n return this.dateTime.day\n }\n\n public get hour() {\n return this.dateTime.hour\n }\n\n public get minute() {\n return this.dateTime.minute\n }\n\n public get second() {\n return this.dateTime.second\n }\n\n static fromMillis(milliseconds: number) {\n return new DateTime(LuxonDateTime.fromMillis(milliseconds * 1000))\n }\n\n /**\n * Creates a new DateTime, all parameters are optional. If none are passed the current DateTime is returned\n * @param year\n * @param month\n * @param day\n * @param hour\n * @param minute\n * @param second\n * @param millisecond\n * @returns {DateTime}\n */\n static local(\n year?: number,\n month?: number,\n day?: number,\n hour?: number,\n minute?: number,\n second?: number,\n millisecond?: number\n ) {\n // @ts-ignore\n return new DateTime(\n LuxonDateTime.local(\n // @ts-ignore\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n )\n )\n }\n\n static utc(\n year?: number,\n month?: number,\n day?: number,\n hour?: number,\n minute?: number,\n second?: number,\n millisecond?: number\n ) {\n return new DateTime(\n LuxonDateTime.utc(\n // @ts-ignore\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n )\n )\n }\n\n /**\n * Parses an ISO DateTime String and returns an DateTime object.\n * Examples for ISO Strings:\n * 2007-08-31T16:47+00:00 16:47 Uhr am 31. August 2007 in der Zeitzone UTC.\n * 2007-12-24T18:21Z 18:21 Uhr am 24. Dezember 2007, ebenfalls in der Zeitzone UTC.\n * 2008-02-01T09:00:22+05 9:00:22 Uhr am 1. Februar 2008 in einer Zeitzone, die UTC fünf Stunden voraus ist, beispielsweise in der in Pakistan festgelegten Zonenzeit.\n * 2009-01-01T12:00:00+01:00 12:00:00 Uhr am 1. Januar 2009 in Wien (MEZ)\n * 2009-06-30T18:30:00+02:00 18:30:00 Uhr am 30. Juni 2009 in Wien (MESZ – Sommerzeit)\n * @param isoString : string\n * @returns {DateTime}\n */\n public static fromIsoString(isoString: string, opts?: DateTimeOptions) {\n return new DateTime(LuxonDateTime.fromISO(isoString, opts))\n }\n\n public toJsDate() {\n return this.dateTime.toJSDate()\n }\n\n /**\n * Required for object comparison\n * @returns {number}\n */\n public valueOf() {\n return this.dateTime.toMillis()\n }\n\n public equals(other: DateTime) {\n return this.dateTime.equals(other.dateTime)\n }\n\n public diff(other: DateTime) {\n return this.dateTime.diff(other.dateTime)\n }\n\n /**\n * Returns a string formatted as HH:mm\n * @returns {string}\n */\n public toTimeString() {\n return this.toFormat(\"HH:mm\")\n }\n\n /**\n * Returns the date as an ISO String.\n * The ISO Format is specifically designed for the GSP Backend,\n * for that reason seconds, and milliseconds are omitted.\n * Returns a string in the following format \"yyyy-MM-dd'T'HH:mmZZZ\"\n * @returns {string}\n */\n public toIsoString() {\n return this.toFormat(\"yyyy-MM-dd'T'HH:mmZZZ\")\n }\n\n public toLocalIsoString() {\n return this.dateTime.toISO({\n includeOffset: true,\n includePrefix: false,\n })\n }\n\n /**\n * Standalone token Description Example\n S millisecond,no padding 54\n SSS millisecond,padded to 3 054\n u fractional seconds, functionally identical to SSS 054\n s second, no padding 4\n ss second, padded to 2 padding 04\n m minute, no padding 7\n mm minute, padded to 2 07\n h hour in 12-hour time, no padding 1\n hh hour in 12-hour time, padded to 2 01\n H hour in 24-hour time, no padding 9\n HH hour in 24-hour time, padded to 2 13\n Z narrow offset +5\n ZZ short offset +05:00\n ZZZ techie offset +0500\n ZZZZ abbreviated named offset EST\n ZZZZZ unabbreviated named offset Eastern Standard Time\n z IANA zone America/New_York\n a meridiem AM\n d day of the month, no padding 6\n dd day of the month, padded to 2 06\n c E day of the week, as number from 1-7 (Monday is 1, Sunday is 7) 3\n ccc EEE day of the week, as an abbreviate localized string Wed\n cccc EEEE day of the week, as an unabbreviated localized string Wednesday\n ccccc EEEEE day of the week, as a single localized letter W\n L M month as an unpadded number 8\n LL MM month as an padded number 08\n LLL MMM month as an abbreviated localized string Aug\n LLLL MMMM month as an unabbreviated localized string August\n LLLLL MMMMM month as a single localized letter A\n y year, unpadded 2014\n yy two-digit year 14\n yyyy four- to six- digit year, pads to 4 2014\n G abbreviated localized era AD\n GG unabbreviated localized era Anno Domini\n GGGGG one-letter localized era A\n kk ISO week year, unpadded 17\n kkkk ISO week year, padded to 4 2014\n W ISO week number, unpadded 32\n WW ISO week number, padded to 2 32\n o ordinal (day of year), unpadded 218\n ooo ordinal (day of year), padded to 3 218\n q quarter, no padding 3\n qq quarter, padded to 2 03\n D localized numeric date 9/4/2017\n DD localized date with abbreviated month Aug 6, 2014\n DDD localized date with full month August 6, 2014\n DDDD localized date with full month and weekday Wednesday, August 6, 2014\n t localized time 9:07 AM\n tt localized time with seconds 1:07:04 PM\n ttt localized time with seconds and abbreviated offset 1:07:04 PM EDT\n tttt localized time with seconds and full offset 1:07:04 PM Eastern Daylight Time\n T localized 24-hour time 13:07\n TT localized 24-hour time with seconds 13:07:04\n TTT localized 24-hour time with seconds and abbreviated offset 13:07:04 EDT\n TTTT localized 24-hour time with seconds and full offset 13:07:04 Eastern Daylight Time\n f short localized date and time 8/6/2014, 1:07 PM\n ff less short localized date and time Aug 6, 2014, 1:07 PM\n fff verbose localized date and time August 6, 2014, 1:07 PM EDT\n ffff extra verbose localized date and time Wednesday, August 6, 2014, 1:07 PM Eastern Daylight Time\n F short localized date and time with seconds 8/6/2014, 1:07:04 PM\n FF less short localized date and time with seconds Aug 6, 2014, 1:07:04 PM\n FFF verbose localized date and time with seconds August 6, 2014, 1:07:04 PM EDT\n FFFF extra verbose localized date and time with seconds Wednesday, August 6, 2014, 1:07:04 PM Eastern Daylight Time\n X unix timestamp in seconds 1407287224\n x unix timestamp in milliseconds 1407287224054\n * See https://moment.github.io/luxon/docs/manual/formatting.html\n * @param formatString\n * @returns {string}\n */\n public toFormat(formatString: string) {\n return this.dateTime.toFormat(formatString)\n }\n\n /**\n * Allow calculation with dates.\n * To substract pass a negative value;\n * @param object\n * @returns {DateTime}\n */\n public add(object: any) {\n return new DateTime(this.dateTime.plus(object))\n }\n\n /**\n * Returns the difference as an unsigned number,\n * returns null instead of a negative value\n * @param other\n * @returns {number}\n */\n public unsignedSubtractDays(other: DateTime) {\n let result = this.dateTime.diff(other.dateTime, \"days\").days\n result = Math.max(0, result)\n\n return Math.ceil(result)\n }\n\n /**\n * Returns the difference as an unsigned number,\n * returns null instead of a negative value\n * @param other\n * @returns {number}\n */\n public unsignedSubstractMinutes(other: DateTime) {\n let result = this.dateTime.diff(other.dateTime, \"minutes\").minutes\n result = Math.max(0, result)\n\n return Math.ceil(result)\n }\n\n /**\n * Resets the time to 00:00\n * @param dateTime\n * @returns {DateTime}\n */\n public stripTime() {\n if (!this.isValid) {\n throw new Error(\"Date is invalid\")\n }\n\n const dateTime = this.dateTime\n\n return DateTime.utc(dateTime.year, dateTime.month, dateTime.day)\n }\n\n public toString() {\n this.dateTime.toString()\n }\n\n public toIntlFormat() {\n return new Intl.DateTimeFormat(\"en-GB\", {\n dateStyle: \"short\",\n timeStyle: \"short\",\n }).format(this.toJsDate())\n }\n}\n"],"names":["DateTime","isDateTime","isValid","dateTime","year","month","day","hour","minute","second","fromMillis","milliseconds","LuxonDateTime","local","millisecond","utc","fromIsoString","isoString","opts","fromISO","toJsDate","toJSDate","valueOf","toMillis","equals","other","diff","toTimeString","toFormat","toIsoString","toLocalIsoString","toISO","includeOffset","includePrefix","formatString","add","object","plus","unsignedSubtractDays","result","days","Math","max","ceil","unsignedSubstractMinutes","minutes","stripTime","Error","toString","toIntlFormat","Intl","DateTimeFormat","dateStyle","timeStyle","format"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helper/SessionStorage.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { IKeyValueStorage } from \"./Storage\"\n\nexport class SessionStorage implements IKeyValueStorage {\n private static _instance: null | SessionStorage = null\n constructor() {\n if (!sessionStorage) {\n throw Error(\"Session Storage is not available. Mock if needed\")\n }\n }\n\n public static Instance() {\n if (!this._instance) this._instance = new SessionStorage()\n return this._instance\n }\n\n public set = (key: string, value: string | object | number) => {\n sessionStorage?.setItem(key, JSON.stringify(value))\n }\n\n // The get method will per default parse the received SessionStorage value and cast it to the defined `Data` type. If options.JSONparse is set to false, it will return the serialized string data\n public get = <Data = string, K extends boolean = true, R = K extends true ? Data : string>(\n key: string,\n options: { JSONparse?: K } = { JSONparse: true as K }\n ): R | null => {\n const item = sessionStorage?.getItem(key)\n if (!item) return null\n\n if (options.JSONparse) {\n return JSON.parse(item) as R\n }\n\n return item as R\n }\n\n public delete = (key: string) => {\n sessionStorage?.removeItem(key)\n }\n}\n\nexport enum ESessionStorageKeys {\n TOKEN = \"kc_token\",\n REFRESH_TOKEN = \"kc_refreshToken\",\n FILTER = \"filter\",\n TABLE = \"table\",\n}\n"],"names":["ESessionStorageKeys","SessionStorage","Instance","_instance","constructor","set","key","value","sessionStorage","setItem","JSON","stringify","get","options","JSONparse","item","getItem","parse","delete","removeItem","Error"],"mappings":"mPA4CYA,6BAAAA,yBArCCC,wBAAAA,sMAAN,MAAMA,eAQX,OAAcC,UAAW,CACvB,GAAI,CAAC,IAAI,CAACC,SAAS,CAAE,IAAI,CAACA,SAAS,CAAG,IAAIF,eAC1C,OAAO,IAAI,CAACE,SAAS,AACvB,CATAC,aAAc,CAWd,sBAAOC,MAAM,CAACC,IAAaC,aACzBC,iBAAAA,gBAAAA,wBAAAA,gCAAAA,gBAAgBC,OAAO,CAACH,IAAKI,KAAKC,SAAS,CAACJ,OAC9C,GAGA,sBAAOK,MAAM,CACXN,IACAO,QAA6B,CAAEC,UAAW,IAAU,CAAC,QAExCN,gBAAb,MAAMO,MAAOP,gBAAAA,wBAAAA,gCAAAA,gBAAgBQ,OAAO,CAACV,KACrC,GAAI,CAACS,KAAM,OAAO,KAElB,GAAIF,QAAQC,SAAS,CAAE,CACrB,OAAOJ,KAAKO,KAAK,CAACF,KACpB,CAEA,OAAOA,IACT,GAEA,sBAAOG,SAAS,AAACZ,UACfE,iBAAAA,gBAAAA,wBAAAA,gCAAAA,gBAAgBW,UAAU,CAACb,IAC7B,GA/BE,GAAI,CAACE,eAAgB,CACnB,MAAMY,MAAM,mDACd,CACF,CA6BF,CAlCE,iBADWnB,eACIE,YAAmC,MAoC7C,IAAA,AAAKH,0CAAAA,uMAAAA"}
1
+ {"version":3,"sources":["../../../src/helper/SessionStorage.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { IKeyValueStorage } from \"./Storage\"\n\nexport class SessionStorage implements IKeyValueStorage {\n private static _instance: null | SessionStorage = null\n constructor() {\n if (!sessionStorage) {\n throw Error(\"Session Storage is not available. Mock if needed\")\n }\n }\n\n public static Instance() {\n if (!this._instance) this._instance = new SessionStorage()\n return this._instance\n }\n\n public set = (key: string, value: string | object | number) => {\n sessionStorage?.setItem(key, JSON.stringify(value))\n }\n\n // The get method will per default parse the received SessionStorage value and cast it to the defined `Data` type. If options.JSONparse is set to false, it will return the serialized string data\n public get = <Data = string, K extends boolean = true, R = K extends true ? Data : string>(\n key: string,\n options: { JSONparse?: K } = { JSONparse: true as K }\n ): R | null => {\n const item = sessionStorage?.getItem(key)\n if (!item) return null\n\n if (options.JSONparse) {\n return JSON.parse(item) as R\n }\n\n return item as R\n }\n\n public delete = (key: string) => {\n sessionStorage?.removeItem(key)\n }\n}\n\nexport enum ESessionStorageKeys {\n TOKEN = \"kc_token\",\n REFRESH_TOKEN = \"kc_refreshToken\",\n FILTER = \"filter\",\n TABLE = \"table\",\n}\n"],"names":["ESessionStorageKeys","SessionStorage","Instance","_instance","set","key","value","sessionStorage","setItem","JSON","stringify","get","options","JSONparse","item","getItem","parse","delete","removeItem","Error"],"mappings":"mPA4CYA,6BAAAA,yBArCCC,wBAAAA,sMAAN,MAAMA,eAQX,OAAcC,UAAW,CACvB,GAAI,CAAC,IAAI,CAACC,SAAS,CAAE,IAAI,CAACA,SAAS,CAAG,IAAIF,eAC1C,OAAO,IAAI,CAACE,SAAS,AACvB,CATA,aAAc,CAWd,sBAAOC,MAAM,CAACC,IAAaC,aACzBC,iBAAAA,gBAAAA,wBAAAA,gCAAAA,gBAAgBC,OAAO,CAACH,IAAKI,KAAKC,SAAS,CAACJ,OAC9C,GAGA,sBAAOK,MAAM,CACXN,IACAO,QAA6B,CAAEC,UAAW,IAAU,CAAC,QAExCN,gBAAb,MAAMO,MAAOP,gBAAAA,wBAAAA,gCAAAA,gBAAgBQ,OAAO,CAACV,KACrC,GAAI,CAACS,KAAM,OAAO,KAElB,GAAIF,QAAQC,SAAS,CAAE,CACrB,OAAOJ,KAAKO,KAAK,CAACF,KACpB,CAEA,OAAOA,IACT,GAEA,sBAAOG,SAAS,AAACZ,UACfE,iBAAAA,gBAAAA,wBAAAA,gCAAAA,gBAAgBW,UAAU,CAACb,IAC7B,GA/BE,GAAI,CAACE,eAAgB,CACnB,MAAMY,MAAM,mDACd,CACF,CA6BF,CAlCE,iBADWlB,eACIE,YAAmC,MAoC7C,IAAA,AAAKH,0CAAAA,uMAAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/BadRequestError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TErrorType, TFieldErrors } from \"../types\"\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class BadRequestError<R = unknown> extends CustomError<R> {\n constructor(type: TErrorType, responseBody: R, fieldErrors: TFieldErrors, message?: string) {\n super(\n EHTTP_STATUS.BAD_REQUEST,\n type,\n responseBody,\n \"Bad Request\",\n message || \"Bad request content\",\n fieldErrors\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","BadRequestError","constructor","type","responseBody","fieldErrors","message","BAD_REQUEST"],"mappings":"AAKA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,wBAAqCD,YAChDE,YAAYC,IAAgB,CAAEC,YAAe,CAAEC,WAAyB,CAAEC,OAAgB,CAAE,CAC1F,KAAK,CACHP,aAAaQ,WAAW,CACxBJ,KACAC,aACA,cACAE,SAAW,sBACXD,YAEJ,CACF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/BadRequestError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TErrorType, TFieldErrors } from \"../types\"\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class BadRequestError<R = unknown> extends CustomError<R> {\n constructor(type: TErrorType, responseBody: R, fieldErrors: TFieldErrors, message?: string) {\n super(\n EHTTP_STATUS.BAD_REQUEST,\n type,\n responseBody,\n \"Bad Request\",\n message || \"Bad request content\",\n fieldErrors\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","BadRequestError","type","responseBody","fieldErrors","message","BAD_REQUEST"],"mappings":"AAKA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,wBAAqCD,YAChD,YAAYE,IAAgB,CAAEC,YAAe,CAAEC,WAAyB,CAAEC,OAAgB,CAAE,CAC1F,KAAK,CACHN,aAAaO,WAAW,CACxBJ,KACAC,aACA,cACAE,SAAW,sBACXD,YAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/CustomError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { TErrorType, TFieldErrors, TResponseError } from \"../types\"\nimport { getErrorName } from \"../libs\"\n\ninterface ICustomError extends Error {\n toObject: () => TResponseError\n}\n\nexport class CustomError<R = unknown> implements ICustomError {\n message: string\n type: TErrorType\n statuscode: EHTTP_STATUS\n name: string\n error: string\n fieldErrors?: TFieldErrors\n responseBody: R\n constructor(\n statusCode: EHTTP_STATUS,\n type: string,\n responseBody: R,\n error: string,\n message = \"\",\n fieldErrors: TFieldErrors = {}\n ) {\n this.statuscode = statusCode\n this.type = type\n this.message = message\n this.name = getErrorName(statusCode)\n this.error = error\n this.fieldErrors = fieldErrors\n this.responseBody = responseBody\n }\n\n public log() {\n console.log(`[${this.statuscode}] -> ${this.message}`)\n }\n\n public toObject() {\n return {\n message: this.message,\n type: this.type,\n name: this.name,\n statuscode: this.statuscode,\n error: this.error,\n fieldErrors: this.fieldErrors,\n responseBody: this.responseBody,\n }\n }\n}\n"],"names":["getErrorName","CustomError","log","console","statuscode","message","toObject","type","name","error","fieldErrors","responseBody","constructor","statusCode"],"mappings":"oLAMA,OAASA,YAAY,KAAQ,SAAS,AAMtC,QAAO,MAAMC,YAyBX,AAAOC,KAAM,CACXC,QAAQD,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAACE,UAAU,CAAC,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC,CAAC,CACvD,CAEA,AAAOC,UAAW,CAChB,MAAO,CACLD,QAAS,IAAI,CAACA,OAAO,CACrBE,KAAM,IAAI,CAACA,IAAI,CACfC,KAAM,IAAI,CAACA,IAAI,CACfJ,WAAY,IAAI,CAACA,UAAU,CAC3BK,MAAO,IAAI,CAACA,KAAK,CACjBC,YAAa,IAAI,CAACA,WAAW,CAC7BC,aAAc,IAAI,CAACA,YAAY,AACjC,CACF,CA/BAC,YACEC,UAAwB,CACxBN,IAAY,CACZI,YAAe,CACfF,KAAa,CACbJ,QAAU,EAAE,CACZK,YAA4B,CAAC,CAAC,CAC9B,CAdFL,sBAAAA,UAAAA,KAAAA,GACAE,sBAAAA,OAAAA,KAAAA,GACAH,sBAAAA,aAAAA,KAAAA,GACAI,sBAAAA,OAAAA,KAAAA,GACAC,sBAAAA,QAAAA,KAAAA,GACAC,sBAAAA,cAAAA,KAAAA,GACAC,sBAAAA,eAAAA,KAAAA,EASE,CAAA,IAAI,CAACP,UAAU,CAAGS,UAClB,CAAA,IAAI,CAACN,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACF,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,IAAI,CAAGR,aAAaa,WACzB,CAAA,IAAI,CAACJ,KAAK,CAAGA,KACb,CAAA,IAAI,CAACC,WAAW,CAAGA,WACnB,CAAA,IAAI,CAACC,YAAY,CAAGA,YACtB,CAiBF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/CustomError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { TErrorType, TFieldErrors, TResponseError } from \"../types\"\nimport { getErrorName } from \"../libs\"\n\ninterface ICustomError extends Error {\n toObject: () => TResponseError\n}\n\nexport class CustomError<R = unknown> implements ICustomError {\n message: string\n type: TErrorType\n statuscode: EHTTP_STATUS\n name: string\n error: string\n fieldErrors?: TFieldErrors\n responseBody: R\n constructor(\n statusCode: EHTTP_STATUS,\n type: string,\n responseBody: R,\n error: string,\n message = \"\",\n fieldErrors: TFieldErrors = {}\n ) {\n this.statuscode = statusCode\n this.type = type\n this.message = message\n this.name = getErrorName(statusCode)\n this.error = error\n this.fieldErrors = fieldErrors\n this.responseBody = responseBody\n }\n\n public log() {\n console.log(`[${this.statuscode}] -> ${this.message}`)\n }\n\n public toObject() {\n return {\n message: this.message,\n type: this.type,\n name: this.name,\n statuscode: this.statuscode,\n error: this.error,\n fieldErrors: this.fieldErrors,\n responseBody: this.responseBody,\n }\n }\n}\n"],"names":["getErrorName","CustomError","log","console","statuscode","message","toObject","type","name","error","fieldErrors","responseBody","statusCode"],"mappings":"oLAMA,OAASA,YAAY,KAAQ,SAAS,AAMtC,QAAO,MAAMC,YAyBX,AAAOC,KAAM,CACXC,QAAQD,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAACE,UAAU,CAAC,KAAK,EAAE,IAAI,CAACC,OAAO,CAAC,CAAC,CACvD,CAEA,AAAOC,UAAW,CAChB,MAAO,CACLD,QAAS,IAAI,CAACA,OAAO,CACrBE,KAAM,IAAI,CAACA,IAAI,CACfC,KAAM,IAAI,CAACA,IAAI,CACfJ,WAAY,IAAI,CAACA,UAAU,CAC3BK,MAAO,IAAI,CAACA,KAAK,CACjBC,YAAa,IAAI,CAACA,WAAW,CAC7BC,aAAc,IAAI,CAACA,YAAY,AACjC,CACF,CA/BA,YACEC,UAAwB,CACxBL,IAAY,CACZI,YAAe,CACfF,KAAa,CACbJ,QAAU,EAAE,CACZK,YAA4B,CAAC,CAAC,CAC9B,CAdFL,sBAAAA,UAAAA,KAAAA,GACAE,sBAAAA,OAAAA,KAAAA,GACAH,sBAAAA,aAAAA,KAAAA,GACAI,sBAAAA,OAAAA,KAAAA,GACAC,sBAAAA,QAAAA,KAAAA,GACAC,sBAAAA,cAAAA,KAAAA,GACAC,sBAAAA,eAAAA,KAAAA,EASE,CAAA,IAAI,CAACP,UAAU,CAAGQ,UAClB,CAAA,IAAI,CAACL,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACF,OAAO,CAAGA,OACf,CAAA,IAAI,CAACG,IAAI,CAAGR,aAAaY,WACzB,CAAA,IAAI,CAACH,KAAK,CAAGA,KACb,CAAA,IAAI,CAACC,WAAW,CAAGA,WACnB,CAAA,IAAI,CAACC,YAAY,CAAGA,YACtB,CAiBF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/FetchError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { CustomError } from \"./CustomError\"\n\nexport class FetchError extends CustomError {\n constructor(e: unknown) {\n super(999, \"fetching_failed\", String(e), \"Fetching failed ...\")\n }\n}\n"],"names":["CustomError","FetchError","constructor","e","String"],"mappings":"AAIA,OAASA,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,mBAAmBD,YAC9BE,YAAYC,CAAU,CAAE,CACtB,KAAK,CAAC,IAAK,kBAAmBC,OAAOD,GAAI,sBAC3C,CACF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/FetchError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { CustomError } from \"./CustomError\"\n\nexport class FetchError extends CustomError {\n constructor(e: unknown) {\n super(999, \"fetching_failed\", String(e), \"Fetching failed ...\")\n }\n}\n"],"names":["CustomError","FetchError","e","String"],"mappings":"AAIA,OAASA,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,mBAAmBD,YAC9B,YAAYE,CAAU,CAAE,CACtB,KAAK,CAAC,IAAK,kBAAmBC,OAAOD,GAAI,sBAC3C,CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/InvalidStatusCodeError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class InvalidStatusCodeError<R = unknown> extends CustomError<R> {\n name: string\n status: EHTTP_STATUS\n\n constructor(responseBody: R, status: EHTTP_STATUS) {\n super(\n status,\n \"invalid_statuscode\",\n responseBody,\n \"InvalidStatusCodeError\",\n \"The received status code is invalid\"\n )\n this.status = status\n this.name = \"InvalidStatusCodeError\"\n }\n\n public toString() {\n return `${this.name} : ${this.status} - ${this.message}`\n }\n}\n"],"names":["CustomError","InvalidStatusCodeError","toString","name","status","message","constructor","responseBody"],"mappings":"oLAKA,OAASA,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,+BAA4CD,YAgBvD,AAAOE,UAAW,CAChB,MAAO,CAAC,EAAE,IAAI,CAACC,IAAI,CAAC,GAAG,EAAE,IAAI,CAACC,MAAM,CAAC,GAAG,EAAE,IAAI,CAACC,OAAO,CAAC,CAAC,AAC1D,CAdAC,YAAYC,YAAe,CAAEH,MAAoB,CAAE,CACjD,KAAK,CACHA,OACA,qBACAG,aACA,yBACA,uCATJJ,sBAAAA,OAAAA,KAAAA,GACAC,sBAAAA,SAAAA,KAAAA,EAUE,CAAA,IAAI,CAACA,MAAM,CAAGA,MACd,CAAA,IAAI,CAACD,IAAI,CAAG,wBACd,CAKF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/InvalidStatusCodeError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class InvalidStatusCodeError<R = unknown> extends CustomError<R> {\n name: string\n status: EHTTP_STATUS\n\n constructor(responseBody: R, status: EHTTP_STATUS) {\n super(\n status,\n \"invalid_statuscode\",\n responseBody,\n \"InvalidStatusCodeError\",\n \"The received status code is invalid\"\n )\n this.status = status\n this.name = \"InvalidStatusCodeError\"\n }\n\n public toString() {\n return `${this.name} : ${this.status} - ${this.message}`\n }\n}\n"],"names":["CustomError","InvalidStatusCodeError","toString","name","status","message","responseBody"],"mappings":"oLAKA,OAASA,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,+BAA4CD,YAgBvD,AAAOE,UAAW,CAChB,MAAO,CAAC,EAAE,IAAI,CAACC,IAAI,CAAC,GAAG,EAAE,IAAI,CAACC,MAAM,CAAC,GAAG,EAAE,IAAI,CAACC,OAAO,CAAC,CAAC,AAC1D,CAdA,YAAYC,YAAe,CAAEF,MAAoB,CAAE,CACjD,KAAK,CACHA,OACA,qBACAE,aACA,yBACA,uCATJH,sBAAAA,OAAAA,KAAAA,GACAC,sBAAAA,SAAAA,KAAAA,EAUE,CAAA,IAAI,CAACA,MAAM,CAAGA,MACd,CAAA,IAAI,CAACD,IAAI,CAAG,wBACd,CAKF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/NotFoundError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\nimport { TErrorType } from \"../types\"\n\nexport class NotFoundError extends CustomError {\n constructor(e: unknown, type: TErrorType, message?: string) {\n super(\n EHTTP_STATUS.NOT_FOUND,\n type,\n (typeof e === \"string\" ? e : JSON.stringify(e)) || \"Requested ressource was not found\",\n message || \"Requested ressource was not found\"\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","NotFoundError","constructor","e","type","message","NOT_FOUND","JSON","stringify"],"mappings":"AAIA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAG3C,QAAO,MAAMC,sBAAsBD,YACjCE,YAAYC,CAAU,CAAEC,IAAgB,CAAEC,OAAgB,CAAE,CAC1D,KAAK,CACHN,aAAaO,SAAS,CACtBF,KACA,AAAC,CAAA,OAAOD,IAAM,SAAWA,EAAII,KAAKC,SAAS,CAACL,EAAC,GAAM,oCACnDE,SAAW,oCAEf,CACF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/NotFoundError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\nimport { TErrorType } from \"../types\"\n\nexport class NotFoundError extends CustomError {\n constructor(e: unknown, type: TErrorType, message?: string) {\n super(\n EHTTP_STATUS.NOT_FOUND,\n type,\n (typeof e === \"string\" ? e : JSON.stringify(e)) || \"Requested ressource was not found\",\n message || \"Requested ressource was not found\"\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","NotFoundError","e","type","message","NOT_FOUND","JSON","stringify"],"mappings":"AAIA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAG3C,QAAO,MAAMC,sBAAsBD,YACjC,YAAYE,CAAU,CAAEC,IAAgB,CAAEC,OAAgB,CAAE,CAC1D,KAAK,CACHL,aAAaM,SAAS,CACtBF,KACA,AAAC,CAAA,OAAOD,IAAM,SAAWA,EAAII,KAAKC,SAAS,CAACL,EAAC,GAAM,oCACnDE,SAAW,oCAEf,CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/api/error/Errors/ParsingError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class ParsingError extends CustomError {\n constructor(e: unknown, message?: string) {\n super(\n EHTTP_STATUS.UNPROCESSABLE_ENTITY,\n \"parsing_error\",\n String(e),\n message || \"Parsing failed ...\"\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","ParsingError","constructor","e","message","UNPROCESSABLE_ENTITY","String"],"mappings":"AAIA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,qBAAqBD,YAChCE,YAAYC,CAAU,CAAEC,OAAgB,CAAE,CACxC,KAAK,CACHL,aAAaM,oBAAoB,CACjC,gBACAC,OAAOH,GACPC,SAAW,qBAEf,CACF"}
1
+ {"version":3,"sources":["../../../../../src/api/error/Errors/ParsingError.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { EHTTP_STATUS } from \"../../base/EHttpStatus\"\nimport { CustomError } from \"./CustomError\"\n\nexport class ParsingError extends CustomError {\n constructor(e: unknown, message?: string) {\n super(\n EHTTP_STATUS.UNPROCESSABLE_ENTITY,\n \"parsing_error\",\n String(e),\n message || \"Parsing failed ...\"\n )\n }\n}\n"],"names":["EHTTP_STATUS","CustomError","ParsingError","e","message","UNPROCESSABLE_ENTITY","String"],"mappings":"AAIA,OAASA,YAAY,KAAQ,wBAAwB,AACrD,QAASC,WAAW,KAAQ,eAAe,AAE3C,QAAO,MAAMC,qBAAqBD,YAChC,YAAYE,CAAU,CAAEC,OAAgB,CAAE,CACxC,KAAK,CACHJ,aAAaK,oBAAoB,CACjC,gBACAC,OAAOH,GACPC,SAAW,qBAEf,CACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FC, PropsWithChildren } from \"react\"\nimport { Component } from \"react\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\nimport { ErrorBoundaryFallback } from \"./ErrorBoundaryFallback\"\n\nexport type TErrorBoundaryProps = PropsWithChildren & {\n fallback?: TErrorBoundaryFallback\n}\n\nexport type TBaseErrorBoundaryProps = PropsWithChildren & {\n fallback: TErrorBoundaryFallback\n theme: MantineTheme\n}\n\ntype TErrorBoundaryFallback = FC<{\n error: Error | null\n theme: MantineTheme\n}>\n\n/**\n * Basic error boundary implementation to catch error in the child components\n * @param fallback component that should be rendered in case an error occurred\n * @param theme a theme to style the fallback component\n */\nclass BaseErrorBoundary extends Component<\n TBaseErrorBoundaryProps,\n { hasError: boolean; error: null | Error }\n> {\n constructor(props: TBaseErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error: any) {\n return { hasError: !!error, error }\n }\n\n render() {\n if (this.state.hasError) {\n return this.props.fallback({\n error: this.state.error,\n theme: this.props.theme,\n })\n }\n return this.props.children\n }\n}\n\n/**\n * Error boundary that is styled with the Mantine theme and provides a fallback\n * component by default. It also accepts an optional custom fallback component.\n * @param theme mantine theme\n * @param children\n * @param fallback an optional fallback component to use instead of default\n */\n\nconst ErrorComponentRaw = ({\n theme,\n fallback,\n children,\n}: PropsWithChildren & {\n theme: MantineTheme\n fallback?: TErrorBoundaryFallback\n}) => (\n <BaseErrorBoundary fallback={fallback ? fallback : () => <ErrorBoundaryFallback />} theme={theme}>\n {children}\n </BaseErrorBoundary>\n)\n\nconst ErrorBoundary = ({ children, fallback }: TErrorBoundaryProps) => {\n const theme = useMantineTheme()\n return (\n <ErrorComponentRaw theme={theme} fallback={fallback}>\n {children}\n </ErrorComponentRaw>\n )\n}\n\nexport { ErrorBoundary }\n"],"names":["Component","useMantineTheme","ErrorBoundaryFallback","BaseErrorBoundary","getDerivedStateFromError","error","hasError","render","state","props","fallback","theme","children","constructor","ErrorComponentRaw","ErrorBoundary"],"mappings":"0CAKA,QAASA,SAAS,KAAQ,OAAO,AACjC,QAAuBC,eAAe,KAAQ,eAAe,AAC7D,QAASC,qBAAqB,KAAQ,yBAAyB,AAqB/D,OAAMC,0BAA0BH,UAS9B,OAAOI,yBAAyBC,KAAU,CAAE,CAC1C,MAAO,CAAEC,SAAU,CAAC,CAACD,MAAOA,KAAM,CACpC,CAEAE,QAAS,CACP,GAAI,IAAI,CAACC,KAAK,CAACF,QAAQ,CAAE,CACvB,OAAO,IAAI,CAACG,KAAK,CAACC,QAAQ,CAAC,CACzBL,MAAO,IAAI,CAACG,KAAK,CAACH,KAAK,CACvBM,MAAO,IAAI,CAACF,KAAK,CAACE,KAAK,AACzB,EACF,CACA,OAAO,IAAI,CAACF,KAAK,CAACG,QAAQ,AAC5B,CAjBAC,YAAYJ,KAA8B,CAAE,CAC1C,KAAK,CAACA,MACN,CAAA,IAAI,CAACD,KAAK,CAAG,CAAEF,SAAU,MAAOD,MAAO,IAAK,CAC9C,CAeF,CAUA,MAAMS,kBAAoB,CAAC,CACzBH,KAAK,CACLD,QAAQ,CACRE,QAAQ,CAIT,GACC,KAACT,mBAAkBO,SAAUA,SAAWA,SAAW,IAAM,KAACR,0BAA0BS,MAAOA,eACxFC,WAIL,MAAMG,cAAgB,CAAC,CAAEH,QAAQ,CAAEF,QAAQ,CAAuB,IAChE,MAAMC,MAAQV,kBACd,OACE,KAACa,mBAAkBH,MAAOA,MAAOD,SAAUA,kBACxCE,UAGP,CAEA,QAASG,aAAa,CAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FC, PropsWithChildren } from \"react\"\nimport { Component } from \"react\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\nimport { ErrorBoundaryFallback } from \"./ErrorBoundaryFallback\"\n\nexport type TErrorBoundaryProps = PropsWithChildren & {\n fallback?: TErrorBoundaryFallback\n}\n\nexport type TBaseErrorBoundaryProps = PropsWithChildren & {\n fallback: TErrorBoundaryFallback\n theme: MantineTheme\n}\n\ntype TErrorBoundaryFallback = FC<{\n error: Error | null\n theme: MantineTheme\n}>\n\n/**\n * Basic error boundary implementation to catch error in the child components\n * @param fallback component that should be rendered in case an error occurred\n * @param theme a theme to style the fallback component\n */\nclass BaseErrorBoundary extends Component<\n TBaseErrorBoundaryProps,\n { hasError: boolean; error: null | Error }\n> {\n constructor(props: TBaseErrorBoundaryProps) {\n super(props)\n this.state = { hasError: false, error: null }\n }\n\n static getDerivedStateFromError(error: any) {\n return { hasError: !!error, error }\n }\n\n render() {\n if (this.state.hasError) {\n return this.props.fallback({\n error: this.state.error,\n theme: this.props.theme,\n })\n }\n return this.props.children\n }\n}\n\n/**\n * Error boundary that is styled with the Mantine theme and provides a fallback\n * component by default. It also accepts an optional custom fallback component.\n * @param theme mantine theme\n * @param children\n * @param fallback an optional fallback component to use instead of default\n */\n\nconst ErrorComponentRaw = ({\n theme,\n fallback,\n children,\n}: PropsWithChildren & {\n theme: MantineTheme\n fallback?: TErrorBoundaryFallback\n}) => (\n <BaseErrorBoundary fallback={fallback ? fallback : () => <ErrorBoundaryFallback />} theme={theme}>\n {children}\n </BaseErrorBoundary>\n)\n\nconst ErrorBoundary = ({ children, fallback }: TErrorBoundaryProps) => {\n const theme = useMantineTheme()\n return (\n <ErrorComponentRaw theme={theme} fallback={fallback}>\n {children}\n </ErrorComponentRaw>\n )\n}\n\nexport { ErrorBoundary }\n"],"names":["Component","useMantineTheme","ErrorBoundaryFallback","BaseErrorBoundary","getDerivedStateFromError","error","hasError","render","state","props","fallback","theme","children","ErrorComponentRaw","ErrorBoundary"],"mappings":"0CAKA,QAASA,SAAS,KAAQ,OAAO,AACjC,QAAuBC,eAAe,KAAQ,eAAe,AAC7D,QAASC,qBAAqB,KAAQ,yBAAyB,AAqB/D,OAAMC,0BAA0BH,UAS9B,OAAOI,yBAAyBC,KAAU,CAAE,CAC1C,MAAO,CAAEC,SAAU,CAAC,CAACD,MAAOA,KAAM,CACpC,CAEAE,QAAS,CACP,GAAI,IAAI,CAACC,KAAK,CAACF,QAAQ,CAAE,CACvB,OAAO,IAAI,CAACG,KAAK,CAACC,QAAQ,CAAC,CACzBL,MAAO,IAAI,CAACG,KAAK,CAACH,KAAK,CACvBM,MAAO,IAAI,CAACF,KAAK,CAACE,KAAK,AACzB,EACF,CACA,OAAO,IAAI,CAACF,KAAK,CAACG,QAAQ,AAC5B,CAjBA,YAAYH,KAA8B,CAAE,CAC1C,KAAK,CAACA,MACN,CAAA,IAAI,CAACD,KAAK,CAAG,CAAEF,SAAU,MAAOD,MAAO,IAAK,CAC9C,CAeF,CAUA,MAAMQ,kBAAoB,CAAC,CACzBF,KAAK,CACLD,QAAQ,CACRE,QAAQ,CAIT,GACC,KAACT,mBAAkBO,SAAUA,SAAWA,SAAW,IAAM,KAACR,0BAA0BS,MAAOA,eACxFC,WAIL,MAAME,cAAgB,CAAC,CAAEF,QAAQ,CAAEF,QAAQ,CAAuB,IAChE,MAAMC,MAAQV,kBACd,OACE,KAACY,mBAAkBF,MAAOA,MAAOD,SAAUA,kBACxCE,UAGP,CAEA,QAASE,aAAa,CAAE"}
@@ -1,2 +1,2 @@
1
- function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}import{TFilter}from"./types";export const termMachine=term=>{const termState=structuredClone(term);const setActive=()=>{termState.active=true;return termMachine(termState)};const setInactive=()=>{termState.active=false;return termMachine(termState)};const setComplete=()=>{termState.completed=true;return termMachine(termState)};const setIncomplete=()=>{termState.completed=false;return termMachine(termState)};const setAttribute=attribute=>{termState.attribute=attribute;return termMachine(termState)};const setSelectedCascadeValue=values=>{termState.selectedCascadeValues=values;return termMachine(termState)};const setAttributeValues=value=>{if(termState.attribute)termState.attribute.values=value;return termMachine(termState)};const setOperator=operator=>{termState.operator=operator;return termMachine(termState)};const setValue=value=>{termState.value=value;return termMachine(termState)};const build=()=>termState;return{build,setIncomplete,setComplete,setActive,setInactive,setAttribute,setSelectedCascadeValue,setAttributeValues,setOperator,setValue}};export const termsMachine=terms=>{const termsState=structuredClone(terms);const setAllInactive=()=>{const newTerms=[...termsState].map(term=>termMachine(term).setInactive().build());return termsMachine(newTerms)};const removeAllIncompleted=()=>{const newTerms=[...termsState].filter(term=>term.completed);return termsMachine(newTerms)};const removeSpecificTerm=id=>{const newTerms=[...termsState].filter(term=>term.id!==id);return termsMachine(newTerms)};const getSpecificTerm=id=>{return termsState.find(term=>term.id===id)};const getSpecificTermIndex=id=>{return termsState.findIndex(t=>t.id===id)};const updateSpecificTerm=(id,update)=>{const term=getSpecificTerm(id);if(!term){return termsMachine(termsState)}const termIndex=termsState.findIndex(x=>x.id===id);termsState[termIndex]=update(term);return termsMachine(termsState)};const updateSpecificTermByIndex=(index,update)=>{const term=termsState[index];termsState[index]=update(term);return termsMachine(termsState)};const pushNewTerm=()=>{const newTerms=[...termsState,createEmptyTerm()];return termsMachine(newTerms)};const build=()=>termsState;return{build,getSpecificTerm,removeAllIncompleted,updateSpecificTerm,setAllInactive,pushNewTerm,removeSpecificTerm,getSpecificTermIndex,updateSpecificTermByIndex}};export const prepareValueDeletion=(oldValue,valueToDelete)=>{if(valueToDelete&&Array.isArray(oldValue)&&oldValue.length>1)return oldValue.filter(value=>value!==valueToDelete);return null};export const getCascadeValuesForConfigitem=(configItem,lastVal)=>{var _configItem_cascadeValues;let foundVal;configItem===null||configItem===void 0?void 0:(_configItem_cascadeValues=configItem.cascadeValues)===null||_configItem_cascadeValues===void 0?void 0:_configItem_cascadeValues.find(config=>{const find=values=>{const found=values===null||values===void 0?void 0:values.find(v=>{const found=v.value===lastVal.value;if(found){foundVal=v;return true}return find(v.options)});if(found)return found};if(config.value===lastVal.value){foundVal=config;return config}return find(config.options)});return foundVal};export const prepareValueChange=(currentValue,newValue)=>{if(Array.isArray(currentValue)&&Array.isArray(newValue))return newValue;if(Array.isArray(newValue))return[...newValue];return newValue};export const createEmptyTerm=()=>{return{completed:false,attribute:null,selectedCascadeValues:null,operator:null,value:null,active:true,id:Date.now()}};export const capitalize=string=>{return string.charAt(0).toUpperCase()+string.slice(1)};export function parseNumber(value,type){const number=parseFloat(value.replace(",","."));switch(type){case TFilter.EControlType.FLOAT:return number.fixDecimals(3);case TFilter.EControlType.INTEGER:return number.roundToInteger();default:return number}}export const appendValueToCurrentValueArray=(controlType,newValue)=>{if([TFilter.EControlType.STRING,TFilter.EControlType.ENUM,TFilter.EControlType.UUID].includes(controlType)){return newValue}if(Array.isArray(newValue)){return newValue.map(v=>parseNumber(v,controlType))}else{return parseNumber(newValue,controlType)}};export function parseString(input){var _input_match;const regex=/"[^"]+"|[^:]+/g;return((_input_match=input.match(regex))===null||_input_match===void 0?void 0:_input_match.map(match=>match.replace(/"/g,"")))||[]}export const emptyFilterDTO={operator:TFilter.DTO.Match.AND,fields:[]};export const emptyFilterInternal={match:"ALL",terms:[],termsCollapsed:false,edited:false};export const emptyFilterDTOBase64="eyJvcGVyYXRvciI6ImFuZCIsImZpZWxkcyI6W119";export const validateFilterDTO=(filterDTO,config)=>{const result=_object_spread({},filterDTO);const availableNames=config.reduce((acc,curr)=>[...acc,curr.name.value],[]);result.fields=filterDTO.fields.reduce((acc,curr)=>{var _config_find;if(!availableNames.includes(curr.name))return acc;const availableOperators=((_config_find=config.find(c=>c.name.value===curr.name))===null||_config_find===void 0?void 0:_config_find.operators.map(o=>o.value))||[];if(!availableOperators.includes(curr.operator))return acc;return[...acc,curr]},[]);return result};
1
+ function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}import{TFilter}from"./types";export const termMachine=term=>{const termState=structuredClone(term);const setActive=()=>{termState.active=true;return termMachine(termState)};const setInactive=()=>{termState.active=false;return termMachine(termState)};const setComplete=()=>{termState.completed=true;return termMachine(termState)};const setIncomplete=()=>{termState.completed=false;return termMachine(termState)};const setAttribute=attribute=>{termState.attribute=attribute;return termMachine(termState)};const setSelectedCascadeValue=values=>{termState.selectedCascadeValues=values;return termMachine(termState)};const setAttributeValues=value=>{if(termState.attribute)termState.attribute.values=value;return termMachine(termState)};const setOperator=operator=>{termState.operator=operator;return termMachine(termState)};const setValue=value=>{termState.value=value;return termMachine(termState)};const build=()=>termState;return{build,setIncomplete,setComplete,setActive,setInactive,setAttribute,setSelectedCascadeValue,setAttributeValues,setOperator,setValue}};export const termsMachine=terms=>{const termsState=structuredClone(terms);const setAllInactive=()=>{const newTerms=[...termsState].map(term=>termMachine(term).setInactive().build());return termsMachine(newTerms)};const removeAllIncompleted=()=>{const newTerms=[...termsState].filter(term=>term.completed);return termsMachine(newTerms)};const removeSpecificTerm=id=>{const newTerms=[...termsState].filter(term=>term.id!==id);return termsMachine(newTerms)};const getSpecificTerm=id=>{return termsState.find(term=>term.id===id)};const getSpecificTermIndex=id=>{return termsState.findIndex(t=>t.id===id)};const updateSpecificTerm=(id,update)=>{const term=getSpecificTerm(id);if(!term){return termsMachine(termsState)}const termIndex=termsState.findIndex(x=>x.id===id);termsState[termIndex]=update(term);return termsMachine(termsState)};const updateSpecificTermByIndex=(index,update)=>{const term=termsState[index];termsState[index]=update(term);return termsMachine(termsState)};const pushNewTerm=()=>{const newTerms=[...termsState,createEmptyTerm()];return termsMachine(newTerms)};const build=()=>termsState;return{build,getSpecificTerm,removeAllIncompleted,updateSpecificTerm,setAllInactive,pushNewTerm,removeSpecificTerm,getSpecificTermIndex,updateSpecificTermByIndex}};export const prepareValueDeletion=(oldValue,valueToDelete)=>{if(valueToDelete&&Array.isArray(oldValue)&&oldValue.length>1)return oldValue.filter(value=>value!==valueToDelete);return null};export const getCascadeValuesForConfigitem=(configItem,lastVal)=>{var _configItem_cascadeValues;let foundVal;configItem===null||configItem===void 0?void 0:(_configItem_cascadeValues=configItem.cascadeValues)===null||_configItem_cascadeValues===void 0?void 0:_configItem_cascadeValues.find(config=>{const find=values=>{const found=values===null||values===void 0?void 0:values.find(v=>{const found=v.value===lastVal.value;if(found){foundVal=v;return true}return find(v.options)});if(found)return found};if(config.value===lastVal.value){foundVal=config;return config}return find(config.options)});return foundVal};export const prepareValueChange=(currentValue,newValue)=>{if(Array.isArray(currentValue)&&Array.isArray(newValue))return newValue;if(Array.isArray(newValue))return[...newValue];return newValue};export const createEmptyTerm=()=>{return{completed:false,attribute:null,selectedCascadeValues:null,operator:null,value:null,active:true,id:Date.now()}};export const capitalize=string=>{return string.charAt(0).toUpperCase()+string.slice(1)};export function parseNumber(value,type){const number=parseFloat(value.replace(",","."));switch(type){case TFilter.EControlType.FLOAT:return number.fixDecimals(1);case TFilter.EControlType.INTEGER:return number.roundToInteger();default:return number}}export const appendValueToCurrentValueArray=(controlType,newValue)=>{if([TFilter.EControlType.STRING,TFilter.EControlType.ENUM,TFilter.EControlType.UUID].includes(controlType)){return newValue}if(Array.isArray(newValue)){return newValue.map(v=>parseNumber(v,controlType))}else{return parseNumber(newValue,controlType)}};export function parseString(input){var _input_match;const regex=/"[^"]+"|[^:]+/g;return((_input_match=input.match(regex))===null||_input_match===void 0?void 0:_input_match.map(match=>match.replace(/"/g,"")))||[]}export const emptyFilterDTO={operator:TFilter.DTO.Match.AND,fields:[]};export const emptyFilterInternal={match:"ALL",terms:[],termsCollapsed:false,edited:false};export const emptyFilterDTOBase64="eyJvcGVyYXRvciI6ImFuZCIsImZpZWxkcyI6W119";export const validateFilterDTO=(filterDTO,config)=>{const result=_object_spread({},filterDTO);const availableNames=config.reduce((acc,curr)=>[...acc,curr.name.value],[]);result.fields=filterDTO.fields.reduce((acc,curr)=>{var _config_find;if(!availableNames.includes(curr.name))return acc;const availableOperators=((_config_find=config.find(c=>c.name.value===curr.name))===null||_config_find===void 0?void 0:_config_find.operators.map(o=>o.value))||[];if(!availableOperators.includes(curr.operator))return acc;return[...acc,curr]},[]);return result};
2
2
  //# sourceMappingURL=libs.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Filter/utils/libs.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFilter } from \"./types\"\nimport { TValue } from \"../../Form\"\nimport { TCascadeOption } from \"../../Form/Select/Cascade/CascadeOption\"\n\n// This function accepts a term as an argument and implements the builder pattern to modify the given term.\n// It implements the usage a domain specific language for the term without having to adjust the individual properties of the term itself.\n// The machine will return an instance of termMachine. To receive the adjusted term, you need to call .build() at the end.\nexport const termMachine = (term: TFilter.Internal.Term.State) => {\n const termState = structuredClone(term)\n\n const setActive = () => {\n termState.active = true\n return termMachine(termState)\n }\n\n const setInactive = () => {\n termState.active = false\n return termMachine(termState)\n }\n\n const setComplete = () => {\n termState.completed = true\n return termMachine(termState)\n }\n\n const setIncomplete = () => {\n termState.completed = false\n return termMachine(termState)\n }\n\n const setAttribute = (attribute: TFilter.ConfigItem | null) => {\n termState.attribute = attribute\n return termMachine(termState)\n }\n\n const setSelectedCascadeValue = (values: TCascadeOption<TValue[]>[]) => {\n termState.selectedCascadeValues = values\n return termMachine(termState)\n }\n\n const setAttributeValues = (value: string[]) => {\n if (termState.attribute) termState.attribute.values = value\n return termMachine(termState)\n }\n\n const setOperator = (operator: TFilter.Operator | null) => {\n termState.operator = operator\n return termMachine(termState)\n }\n\n const setValue = (value: TFilter.Internal.Term.TermValue) => {\n termState.value = value\n return termMachine(termState)\n }\n\n const build = () => termState\n\n return {\n build,\n setIncomplete,\n setComplete,\n setActive,\n setInactive,\n setAttribute,\n setSelectedCascadeValue,\n setAttributeValues,\n setOperator,\n setValue,\n }\n}\n\n// This function accepts an array of terms as an argument and implements the builder pattern to modify the given terms.\n// It implements the usage a domain specific language for the terms without having to adjust the individual properties of the term itself.\n// The machine will return an instance of termsMachine. To receive the adjusted terms, you need to call .build() at the end.\nexport const termsMachine = (terms: TFilter.Internal.Term.State[]) => {\n const termsState = structuredClone(terms)\n\n const setAllInactive = () => {\n const newTerms = [...termsState].map((term) => termMachine(term).setInactive().build())\n return termsMachine(newTerms)\n }\n\n const removeAllIncompleted = () => {\n const newTerms = [...termsState].filter((term) => term.completed)\n return termsMachine(newTerms)\n }\n\n const removeSpecificTerm = (id: TFilter.Internal.Term.State[\"id\"]) => {\n const newTerms = [...termsState].filter((term) => term.id !== id)\n return termsMachine(newTerms)\n }\n\n const getSpecificTerm = (id: TFilter.Internal.Term.State[\"id\"]) => {\n return termsState.find((term) => term.id === id)\n }\n\n const getSpecificTermIndex = (id: TFilter.Internal.Term.State[\"id\"]) => {\n return termsState.findIndex((t) => t.id === id)\n }\n\n const updateSpecificTerm = (\n id: TFilter.Internal.Term.State[\"id\"],\n update: (term: TFilter.Internal.Term.State) => TFilter.Internal.Term.State\n ) => {\n const term = getSpecificTerm(id)\n if (!term) {\n return termsMachine(termsState)\n }\n const termIndex = termsState.findIndex((x) => x.id === id)\n termsState[termIndex] = update(term)\n return termsMachine(termsState)\n }\n\n const updateSpecificTermByIndex = (\n index: number,\n update: (term: TFilter.Internal.Term.State) => TFilter.Internal.Term.State\n ) => {\n const term = termsState[index]\n\n termsState[index] = update(term)\n return termsMachine(termsState)\n }\n\n const pushNewTerm = () => {\n const newTerms = [...termsState, createEmptyTerm()]\n return termsMachine(newTerms)\n }\n\n const build = () => termsState\n\n return {\n build,\n getSpecificTerm,\n removeAllIncompleted,\n updateSpecificTerm,\n setAllInactive,\n pushNewTerm,\n removeSpecificTerm,\n getSpecificTermIndex,\n updateSpecificTermByIndex,\n }\n}\n\nexport const prepareValueDeletion = (\n oldValue: TFilter.Internal.Term.TermValue,\n valueToDelete?: string\n) => {\n if (valueToDelete && Array.isArray(oldValue) && oldValue.length > 1)\n return oldValue.filter((value) => value !== valueToDelete)\n return null\n}\n\nexport const getCascadeValuesForConfigitem = (configItem: TFilter.ConfigItem, lastVal: TValue) => {\n let foundVal: TFilter.CascadeValue | undefined\n configItem?.cascadeValues?.find((config) => {\n const find = (\n values: TFilter.ConfigItem[\"cascadeValues\"]\n ): TFilter.CascadeValue | undefined => {\n const found: TFilter.CascadeValue | undefined = values?.find((v) => {\n const found = v.value === lastVal.value\n\n if (found) {\n foundVal = v\n return true\n }\n\n return find(v.options)\n })\n if (found) return found\n }\n if (config.value === lastVal.value) {\n foundVal = config\n return config\n }\n return find(config.options)\n })\n return foundVal\n}\n\nexport const prepareValueChange = (\n currentValue: TFilter.Internal.Term.TermValue,\n newValue: TFilter.Internal.Term.TermValue\n) => {\n if (Array.isArray(currentValue) && Array.isArray(newValue)) return newValue\n if (Array.isArray(newValue)) return [...newValue]\n return newValue\n}\n\nexport const createEmptyTerm = (): TFilter.Internal.Term.State => {\n return {\n completed: false,\n attribute: null,\n selectedCascadeValues: null,\n operator: null,\n value: null,\n active: true,\n id: Date.now(),\n }\n}\n\nexport const capitalize = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport function parseNumber(value: string, type: TFilter.EControlType): number {\n const number = parseFloat(value.replace(\",\", \".\"))\n switch (type) {\n case TFilter.EControlType.FLOAT:\n return number.fixDecimals(3)\n case TFilter.EControlType.INTEGER:\n return number.roundToInteger()\n\n default:\n return number\n }\n}\n\nexport const appendValueToCurrentValueArray = (\n controlType: TFilter.EControlType,\n newValue: string | string[]\n): TFilter.Internal.Term.TermValue => {\n if (\n [TFilter.EControlType.STRING, TFilter.EControlType.ENUM, TFilter.EControlType.UUID].includes(\n controlType\n )\n ) {\n return newValue\n }\n\n if (Array.isArray(newValue)) {\n return newValue.map((v) => parseNumber(v, controlType))\n } else {\n return parseNumber(newValue, controlType)\n }\n}\nexport function parseString(input: string): string[] {\n const regex = /\"[^\"]+\"|[^:]+/g\n return input.match(regex)?.map((match) => match.replace(/\"/g, \"\")) || []\n}\nexport const emptyFilterDTO: TFilter.DTO.State = {\n operator: TFilter.DTO.Match.AND,\n fields: [],\n}\n\nexport const emptyFilterInternal: TFilter.Internal.State = {\n match: \"ALL\",\n terms: [],\n termsCollapsed: false,\n edited: false,\n}\n\nexport const emptyFilterDTOBase64 = \"eyJvcGVyYXRvciI6ImFuZCIsImZpZWxkcyI6W119\"\n\nexport const validateFilterDTO = (filterDTO: TFilter.DTO.State, config: TFilter.Config) => {\n const result = { ...filterDTO }\n const availableNames = config.reduce<string[]>((acc, curr) => [...acc, curr.name.value], [])\n\n result.fields = filterDTO.fields.reduce<TFilter.DTO.Field[]>((acc, curr) => {\n if (!availableNames.includes(curr.name)) return acc\n const availableOperators =\n config.find((c) => c.name.value === curr.name)?.operators.map((o) => o.value) || []\n\n if (!availableOperators.includes(curr.operator)) return acc\n\n return [...acc, curr]\n }, [])\n return result\n}\n"],"names":["TFilter","termMachine","term","termState","structuredClone","setActive","active","setInactive","setComplete","completed","setIncomplete","setAttribute","attribute","setSelectedCascadeValue","values","selectedCascadeValues","setAttributeValues","value","setOperator","operator","setValue","build","termsMachine","terms","termsState","setAllInactive","newTerms","map","removeAllIncompleted","filter","removeSpecificTerm","id","getSpecificTerm","find","getSpecificTermIndex","findIndex","t","updateSpecificTerm","update","termIndex","x","updateSpecificTermByIndex","index","pushNewTerm","createEmptyTerm","prepareValueDeletion","oldValue","valueToDelete","Array","isArray","length","getCascadeValuesForConfigitem","configItem","lastVal","foundVal","cascadeValues","config","found","v","options","prepareValueChange","currentValue","newValue","Date","now","capitalize","string","charAt","toUpperCase","slice","parseNumber","type","number","parseFloat","replace","EControlType","FLOAT","fixDecimals","INTEGER","roundToInteger","appendValueToCurrentValueArray","controlType","STRING","ENUM","UUID","includes","parseString","input","regex","match","emptyFilterDTO","DTO","Match","AND","fields","emptyFilterInternal","termsCollapsed","edited","emptyFilterDTOBase64","validateFilterDTO","filterDTO","result","availableNames","reduce","acc","curr","name","availableOperators","c","operators","o"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/components/Filter/utils/libs.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFilter } from \"./types\"\nimport { TValue } from \"../../Form\"\nimport { TCascadeOption } from \"../../Form/Select/Cascade/CascadeOption\"\n\n// This function accepts a term as an argument and implements the builder pattern to modify the given term.\n// It implements the usage a domain specific language for the term without having to adjust the individual properties of the term itself.\n// The machine will return an instance of termMachine. To receive the adjusted term, you need to call .build() at the end.\nexport const termMachine = (term: TFilter.Internal.Term.State) => {\n const termState = structuredClone(term)\n\n const setActive = () => {\n termState.active = true\n return termMachine(termState)\n }\n\n const setInactive = () => {\n termState.active = false\n return termMachine(termState)\n }\n\n const setComplete = () => {\n termState.completed = true\n return termMachine(termState)\n }\n\n const setIncomplete = () => {\n termState.completed = false\n return termMachine(termState)\n }\n\n const setAttribute = (attribute: TFilter.ConfigItem | null) => {\n termState.attribute = attribute\n return termMachine(termState)\n }\n\n const setSelectedCascadeValue = (values: TCascadeOption<TValue[]>[]) => {\n termState.selectedCascadeValues = values\n return termMachine(termState)\n }\n\n const setAttributeValues = (value: string[]) => {\n if (termState.attribute) termState.attribute.values = value\n return termMachine(termState)\n }\n\n const setOperator = (operator: TFilter.Operator | null) => {\n termState.operator = operator\n return termMachine(termState)\n }\n\n const setValue = (value: TFilter.Internal.Term.TermValue) => {\n termState.value = value\n return termMachine(termState)\n }\n\n const build = () => termState\n\n return {\n build,\n setIncomplete,\n setComplete,\n setActive,\n setInactive,\n setAttribute,\n setSelectedCascadeValue,\n setAttributeValues,\n setOperator,\n setValue,\n }\n}\n\n// This function accepts an array of terms as an argument and implements the builder pattern to modify the given terms.\n// It implements the usage a domain specific language for the terms without having to adjust the individual properties of the term itself.\n// The machine will return an instance of termsMachine. To receive the adjusted terms, you need to call .build() at the end.\nexport const termsMachine = (terms: TFilter.Internal.Term.State[]) => {\n const termsState = structuredClone(terms)\n\n const setAllInactive = () => {\n const newTerms = [...termsState].map((term) => termMachine(term).setInactive().build())\n return termsMachine(newTerms)\n }\n\n const removeAllIncompleted = () => {\n const newTerms = [...termsState].filter((term) => term.completed)\n return termsMachine(newTerms)\n }\n\n const removeSpecificTerm = (id: TFilter.Internal.Term.State[\"id\"]) => {\n const newTerms = [...termsState].filter((term) => term.id !== id)\n return termsMachine(newTerms)\n }\n\n const getSpecificTerm = (id: TFilter.Internal.Term.State[\"id\"]) => {\n return termsState.find((term) => term.id === id)\n }\n\n const getSpecificTermIndex = (id: TFilter.Internal.Term.State[\"id\"]) => {\n return termsState.findIndex((t) => t.id === id)\n }\n\n const updateSpecificTerm = (\n id: TFilter.Internal.Term.State[\"id\"],\n update: (term: TFilter.Internal.Term.State) => TFilter.Internal.Term.State\n ) => {\n const term = getSpecificTerm(id)\n if (!term) {\n return termsMachine(termsState)\n }\n const termIndex = termsState.findIndex((x) => x.id === id)\n termsState[termIndex] = update(term)\n return termsMachine(termsState)\n }\n\n const updateSpecificTermByIndex = (\n index: number,\n update: (term: TFilter.Internal.Term.State) => TFilter.Internal.Term.State\n ) => {\n const term = termsState[index]\n\n termsState[index] = update(term)\n return termsMachine(termsState)\n }\n\n const pushNewTerm = () => {\n const newTerms = [...termsState, createEmptyTerm()]\n return termsMachine(newTerms)\n }\n\n const build = () => termsState\n\n return {\n build,\n getSpecificTerm,\n removeAllIncompleted,\n updateSpecificTerm,\n setAllInactive,\n pushNewTerm,\n removeSpecificTerm,\n getSpecificTermIndex,\n updateSpecificTermByIndex,\n }\n}\n\nexport const prepareValueDeletion = (\n oldValue: TFilter.Internal.Term.TermValue,\n valueToDelete?: string\n) => {\n if (valueToDelete && Array.isArray(oldValue) && oldValue.length > 1)\n return oldValue.filter((value) => value !== valueToDelete)\n return null\n}\n\nexport const getCascadeValuesForConfigitem = (configItem: TFilter.ConfigItem, lastVal: TValue) => {\n let foundVal: TFilter.CascadeValue | undefined\n configItem?.cascadeValues?.find((config) => {\n const find = (\n values: TFilter.ConfigItem[\"cascadeValues\"]\n ): TFilter.CascadeValue | undefined => {\n const found: TFilter.CascadeValue | undefined = values?.find((v) => {\n const found = v.value === lastVal.value\n\n if (found) {\n foundVal = v\n return true\n }\n\n return find(v.options)\n })\n if (found) return found\n }\n if (config.value === lastVal.value) {\n foundVal = config\n return config\n }\n return find(config.options)\n })\n return foundVal\n}\n\nexport const prepareValueChange = (\n currentValue: TFilter.Internal.Term.TermValue,\n newValue: TFilter.Internal.Term.TermValue\n) => {\n if (Array.isArray(currentValue) && Array.isArray(newValue)) return newValue\n if (Array.isArray(newValue)) return [...newValue]\n return newValue\n}\n\nexport const createEmptyTerm = (): TFilter.Internal.Term.State => {\n return {\n completed: false,\n attribute: null,\n selectedCascadeValues: null,\n operator: null,\n value: null,\n active: true,\n id: Date.now(),\n }\n}\n\nexport const capitalize = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1)\n}\n\nexport function parseNumber(value: string, type: TFilter.EControlType): number {\n const number = parseFloat(value.replace(\",\", \".\"))\n switch (type) {\n case TFilter.EControlType.FLOAT:\n return number.fixDecimals(1)\n case TFilter.EControlType.INTEGER:\n return number.roundToInteger()\n\n default:\n return number\n }\n}\n\nexport const appendValueToCurrentValueArray = (\n controlType: TFilter.EControlType,\n newValue: string | string[]\n): TFilter.Internal.Term.TermValue => {\n if (\n [TFilter.EControlType.STRING, TFilter.EControlType.ENUM, TFilter.EControlType.UUID].includes(\n controlType\n )\n ) {\n return newValue\n }\n\n if (Array.isArray(newValue)) {\n return newValue.map((v) => parseNumber(v, controlType))\n } else {\n return parseNumber(newValue, controlType)\n }\n}\nexport function parseString(input: string): string[] {\n const regex = /\"[^\"]+\"|[^:]+/g\n return input.match(regex)?.map((match) => match.replace(/\"/g, \"\")) || []\n}\nexport const emptyFilterDTO: TFilter.DTO.State = {\n operator: TFilter.DTO.Match.AND,\n fields: [],\n}\n\nexport const emptyFilterInternal: TFilter.Internal.State = {\n match: \"ALL\",\n terms: [],\n termsCollapsed: false,\n edited: false,\n}\n\nexport const emptyFilterDTOBase64 = \"eyJvcGVyYXRvciI6ImFuZCIsImZpZWxkcyI6W119\"\n\nexport const validateFilterDTO = (filterDTO: TFilter.DTO.State, config: TFilter.Config) => {\n const result = { ...filterDTO }\n const availableNames = config.reduce<string[]>((acc, curr) => [...acc, curr.name.value], [])\n\n result.fields = filterDTO.fields.reduce<TFilter.DTO.Field[]>((acc, curr) => {\n if (!availableNames.includes(curr.name)) return acc\n const availableOperators =\n config.find((c) => c.name.value === curr.name)?.operators.map((o) => o.value) || []\n\n if (!availableOperators.includes(curr.operator)) return acc\n\n return [...acc, curr]\n }, [])\n return result\n}\n"],"names":["TFilter","termMachine","term","termState","structuredClone","setActive","active","setInactive","setComplete","completed","setIncomplete","setAttribute","attribute","setSelectedCascadeValue","values","selectedCascadeValues","setAttributeValues","value","setOperator","operator","setValue","build","termsMachine","terms","termsState","setAllInactive","newTerms","map","removeAllIncompleted","filter","removeSpecificTerm","id","getSpecificTerm","find","getSpecificTermIndex","findIndex","t","updateSpecificTerm","update","termIndex","x","updateSpecificTermByIndex","index","pushNewTerm","createEmptyTerm","prepareValueDeletion","oldValue","valueToDelete","Array","isArray","length","getCascadeValuesForConfigitem","configItem","lastVal","foundVal","cascadeValues","config","found","v","options","prepareValueChange","currentValue","newValue","Date","now","capitalize","string","charAt","toUpperCase","slice","parseNumber","type","number","parseFloat","replace","EControlType","FLOAT","fixDecimals","INTEGER","roundToInteger","appendValueToCurrentValueArray","controlType","STRING","ENUM","UUID","includes","parseString","input","regex","match","emptyFilterDTO","DTO","Match","AND","fields","emptyFilterInternal","termsCollapsed","edited","emptyFilterDTOBase64","validateFilterDTO","filterDTO","result","availableNames","reduce","acc","curr","name","availableOperators","c","operators","o"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _object_without_properties(source,excluded){if(source==null)return{};var target=_object_without_properties_loose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _object_without_properties_loose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import{jsx as _jsx}from"react/jsx-runtime";import React,{forwardRef}from"react";import{Switch}from"@mantine/core";import{useFormContext}from"../Form/Form";import{getDefaultFormStyles}from"../sharedStyles";import{useErrorContext}from"../Form";import{FormErrors}from"../Form/FormErrors";import{useController}from"react-hook-form";export const RawSwitch=forwardRef((_param,ref)=>{var{size="md"}=_param,props=_object_without_properties(_param,["size"]);const classes=getDefaultFormStyles();return _jsx(Switch,_object_spread_props(_object_spread({ref:ref},props),{size:size,classNames:_object_spread({root:classes.root,label:classes.label,input:classes.input,error:classes.error},props.classNames)}))});RawSwitch.displayName="RawSwitch";export const FormSwitch=_param=>{var{name,validation={}}=_param,props=_object_without_properties(_param,["name","validation"]);const{control}=useFormContext();const errorContext=useErrorContext();const{field:{value=false,onChange,ref},fieldState:{error}}=useController({name,control,rules:{validate:validation}});const fetchError=errorContext.errors[name];const isString=val=>typeof val==="string";const errors=[error===null||error===void 0?void 0:error.message,fetchError].flat().filter(isString);return _jsx(RawSwitch,_object_spread_props(_object_spread({},props),{ref:ref,checked:value,onChange:event=>onChange(event.currentTarget.checked),error:errors.length>0&&_jsx(FormErrors,{errors:errors})}))};
2
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/components/Form/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\"\nimport { Switch, SwitchProps } from \"@mantine/core\"\nimport { useFormContext } from \"../Form/Form\"\nimport { getDefaultFormStyles } from \"../sharedStyles\"\nimport { useErrorContext } from \"../Form\"\nimport { FormErrors } from \"../Form/FormErrors\"\nimport { TFormControl } from \"../Form\"\nimport { useController } from \"react-hook-form\"\n\n/**\n * Raw Switch input that applies shared form styling.\n */\nexport const RawSwitch = forwardRef<HTMLInputElement, SwitchProps>(\n ({ size = \"md\", ...props }, ref) => {\n const classes = getDefaultFormStyles()\n\n return (\n <Switch\n ref={ref}\n {...props}\n size={size}\n classNames={{\n root: classes.root,\n label: classes.label,\n input: classes.input,\n error: classes.error,\n ...props.classNames,\n }}\n />\n )\n }\n)\n\nRawSwitch.displayName = \"RawSwitch\"\n\n/**\n * Form-connected Switch using Mantine's Switch, integrated with validation and error context.\n */\nexport const FormSwitch: React.FC<SwitchProps & TFormControl<HTMLInputElement>> = ({\n name,\n validation = {},\n ...props\n}) => {\n const { control } = useFormContext()\n const errorContext = useErrorContext()\n\n const {\n field: { value = false, onChange, ref },\n fieldState: { error },\n } = useController({\n name,\n control,\n rules: { validate: validation },\n })\n\n const fetchError = errorContext.errors[name]\n const isString = (val: unknown): val is string => typeof val === \"string\"\n const errors = [error?.message, fetchError].flat().filter(isString)\n\n return (\n <RawSwitch\n {...props}\n ref={ref}\n checked={value}\n onChange={(event) => onChange(event.currentTarget.checked)}\n error={errors.length > 0 && <FormErrors errors={errors} />}\n />\n )\n}\n"],"names":["React","forwardRef","Switch","useFormContext","getDefaultFormStyles","useErrorContext","FormErrors","useController","RawSwitch","ref","size","props","classes","classNames","root","label","input","error","displayName","FormSwitch","name","validation","control","errorContext","field","value","onChange","fieldState","rules","validate","fetchError","errors","isString","val","message","flat","filter","checked","event","currentTarget","length"],"mappings":"69DAAA,QAAOA,OAASC,UAAU,KAAQ,OAAO,AACzC,QAASC,MAAM,KAAqB,eAAe,AACnD,QAASC,cAAc,KAAQ,cAAc,AAC7C,QAASC,oBAAoB,KAAQ,iBAAiB,AACtD,QAASC,eAAe,KAAQ,SAAS,AACzC,QAASC,UAAU,KAAQ,oBAAoB,AAE/C,QAASC,aAAa,KAAQ,iBAAiB,AAK/C,QAAO,MAAMC,UAAYP,WACvB,QAA4BQ,UAA3B,CAAEC,KAAO,IAAI,CAAY,QAAPC,yCAAhBD,SACD,MAAME,QAAUR,uBAEhB,OACE,KAACF,4CACCO,IAAKA,KACDE,QACJD,KAAMA,KACNG,WAAY,gBACVC,KAAMF,QAAQE,IAAI,CAClBC,MAAOH,QAAQG,KAAK,CACpBC,MAAOJ,QAAQI,KAAK,CACpBC,MAAOL,QAAQK,KAAK,EACjBN,MAAME,UAAU,IAI3B,EACD,AAEDL,CAAAA,UAAUU,WAAW,CAAG,WAKxB,QAAO,MAAMC,WAAqE,YAAC,CACjFC,IAAI,CACJC,WAAa,CAAC,CAAC,CAEhB,QADIV,yCAFHS,OACAC,eAGA,KAAM,CAAEC,OAAO,CAAE,CAAGnB,iBACpB,MAAMoB,aAAelB,kBAErB,KAAM,CACJmB,MAAO,CAAEC,MAAQ,KAAK,CAAEC,QAAQ,CAAEjB,GAAG,CAAE,CACvCkB,WAAY,CAAEV,KAAK,CAAE,CACtB,CAAGV,cAAc,CAChBa,KACAE,QACAM,MAAO,CAAEC,SAAUR,UAAW,CAChC,GAEA,MAAMS,WAAaP,aAAaQ,MAAM,CAACX,KAAK,CAC5C,MAAMY,SAAW,AAACC,KAAgC,OAAOA,MAAQ,SACjE,MAAMF,OAAS,CAACd,cAAAA,sBAAAA,MAAOiB,OAAO,CAAEJ,WAAW,CAACK,IAAI,GAAGC,MAAM,CAACJ,UAE1D,OACE,KAACxB,iDACKG,QACJF,IAAKA,IACL4B,QAASZ,MACTC,SAAU,AAACY,OAAUZ,SAASY,MAAMC,aAAa,CAACF,OAAO,EACzDpB,MAAOc,OAAOS,MAAM,CAAG,GAAK,KAAClC,YAAWyB,OAAQA,WAGtD,CAAC"}
@@ -1,2 +1,2 @@
1
- export*from"./Button";export*from"./Form";export*from"./Input/Input";export*from"./Checkbox/Checkbox";export*from"./PasswordInput/PasswordInput";export*from"./Labels";export*from"./RadioButton/RadioButton";export*from"./Textarea/Textarea";export*from"./FileInput/FileInput";export*from"./DateTimePicker";export*from"./Select";export*from"./FormItemGroup";export*from"./MenuButton";
1
+ export*from"./Button";export*from"./Form";export*from"./Input/Input";export*from"./Checkbox/Checkbox";export*from"./PasswordInput/PasswordInput";export*from"./Labels";export*from"./RadioButton/RadioButton";export*from"./Textarea/Textarea";export*from"./FileInput/FileInput";export*from"./DateTimePicker";export*from"./Select";export*from"./FormItemGroup";export*from"./MenuButton";export*from"./Switch/Switch";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Form/index.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport * from \"./Button\"\nexport * from \"./Form\"\nexport * from \"./Input/Input\"\nexport * from \"./Checkbox/Checkbox\"\nexport * from \"./PasswordInput/PasswordInput\"\nexport * from \"./Labels\"\nexport * from \"./RadioButton/RadioButton\"\nexport * from \"./Textarea/Textarea\"\nexport * from \"./FileInput/FileInput\"\nexport * from \"./DateTimePicker\"\nexport * from \"./Select\"\nexport * from \"./FormItemGroup\"\nexport * from \"./MenuButton\"\n"],"names":[],"mappings":"AAIA,WAAc,UAAU,AACxB,YAAc,QAAQ,AACtB,YAAc,eAAe,AAC7B,YAAc,qBAAqB,AACnC,YAAc,+BAA+B,AAC7C,YAAc,UAAU,AACxB,YAAc,2BAA2B,AACzC,YAAc,qBAAqB,AACnC,YAAc,uBAAuB,AACrC,YAAc,kBAAkB,AAChC,YAAc,UAAU,AACxB,YAAc,iBAAiB,AAC/B,YAAc,cAAc"}
1
+ {"version":3,"sources":["../../../../src/components/Form/index.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport * from \"./Button\"\nexport * from \"./Form\"\nexport * from \"./Input/Input\"\nexport * from \"./Checkbox/Checkbox\"\nexport * from \"./PasswordInput/PasswordInput\"\nexport * from \"./Labels\"\nexport * from \"./RadioButton/RadioButton\"\nexport * from \"./Textarea/Textarea\"\nexport * from \"./FileInput/FileInput\"\nexport * from \"./DateTimePicker\"\nexport * from \"./Select\"\nexport * from \"./FormItemGroup\"\nexport * from \"./MenuButton\"\nexport * from \"./Switch/Switch\"\n"],"names":[],"mappings":"AAIA,WAAc,UAAU,AACxB,YAAc,QAAQ,AACtB,YAAc,eAAe,AAC7B,YAAc,qBAAqB,AACnC,YAAc,+BAA+B,AAC7C,YAAc,UAAU,AACxB,YAAc,2BAA2B,AACzC,YAAc,qBAAqB,AACnC,YAAc,uBAAuB,AACrC,YAAc,kBAAkB,AAChC,YAAc,UAAU,AACxB,YAAc,iBAAiB,AAC/B,YAAc,cAAc,AAC5B,YAAc,iBAAiB"}
@@ -0,0 +1,2 @@
1
+ import{ESideNavEnum}from"../../AppNavigation";export const getHeaderConfig=menuSections=>{const firstMenuSection=menuSections===null||menuSections===void 0?void 0:menuSections.split(",")[0];let logoLink,manualLink,mainProduct;if(firstMenuSection===ESideNavEnum.VI){logoLink="/vulnerability-intelligence/";manualLink="ManualLinkVI";mainProduct=ESideNavEnum.VI}else if(firstMenuSection===ESideNavEnum.ASSET){logoLink="/asset-management/";manualLink="ManualLinkAsset";mainProduct=ESideNavEnum.ASSET}else if(firstMenuSection===ESideNavEnum.SYSTEM){logoLink="/system-management/";manualLink=undefined;mainProduct=ESideNavEnum.SYSTEM}else{logoLink="/";manualLink=undefined;mainProduct=undefined}return{logoLink,mainProduct,manualLink}};
2
+ //# sourceMappingURL=getHeaderConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppHeader/headerConfig/getHeaderConfig.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { ESideNavEnum } from \"../../AppNavigation\"\n\nexport const getHeaderConfig = (menuSections?: string) => {\n const firstMenuSection = menuSections?.split(\",\")[0]\n let logoLink, manualLink, mainProduct\n\n if (firstMenuSection === ESideNavEnum.VI) {\n logoLink = \"/vulnerability-intelligence/\"\n manualLink = \"ManualLinkVI\"\n mainProduct = ESideNavEnum.VI\n } else if (firstMenuSection === ESideNavEnum.ASSET) {\n logoLink = \"/asset-management/\"\n manualLink = \"ManualLinkAsset\"\n mainProduct = ESideNavEnum.ASSET\n } else if (firstMenuSection === ESideNavEnum.SYSTEM) {\n logoLink = \"/system-management/\"\n manualLink = undefined\n mainProduct = ESideNavEnum.SYSTEM\n } else {\n logoLink = \"/\"\n manualLink = undefined\n mainProduct = undefined\n }\n\n return {\n logoLink,\n mainProduct,\n manualLink,\n }\n}\n"],"names":["ESideNavEnum","getHeaderConfig","menuSections","firstMenuSection","split","logoLink","manualLink","mainProduct","VI","ASSET","SYSTEM","undefined"],"mappings":"AAIA,OAASA,YAAY,KAAQ,qBAAqB,AAElD,QAAO,MAAMC,gBAAkB,AAACC,eAC9B,MAAMC,iBAAmBD,qBAAAA,6BAAAA,aAAcE,KAAK,CAAC,IAAI,CAAC,EAAE,CACpD,IAAIC,SAAUC,WAAYC,YAE1B,GAAIJ,mBAAqBH,aAAaQ,EAAE,CAAE,CACxCH,SAAW,+BACXC,WAAa,eACbC,YAAcP,aAAaQ,EAAE,AAC/B,MAAO,GAAIL,mBAAqBH,aAAaS,KAAK,CAAE,CAClDJ,SAAW,qBACXC,WAAa,kBACbC,YAAcP,aAAaS,KAAK,AAClC,MAAO,GAAIN,mBAAqBH,aAAaU,MAAM,CAAE,CACnDL,SAAW,sBACXC,WAAaK,UACbJ,YAAcP,aAAaU,MAAM,AACnC,KAAO,CACLL,SAAW,IACXC,WAAaK,UACbJ,YAAcI,SAChB,CAEA,MAAO,CACLN,SACAE,YACAD,UACF,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- export*from"./themeSwitch/ThemeSwitch";export*from"./languageSwitch/LanguageSwitch";export*from"./userNav/UserNav";export*from"./types";export*from"./AppHeader";
1
+ export*from"./themeSwitch/ThemeSwitch";export*from"./languageSwitch/LanguageSwitch";export*from"./userNav/UserNav";export*from"./types";export*from"./AppHeader";export*from"./headerConfig/getHeaderConfig";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/index.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport * from \"./themeSwitch/ThemeSwitch\"\nexport * from \"./languageSwitch/LanguageSwitch\"\nexport * from \"./userNav/UserNav\"\nexport * from \"./types\"\nexport * from \"./AppHeader\"\n"],"names":[],"mappings":"AAIA,WAAc,2BAA2B,AACzC,YAAc,iCAAiC,AAC/C,YAAc,mBAAmB,AACjC,YAAc,SAAS,AACvB,YAAc,aAAa"}
1
+ {"version":3,"sources":["../../../../../src/components/Layout/AppHeader/index.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport * from \"./themeSwitch/ThemeSwitch\"\nexport * from \"./languageSwitch/LanguageSwitch\"\nexport * from \"./userNav/UserNav\"\nexport * from \"./types\"\nexport * from \"./AppHeader\"\nexport * from \"./headerConfig/getHeaderConfig\"\n"],"names":[],"mappings":"AAIA,WAAc,2BAA2B,AACzC,YAAc,iCAAiC,AAC/C,YAAc,mBAAmB,AACjC,YAAc,SAAS,AACvB,YAAc,aAAa,AAC3B,YAAc,gCAAgC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/UrlProvider.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain } from \"../NavigationLink\"\nimport { getBaseUrl } from \"../NavigationLink/getBaseUrl\"\nimport urlcat from \"urlcat\"\n\nconst AssetUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.Asset\n return {\n Vulnerabilities: new UrlParcel(currentDomain, domain, () => \"/vulnerabilities\"),\n VulnerabilityDetail: new UrlParcel(\n currentDomain,\n domain,\n (args: { id: string }) => \"/vulnerabilities/\" + args.id\n ),\n AffectedAssetsPage: new UrlParcel(\n currentDomain,\n domain,\n (args: { vulnerabilityId: string }) => \"/vulnerabilities/\" + args.vulnerabilityId + \"/assets\"\n ),\n Debug: new UrlParcel(currentDomain, domain, () => \"/debug\"),\n Appliances: new UrlParcel(currentDomain, domain, () => \"/appliances\"),\n AssetInventory: new UrlParcel(currentDomain, domain, () => \"/asset-inventory\"),\n Dashboard: new UrlParcel(currentDomain, domain, () => \"/dashboard\"),\n }\n}\nconst UserUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.User\n return {\n // Append your urls here\n Security: new UrlParcel(currentDomain, domain, () => \"/security\"),\n }\n}\nconst ScanUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.Scan\n return {\n // Append your urls here\n Tasks: new UrlParcel(currentDomain, domain, () => \"/tasks\"),\n }\n}\n\nexport class UrlProvider {\n get pathRoot(): string {\n return this._pathRoot\n }\n\n private currentDomain: Domain\n private _pathRoot: string\n public Asset: ReturnType<typeof AssetUrlProvider>\n public User: ReturnType<typeof UserUrlProvider>\n public Scan: ReturnType<typeof ScanUrlProvider>\n\n constructor(domain: Domain) {\n this.currentDomain = domain\n this._pathRoot = getBaseUrl(domain)\n // initializing the providers with the given domain\n this.Asset = AssetUrlProvider(this[\"currentDomain\"])\n this.User = UserUrlProvider(this[\"currentDomain\"])\n this.Scan = ScanUrlProvider(this[\"currentDomain\"])\n }\n}\n\nexport class UrlParcel<Arg = void> {\n get currentDomain(): Domain {\n return this._currentDomain\n }\n private path: (args: Arg) => string\n private _currentDomain: Domain\n private targetDomain: Domain\n private external: boolean\n constructor(currentDomain: Domain, targetDomain: Domain, path: (args: Arg) => string) {\n this.path = path\n this._currentDomain = currentDomain\n this.targetDomain = targetDomain\n this.external = currentDomain !== targetDomain\n }\n\n // Add functions here if you need extra functionality\n\n public get isExternal() {\n return this.external\n }\n\n private getAbsolut(args: Arg) {\n const targetDomainPath = getBaseUrl(this.targetDomain)\n return urlcat(targetDomainPath, this.path(args))\n }\n private getRelative(args: Arg) {\n return this.path(args)\n }\n\n public getPath(args: Arg) {\n return this.external ? this.getAbsolut(args) : this.getRelative(args)\n }\n}\n"],"names":["Domain","getBaseUrl","urlcat","AssetUrlProvider","currentDomain","domain","Asset","Vulnerabilities","UrlParcel","VulnerabilityDetail","args","id","AffectedAssetsPage","vulnerabilityId","Debug","Appliances","AssetInventory","Dashboard","UserUrlProvider","User","Security","ScanUrlProvider","Scan","Tasks","UrlProvider","pathRoot","_pathRoot","constructor","_currentDomain","isExternal","external","getAbsolut","targetDomainPath","targetDomain","path","getRelative","getPath"],"mappings":"oLAIA,OAASA,MAAM,KAAQ,mBAAmB,AAC1C,QAASC,UAAU,KAAQ,8BAA8B,AACzD,QAAOC,WAAY,QAAQ,CAE3B,MAAMC,iBAAmB,AAACC,gBACxB,MAAMC,OAASL,OAAOM,KAAK,CAC3B,MAAO,CACLC,gBAAiB,IAAIC,UAAUJ,cAAeC,OAAQ,IAAM,oBAC5DI,oBAAqB,IAAID,UACvBJ,cACAC,OACA,AAACK,MAAyB,oBAAsBA,KAAKC,EAAE,EAEzDC,mBAAoB,IAAIJ,UACtBJ,cACAC,OACA,AAACK,MAAsC,oBAAsBA,KAAKG,eAAe,CAAG,WAEtFC,MAAO,IAAIN,UAAUJ,cAAeC,OAAQ,IAAM,UAClDU,WAAY,IAAIP,UAAUJ,cAAeC,OAAQ,IAAM,eACvDW,eAAgB,IAAIR,UAAUJ,cAAeC,OAAQ,IAAM,oBAC3DY,UAAW,IAAIT,UAAUJ,cAAeC,OAAQ,IAAM,aACxD,CACF,EACA,MAAMa,gBAAkB,AAACd,gBACvB,MAAMC,OAASL,OAAOmB,IAAI,CAC1B,MAAO,CAELC,SAAU,IAAIZ,UAAUJ,cAAeC,OAAQ,IAAM,YACvD,CACF,EACA,MAAMgB,gBAAkB,AAACjB,gBACvB,MAAMC,OAASL,OAAOsB,IAAI,CAC1B,MAAO,CAELC,MAAO,IAAIf,UAAUJ,cAAeC,OAAQ,IAAM,SACpD,CACF,CAEA,QAAO,MAAMmB,YACX,IAAIC,UAAmB,CACrB,OAAO,IAAI,CAACC,SAAS,AACvB,CAQAC,YAAYtB,MAAc,CAAE,CAN5B,sBAAQD,gBAAR,KAAA,GACA,sBAAQsB,YAAR,KAAA,GACA,sBAAOpB,QAAP,KAAA,GACA,sBAAOa,OAAP,KAAA,GACA,sBAAOG,OAAP,KAAA,EAGE,CAAA,IAAI,CAAClB,aAAa,CAAGC,MACrB,CAAA,IAAI,CAACqB,SAAS,CAAGzB,WAAWI,OAE5B,CAAA,IAAI,CAACC,KAAK,CAAGH,iBAAiB,IAAI,CAAC,gBAAgB,CACnD,CAAA,IAAI,CAACgB,IAAI,CAAGD,gBAAgB,IAAI,CAAC,gBAAgB,CACjD,CAAA,IAAI,CAACI,IAAI,CAAGD,gBAAgB,IAAI,CAAC,gBAAgB,CACnD,CACF,CAEA,OAAO,MAAMb,UACX,IAAIJ,eAAwB,CAC1B,OAAO,IAAI,CAACwB,cAAc,AAC5B,CAcA,IAAWC,YAAa,CACtB,OAAO,IAAI,CAACC,QAAQ,AACtB,CAEA,AAAQC,WAAWrB,IAAS,CAAE,CAC5B,MAAMsB,iBAAmB/B,WAAW,IAAI,CAACgC,YAAY,EACrD,OAAO/B,OAAO8B,iBAAkB,IAAI,CAACE,IAAI,CAACxB,MAC5C,CACA,AAAQyB,YAAYzB,IAAS,CAAE,CAC7B,OAAO,IAAI,CAACwB,IAAI,CAACxB,KACnB,CAEA,AAAO0B,QAAQ1B,IAAS,CAAE,CACxB,OAAO,IAAI,CAACoB,QAAQ,CAAG,IAAI,CAACC,UAAU,CAACrB,MAAQ,IAAI,CAACyB,WAAW,CAACzB,KAClE,CAvBAiB,YAAYvB,aAAqB,CAAE6B,YAAoB,CAAEC,IAA2B,CAAE,CAJtF,sBAAQA,OAAR,KAAA,GACA,sBAAQN,iBAAR,KAAA,GACA,sBAAQK,eAAR,KAAA,GACA,sBAAQH,WAAR,KAAA,EAEE,CAAA,IAAI,CAACI,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACN,cAAc,CAAGxB,aACtB,CAAA,IAAI,CAAC6B,YAAY,CAAGA,YACpB,CAAA,IAAI,CAACH,QAAQ,CAAG1B,gBAAkB6B,YACpC,CAmBF"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/UrlProvider.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain } from \"../NavigationLink\"\nimport { getBaseUrl } from \"../NavigationLink/getBaseUrl\"\nimport urlcat from \"urlcat\"\n\nconst AssetUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.Asset\n return {\n Vulnerabilities: new UrlParcel(currentDomain, domain, () => \"/vulnerabilities\"),\n VulnerabilityDetail: new UrlParcel(\n currentDomain,\n domain,\n (args: { id: string }) => \"/vulnerabilities/\" + args.id\n ),\n AffectedAssetsPage: new UrlParcel(\n currentDomain,\n domain,\n (args: { vulnerabilityId: string }) => \"/vulnerabilities/\" + args.vulnerabilityId + \"/assets\"\n ),\n Debug: new UrlParcel(currentDomain, domain, () => \"/debug\"),\n Appliances: new UrlParcel(currentDomain, domain, () => \"/appliances\"),\n AssetInventory: new UrlParcel(currentDomain, domain, () => \"/asset-inventory\"),\n Dashboard: new UrlParcel(currentDomain, domain, () => \"/dashboard\"),\n }\n}\nconst UserUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.User\n return {\n // Append your urls here\n Security: new UrlParcel(currentDomain, domain, () => \"/security\"),\n }\n}\nconst ScanUrlProvider = (currentDomain: Domain) => {\n const domain = Domain.Scan\n return {\n // Append your urls here\n Tasks: new UrlParcel(currentDomain, domain, () => \"/tasks\"),\n }\n}\n\nexport class UrlProvider {\n get pathRoot(): string {\n return this._pathRoot\n }\n\n private currentDomain: Domain\n private _pathRoot: string\n public Asset: ReturnType<typeof AssetUrlProvider>\n public User: ReturnType<typeof UserUrlProvider>\n public Scan: ReturnType<typeof ScanUrlProvider>\n\n constructor(domain: Domain) {\n this.currentDomain = domain\n this._pathRoot = getBaseUrl(domain)\n // initializing the providers with the given domain\n this.Asset = AssetUrlProvider(this[\"currentDomain\"])\n this.User = UserUrlProvider(this[\"currentDomain\"])\n this.Scan = ScanUrlProvider(this[\"currentDomain\"])\n }\n}\n\nexport class UrlParcel<Arg = void> {\n get currentDomain(): Domain {\n return this._currentDomain\n }\n private path: (args: Arg) => string\n private _currentDomain: Domain\n private targetDomain: Domain\n private external: boolean\n constructor(currentDomain: Domain, targetDomain: Domain, path: (args: Arg) => string) {\n this.path = path\n this._currentDomain = currentDomain\n this.targetDomain = targetDomain\n this.external = currentDomain !== targetDomain\n }\n\n // Add functions here if you need extra functionality\n\n public get isExternal() {\n return this.external\n }\n\n private getAbsolut(args: Arg) {\n const targetDomainPath = getBaseUrl(this.targetDomain)\n return urlcat(targetDomainPath, this.path(args))\n }\n private getRelative(args: Arg) {\n return this.path(args)\n }\n\n public getPath(args: Arg) {\n return this.external ? this.getAbsolut(args) : this.getRelative(args)\n }\n}\n"],"names":["Domain","getBaseUrl","urlcat","AssetUrlProvider","currentDomain","domain","Asset","Vulnerabilities","UrlParcel","VulnerabilityDetail","args","id","AffectedAssetsPage","vulnerabilityId","Debug","Appliances","AssetInventory","Dashboard","UserUrlProvider","User","Security","ScanUrlProvider","Scan","Tasks","UrlProvider","pathRoot","_pathRoot","_currentDomain","isExternal","external","getAbsolut","targetDomainPath","targetDomain","path","getRelative","getPath"],"mappings":"oLAIA,OAASA,MAAM,KAAQ,mBAAmB,AAC1C,QAASC,UAAU,KAAQ,8BAA8B,AACzD,QAAOC,WAAY,QAAQ,CAE3B,MAAMC,iBAAmB,AAACC,gBACxB,MAAMC,OAASL,OAAOM,KAAK,CAC3B,MAAO,CACLC,gBAAiB,IAAIC,UAAUJ,cAAeC,OAAQ,IAAM,oBAC5DI,oBAAqB,IAAID,UACvBJ,cACAC,OACA,AAACK,MAAyB,oBAAsBA,KAAKC,EAAE,EAEzDC,mBAAoB,IAAIJ,UACtBJ,cACAC,OACA,AAACK,MAAsC,oBAAsBA,KAAKG,eAAe,CAAG,WAEtFC,MAAO,IAAIN,UAAUJ,cAAeC,OAAQ,IAAM,UAClDU,WAAY,IAAIP,UAAUJ,cAAeC,OAAQ,IAAM,eACvDW,eAAgB,IAAIR,UAAUJ,cAAeC,OAAQ,IAAM,oBAC3DY,UAAW,IAAIT,UAAUJ,cAAeC,OAAQ,IAAM,aACxD,CACF,EACA,MAAMa,gBAAkB,AAACd,gBACvB,MAAMC,OAASL,OAAOmB,IAAI,CAC1B,MAAO,CAELC,SAAU,IAAIZ,UAAUJ,cAAeC,OAAQ,IAAM,YACvD,CACF,EACA,MAAMgB,gBAAkB,AAACjB,gBACvB,MAAMC,OAASL,OAAOsB,IAAI,CAC1B,MAAO,CAELC,MAAO,IAAIf,UAAUJ,cAAeC,OAAQ,IAAM,SACpD,CACF,CAEA,QAAO,MAAMmB,YACX,IAAIC,UAAmB,CACrB,OAAO,IAAI,CAACC,SAAS,AACvB,CAQA,YAAYrB,MAAc,CAAE,CAN5B,sBAAQD,gBAAR,KAAA,GACA,sBAAQsB,YAAR,KAAA,GACA,sBAAOpB,QAAP,KAAA,GACA,sBAAOa,OAAP,KAAA,GACA,sBAAOG,OAAP,KAAA,EAGE,CAAA,IAAI,CAAClB,aAAa,CAAGC,MACrB,CAAA,IAAI,CAACqB,SAAS,CAAGzB,WAAWI,OAE5B,CAAA,IAAI,CAACC,KAAK,CAAGH,iBAAiB,IAAI,CAAC,gBAAgB,CACnD,CAAA,IAAI,CAACgB,IAAI,CAAGD,gBAAgB,IAAI,CAAC,gBAAgB,CACjD,CAAA,IAAI,CAACI,IAAI,CAAGD,gBAAgB,IAAI,CAAC,gBAAgB,CACnD,CACF,CAEA,OAAO,MAAMb,UACX,IAAIJ,eAAwB,CAC1B,OAAO,IAAI,CAACuB,cAAc,AAC5B,CAcA,IAAWC,YAAa,CACtB,OAAO,IAAI,CAACC,QAAQ,AACtB,CAEA,AAAQC,WAAWpB,IAAS,CAAE,CAC5B,MAAMqB,iBAAmB9B,WAAW,IAAI,CAAC+B,YAAY,EACrD,OAAO9B,OAAO6B,iBAAkB,IAAI,CAACE,IAAI,CAACvB,MAC5C,CACA,AAAQwB,YAAYxB,IAAS,CAAE,CAC7B,OAAO,IAAI,CAACuB,IAAI,CAACvB,KACnB,CAEA,AAAOyB,QAAQzB,IAAS,CAAE,CACxB,OAAO,IAAI,CAACmB,QAAQ,CAAG,IAAI,CAACC,UAAU,CAACpB,MAAQ,IAAI,CAACwB,WAAW,CAACxB,KAClE,CAvBA,YAAYN,aAAqB,CAAE4B,YAAoB,CAAEC,IAA2B,CAAE,CAJtF,sBAAQA,OAAR,KAAA,GACA,sBAAQN,iBAAR,KAAA,GACA,sBAAQK,eAAR,KAAA,GACA,sBAAQH,WAAR,KAAA,EAEE,CAAA,IAAI,CAACI,IAAI,CAAGA,IACZ,CAAA,IAAI,CAACN,cAAc,CAAGvB,aACtB,CAAA,IAAI,CAAC4B,YAAY,CAAGA,YACpB,CAAA,IAAI,CAACH,QAAQ,CAAGzB,gBAAkB4B,YACpC,CAmBF"}
@@ -1,2 +1,2 @@
1
- import{ESideNavEnum}from"../NavigationLink";import{buildUrl}from"../NavigationLink/buildUrl";import{isActive}from"../NavigationLink/isActive";import{useTranslation}from"react-i18next";import{getAssetDomainMenuItems,getNotificationsDomainMenuItems,getScanDomainMenuItems,getSystemManagementDomainMenuItems,getUserDomainMenuItems,getVIDomainMenuItemsVulnerabilityIntel}from"./menuItems";import{useMantineTheme}from"@mantine/core";export const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav})=>{const fullTargetUrl=to?buildUrl(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?isActive(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?buildUrl(sn.owner,requester,sn.to):"",active:sn.to?isActive(currentPath,sn.to):false,isExternal:sn.owner!==requester})):undefined}};export const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};export const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case ESideNavEnum.VI:return getVIDomainMenuItemsVulnerabilityIntel(factory,t,theme);case ESideNavEnum.ASSET:return getAssetDomainMenuItems(factory,t,theme);case ESideNavEnum.SCAN:return getScanDomainMenuItems(factory,t,theme);case ESideNavEnum.USER:return getUserDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SYSTEM:return getSystemManagementDomainMenuItems(factory,t,theme);case ESideNavEnum.NOTIFICATIONS:return getNotificationsDomainMenuItems(factory,t,theme);default:return[]}};export const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=useTranslation();const theme=useMantineTheme();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};export const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
1
+ import{ESideNavEnum}from"../NavigationLink";import{buildUrl}from"../NavigationLink/buildUrl";import{isActive}from"../NavigationLink/isActive";import{useTranslation}from"react-i18next";import{getAssetDomainMenuItems,getNotificationsDomainMenuItems,getScanDomainMenuItems,getSystemManagementDomainMenuItems,getUserDomainMenuItems,getVIDomainMenuItemsVulnerabilityIntel}from"./menuItems";import{useMantineTheme}from"@mantine/core";export const NavLinkConfigFactory=(currentPath,requester)=>({icon,label,to,owner,subNav})=>{const fullTargetUrl=to?buildUrl(owner,requester,to):"";const defaultOpened=!!(subNav===null||subNav===void 0?void 0:subNav.find(sn=>sn.to===currentPath));return{isPathMatch:currentPath.endsWith(fullTargetUrl),active:to?isActive(currentPath,fullTargetUrl):false,icon:icon,isExternal:owner!==requester,label:label,to:fullTargetUrl,defaultOpened:defaultOpened,subNav:subNav?subNav.map(sn=>({isPathMatch:currentPath.endsWith(sn.to||""),label:sn.label,to:sn.to?buildUrl(sn.owner,requester,sn.to):"",active:sn.to?isActive(currentPath,sn.to):false,isExternal:sn.owner!==requester})):undefined}};export const useBuildUseNavigationMenuPoints=({requestingDomain,menuPointsCategories,currentLocation,additional,realmAccessRoles})=>{const factory=NavLinkConfigFactory(currentLocation,requestingDomain);const menuPoints=useMenuItemStringsToNavigationMenuItemPoints(menuPointsCategories,factory,realmAccessRoles);if(additional)menuPoints.push(additional.map(factory));return menuPoints};export const getMenuItemFromString=(menuItem,factory,t,theme,realmAccessRoles)=>{switch(menuItem){case ESideNavEnum.VI:return getVIDomainMenuItemsVulnerabilityIntel(factory,t,theme);case ESideNavEnum.ASSET:return getAssetDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SCAN:return getScanDomainMenuItems(factory,t,theme);case ESideNavEnum.USER:return getUserDomainMenuItems(factory,t,theme,realmAccessRoles);case ESideNavEnum.SYSTEM:return getSystemManagementDomainMenuItems(factory,t,theme);case ESideNavEnum.NOTIFICATIONS:return getNotificationsDomainMenuItems(factory,t,theme);default:return[]}};export const useMenuItemStringsToNavigationMenuItemPoints=(menuItems,factory,realmAccessRoles)=>{const{t}=useTranslation();const theme=useMantineTheme();return menuItems.flatMap(item=>getMenuItemFromString(item,factory,t,theme,realmAccessRoles))};export const parseMenuEnvString=(envString,separator=",")=>envString.split(separator);
2
2
  //# sourceMappingURL=menuFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["ESideNavEnum","buildUrl","isActive","useTranslation","getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","useMantineTheme","NavLinkConfigFactory","currentPath","requester","icon","label","to","owner","subNav","fullTargetUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isExternal","map","undefined","useBuildUseNavigationMenuPoints","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","useMenuItemStringsToNavigationMenuItemPoints","push","getMenuItemFromString","menuItem","t","theme","VI","ASSET","SCAN","USER","SYSTEM","NOTIFICATIONS","menuItems","flatMap","item","parseMenuEnvString","envString","separator","split"],"mappings":"AAIA,OAAiBA,YAAY,KAAQ,mBAAmB,AACxD,QAASC,QAAQ,KAAQ,4BAA4B,AACrD,QAASC,QAAQ,KAAQ,4BAA4B,AAErD,QAASC,cAAc,KAAQ,eAAe,AAC9C,QACEC,uBAAuB,CACvBC,+BAA+B,CAC/BC,sBAAsB,CACtBC,kCAAkC,CAClCC,sBAAsB,CACtBC,sCAAsC,KAEjC,aAAa,AAEpB,QAAuBC,eAAe,KAAQ,eAAe,AAE7D,QAAO,MAAMC,qBACX,CAACC,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAuB,IACtD,MAAMC,cAAgBH,GAAKf,SAASgB,MAAOJ,UAAWG,IAAM,GAC5D,MAAMI,cAAgB,CAAC,EAACF,eAAAA,uBAAAA,OAAQG,IAAI,CAAC,AAACC,IAAOA,GAAGN,EAAE,GAAKJ,cAEvD,MAAO,CACLW,YAAaX,YAAYY,QAAQ,CAACL,eAClCM,OAAQT,GAAKd,SAASU,YAAaO,eAAiB,MACpDL,KAAMA,KACNY,WAAYT,QAAUJ,UACtBE,MAAOA,MACPC,GAAIG,cACJC,cAAeA,cACfF,OAAQA,OACJA,OAAOS,GAAG,CAAC,AAACL,IAAQ,CAAA,CAClBC,YAAaX,YAAYY,QAAQ,CAACF,GAAGN,EAAE,EAAI,IAC3CD,MAAOO,GAAGP,KAAK,CACfC,GAAIM,GAAGN,EAAE,CAAGf,SAASqB,GAAGL,KAAK,CAAEJ,UAAWS,GAAGN,EAAE,EAAI,GACnDS,OAAQH,GAAGN,EAAE,CAAGd,SAASU,YAAaU,GAAGN,EAAE,EAAI,MAC/CU,WAAYJ,GAAGL,KAAK,GAAKJ,SAC3B,CAAA,GACAe,SACN,CACF,CAAC,AAEH,QAAO,MAAMC,gCAAkC,CAAC,CAC9CC,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAUxB,qBAAqBqB,gBAAiBF,kBACtD,MAAMM,WAAaC,6CACjBN,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWE,IAAI,CAACL,WAAWN,GAAG,CAACQ,UAC/C,OAAOC,UACT,CAAC,AAED,QAAO,MAAMG,sBAAwB,CACnCC,SACAL,QACAM,EACAC,MACAR,oBAEA,OAAQM,UACN,KAAKxC,aAAa2C,EAAE,CAClB,OAAOlC,uCAAuC0B,QAASM,EAAGC,MAC5D,MAAK1C,aAAa4C,KAAK,CACrB,OAAOxC,wBAAwB+B,QAASM,EAAGC,MAC7C,MAAK1C,aAAa6C,IAAI,CACpB,OAAOvC,uBAAuB6B,QAASM,EAAGC,MAC5C,MAAK1C,aAAa8C,IAAI,CACpB,OAAOtC,uBAAuB2B,QAASM,EAAGC,MAAOR,iBACnD,MAAKlC,aAAa+C,MAAM,CACtB,OAAOxC,mCAAmC4B,QAASM,EAAGC,MACxD,MAAK1C,aAAagD,aAAa,CAC7B,OAAO3C,gCAAgC8B,QAASM,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,CAAC,AAED,QAAO,MAAML,6CAA+C,CAC1DY,UACAd,QACAD,oBAEA,KAAM,CAAEO,CAAC,CAAE,CAAGtC,iBACd,MAAMuC,MAAQhC,kBACd,OAAOuC,UAAUC,OAAO,CAAC,AAACC,MACxBZ,sBAAsBY,KAAMhB,QAASM,EAAGC,MAAOR,kBAEnD,CAAC,AAED,QAAO,MAAMkB,mBAAqB,CAACC,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD,UAA4B"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuFactory.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Domain, ESideNavEnum } from \"../NavigationLink\"\nimport { buildUrl } from \"../NavigationLink/buildUrl\"\nimport { isActive } from \"../NavigationLink/isActive\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { useTranslation } from \"react-i18next\"\nimport {\n getAssetDomainMenuItems,\n getNotificationsDomainMenuItems,\n getScanDomainMenuItems,\n getSystemManagementDomainMenuItems,\n getUserDomainMenuItems,\n getVIDomainMenuItemsVulnerabilityIntel,\n TFactory,\n} from \"./menuItems\"\nimport { TFunction } from \"i18next\"\nimport { MantineTheme, useMantineTheme } from \"@mantine/core\"\n\nexport const NavLinkConfigFactory =\n (currentPath: string, requester: Domain) =>\n ({ icon, label, to, owner, subNav }: TBuildNavLinkParams): TNavLinkConfig => {\n const fullTargetUrl = to ? buildUrl(owner, requester, to) : \"\"\n const defaultOpened = !!subNav?.find((sn) => sn.to === currentPath)\n\n return {\n isPathMatch: currentPath.endsWith(fullTargetUrl),\n active: to ? isActive(currentPath, fullTargetUrl) : false,\n icon: icon,\n isExternal: owner !== requester,\n label: label,\n to: fullTargetUrl,\n defaultOpened: defaultOpened,\n subNav: subNav\n ? subNav.map((sn) => ({\n isPathMatch: currentPath.endsWith(sn.to || \"\"),\n label: sn.label,\n to: sn.to ? buildUrl(sn.owner, requester, sn.to) : \"\",\n active: sn.to ? isActive(currentPath, sn.to) : false,\n isExternal: sn.owner !== requester,\n }))\n : undefined,\n }\n }\n\nexport const useBuildUseNavigationMenuPoints = ({\n requestingDomain,\n menuPointsCategories,\n currentLocation,\n additional,\n realmAccessRoles,\n}: {\n requestingDomain: Domain\n currentLocation: string\n menuPointsCategories: ESideNavEnum[]\n additional?: TBuildNavLinkParams[]\n realmAccessRoles?: Array<string>\n}): TNavLinkConfig[][] => {\n const factory = NavLinkConfigFactory(currentLocation, requestingDomain)\n const menuPoints = useMenuItemStringsToNavigationMenuItemPoints(\n menuPointsCategories,\n factory,\n realmAccessRoles\n )\n if (additional) menuPoints.push(additional.map(factory))\n return menuPoints\n}\n\nexport const getMenuItemFromString = (\n menuItem: ESideNavEnum,\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => {\n switch (menuItem) {\n case ESideNavEnum.VI:\n return getVIDomainMenuItemsVulnerabilityIntel(factory, t, theme)\n case ESideNavEnum.ASSET:\n return getAssetDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SCAN:\n return getScanDomainMenuItems(factory, t, theme)\n case ESideNavEnum.USER:\n return getUserDomainMenuItems(factory, t, theme, realmAccessRoles)\n case ESideNavEnum.SYSTEM:\n return getSystemManagementDomainMenuItems(factory, t, theme)\n case ESideNavEnum.NOTIFICATIONS:\n return getNotificationsDomainMenuItems(factory, t, theme)\n default:\n return []\n }\n}\n\nexport const useMenuItemStringsToNavigationMenuItemPoints = (\n menuItems: ESideNavEnum[],\n factory: TFactory,\n realmAccessRoles?: Array<string>\n) => {\n const { t } = useTranslation()\n const theme = useMantineTheme()\n return menuItems.flatMap((item) =>\n getMenuItemFromString(item, factory, t, theme, realmAccessRoles)\n )\n}\n\nexport const parseMenuEnvString = (envString: string, separator = \",\"): ESideNavEnum[] =>\n envString.split(separator) as ESideNavEnum[]\n"],"names":["ESideNavEnum","buildUrl","isActive","useTranslation","getAssetDomainMenuItems","getNotificationsDomainMenuItems","getScanDomainMenuItems","getSystemManagementDomainMenuItems","getUserDomainMenuItems","getVIDomainMenuItemsVulnerabilityIntel","useMantineTheme","NavLinkConfigFactory","currentPath","requester","icon","label","to","owner","subNav","fullTargetUrl","defaultOpened","find","sn","isPathMatch","endsWith","active","isExternal","map","undefined","useBuildUseNavigationMenuPoints","requestingDomain","menuPointsCategories","currentLocation","additional","realmAccessRoles","factory","menuPoints","useMenuItemStringsToNavigationMenuItemPoints","push","getMenuItemFromString","menuItem","t","theme","VI","ASSET","SCAN","USER","SYSTEM","NOTIFICATIONS","menuItems","flatMap","item","parseMenuEnvString","envString","separator","split"],"mappings":"AAIA,OAAiBA,YAAY,KAAQ,mBAAmB,AACxD,QAASC,QAAQ,KAAQ,4BAA4B,AACrD,QAASC,QAAQ,KAAQ,4BAA4B,AAErD,QAASC,cAAc,KAAQ,eAAe,AAC9C,QACEC,uBAAuB,CACvBC,+BAA+B,CAC/BC,sBAAsB,CACtBC,kCAAkC,CAClCC,sBAAsB,CACtBC,sCAAsC,KAEjC,aAAa,AAEpB,QAAuBC,eAAe,KAAQ,eAAe,AAE7D,QAAO,MAAMC,qBACX,CAACC,YAAqBC,YACtB,CAAC,CAAEC,IAAI,CAAEC,KAAK,CAAEC,EAAE,CAAEC,KAAK,CAAEC,MAAM,CAAuB,IACtD,MAAMC,cAAgBH,GAAKf,SAASgB,MAAOJ,UAAWG,IAAM,GAC5D,MAAMI,cAAgB,CAAC,EAACF,eAAAA,uBAAAA,OAAQG,IAAI,CAAC,AAACC,IAAOA,GAAGN,EAAE,GAAKJ,cAEvD,MAAO,CACLW,YAAaX,YAAYY,QAAQ,CAACL,eAClCM,OAAQT,GAAKd,SAASU,YAAaO,eAAiB,MACpDL,KAAMA,KACNY,WAAYT,QAAUJ,UACtBE,MAAOA,MACPC,GAAIG,cACJC,cAAeA,cACfF,OAAQA,OACJA,OAAOS,GAAG,CAAC,AAACL,IAAQ,CAAA,CAClBC,YAAaX,YAAYY,QAAQ,CAACF,GAAGN,EAAE,EAAI,IAC3CD,MAAOO,GAAGP,KAAK,CACfC,GAAIM,GAAGN,EAAE,CAAGf,SAASqB,GAAGL,KAAK,CAAEJ,UAAWS,GAAGN,EAAE,EAAI,GACnDS,OAAQH,GAAGN,EAAE,CAAGd,SAASU,YAAaU,GAAGN,EAAE,EAAI,MAC/CU,WAAYJ,GAAGL,KAAK,GAAKJ,SAC3B,CAAA,GACAe,SACN,CACF,CAAC,AAEH,QAAO,MAAMC,gCAAkC,CAAC,CAC9CC,gBAAgB,CAChBC,oBAAoB,CACpBC,eAAe,CACfC,UAAU,CACVC,gBAAgB,CAOjB,IACC,MAAMC,QAAUxB,qBAAqBqB,gBAAiBF,kBACtD,MAAMM,WAAaC,6CACjBN,qBACAI,QACAD,kBAEF,GAAID,WAAYG,WAAWE,IAAI,CAACL,WAAWN,GAAG,CAACQ,UAC/C,OAAOC,UACT,CAAC,AAED,QAAO,MAAMG,sBAAwB,CACnCC,SACAL,QACAM,EACAC,MACAR,oBAEA,OAAQM,UACN,KAAKxC,aAAa2C,EAAE,CAClB,OAAOlC,uCAAuC0B,QAASM,EAAGC,MAC5D,MAAK1C,aAAa4C,KAAK,CACrB,OAAOxC,wBAAwB+B,QAASM,EAAGC,MAAOR,iBACpD,MAAKlC,aAAa6C,IAAI,CACpB,OAAOvC,uBAAuB6B,QAASM,EAAGC,MAC5C,MAAK1C,aAAa8C,IAAI,CACpB,OAAOtC,uBAAuB2B,QAASM,EAAGC,MAAOR,iBACnD,MAAKlC,aAAa+C,MAAM,CACtB,OAAOxC,mCAAmC4B,QAASM,EAAGC,MACxD,MAAK1C,aAAagD,aAAa,CAC7B,OAAO3C,gCAAgC8B,QAASM,EAAGC,MACrD,SACE,MAAO,EAAE,AACb,CACF,CAAC,AAED,QAAO,MAAML,6CAA+C,CAC1DY,UACAd,QACAD,oBAEA,KAAM,CAAEO,CAAC,CAAE,CAAGtC,iBACd,MAAMuC,MAAQhC,kBACd,OAAOuC,UAAUC,OAAO,CAAC,AAACC,MACxBZ,sBAAsBY,KAAMhB,QAASM,EAAGC,MAAOR,kBAEnD,CAAC,AAED,QAAO,MAAMkB,mBAAqB,CAACC,UAAmBC,UAAY,GAAG,GACnED,UAAUE,KAAK,CAACD,UAA4B"}
@@ -1,2 +1,2 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{BarChart3,Bell,Server,ServerCog,ShieldCheck,Users,View}from"lucide-react";import{Domain}from"../NavigationLink";export const getAssetDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:Domain.Asset},{label:t("Assets"),to:"/assets",owner:Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.Asset}]})]]};export const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:Domain.Scan},{label:t("Targets"),to:"/targets",owner:Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:Domain.Scan}]})]]};export const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:Domain.VI},{label:t("CPE"),to:"/cpe",owner:Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:Domain.VI},{label:t("Feed"),to:"/feed",owner:Domain.VI}]})]]};export const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:Domain.User}]})]]};export const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};export const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.SystemManagement}]})]]};
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{BarChart3,Bell,Server,ServerCog,Settings,ShieldCheck,Users,View}from"lucide-react";import{Domain}from"../NavigationLink";export const getAssetDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(BarChart3,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Analysis"),owner:Domain.Asset,subNav:[{label:t("Dashboard"),to:"/dashboard",owner:Domain.Asset},{label:t("Assets"),to:"/assets",owner:Domain.Asset},{label:t("Vulnerabilities"),to:"/vulnerabilities",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Server,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Import"),owner:Domain.Asset,subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.Asset}]})],[factory({icon:()=>_jsx(Settings,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),label:t("Global settings"),owner:Domain.Asset,subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Asset management"),to:"/asset-management-settings",owner:Domain.Asset}]:[]]})]]};export const getScanDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ShieldCheck,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Scan,label:t("Scan control"),subNav:[{label:t("Tasks"),to:"/tasks",owner:Domain.Scan},{label:t("Targets"),to:"/targets",owner:Domain.Scan},{label:t("Credentials"),to:"/credentials",owner:Domain.Scan},{label:t("Schedules"),to:"/schedules",owner:Domain.Scan},{label:t("Sensors"),to:"/sensors",owner:Domain.Scan}]})]]};export const getVIDomainMenuItemsVulnerabilityIntel=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(View,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.VI,label:t("VIEW"),to:"/vulnerability-intelligence",subNav:[{label:t("CVE"),to:"/advisories-cve",owner:Domain.VI},{label:t("CSAF"),to:"/advisories-csaf",owner:Domain.VI},{label:t("CPE"),to:"/cpe",owner:Domain.VI},{label:t("Vulnerability tests"),to:"/vulnerability-tests",owner:Domain.VI},{label:t("SBOMs"),to:"/sboms",owner:Domain.VI},{label:t("GEA reports"),to:"/gea-reports",owner:Domain.VI},{label:t("CSAF sources"),to:"/csaf-sources",owner:Domain.VI},{label:t("Feed"),to:"/feed",owner:Domain.VI}]})]]};export const getUserDomainMenuItems=(factory,t,theme,realmAccessRoles)=>{return[[factory({icon:()=>_jsx(Users,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.User,label:t("User management"),to:"",subNav:[...(realmAccessRoles===null||realmAccessRoles===void 0?void 0:realmAccessRoles.includes("admin"))?[{label:t("Users"),to:"/users",owner:Domain.User}]:[],{label:t("Personal settings"),to:"/personal-settings",owner:Domain.User}]})]]};export const getNotificationsDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(Bell,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.Notifications,label:t("Notifications"),to:"/notifications"})]]};export const getSystemManagementDomainMenuItems=(factory,t,theme)=>{return[[factory({icon:()=>_jsx(ServerCog,{size:theme.other.iconSizes.MEDIUM_LARGE,strokeWidth:1.5}),owner:Domain.SystemManagement,label:t("Systems"),subNav:[{label:t("Appliances"),to:"/appliances",owner:Domain.SystemManagement}]})]]};
2
2
  //# sourceMappingURL=menuItems.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport { BarChart3, Bell, Server, ServerCog, ShieldCheck, Users, View } from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["BarChart3","Bell","Server","ServerCog","ShieldCheck","Users","View","Domain","getAssetDomainMenuItems","factory","t","theme","icon","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Asset","subNav","to","getScanDomainMenuItems","Scan","getVIDomainMenuItemsVulnerabilityIntel","VI","getUserDomainMenuItems","realmAccessRoles","User","includes","getNotificationsDomainMenuItems","Notifications","getSystemManagementDomainMenuItems","SystemManagement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/components/Layout/AppNavigation/Menu/menuItems.tsx"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { TFunction } from \"i18next\"\nimport {\n BarChart3,\n Bell,\n Server,\n ServerCog,\n Settings,\n ShieldCheck,\n Users,\n View,\n} from \"lucide-react\"\nimport { Domain } from \"../NavigationLink\"\nimport { TBuildNavLinkParams, TNavLinkConfig } from \"./types\"\nimport { MantineTheme } from \"@mantine/core\"\n\nexport type TFactory = ({ icon, label, to, owner, subNav }: TBuildNavLinkParams) => TNavLinkConfig\n\nexport type TMenuItemContainer = (\n factory: TFactory,\n t: TFunction,\n theme: MantineTheme,\n realmAccessRoles?: Array<string>\n) => TNavLinkConfig[][]\n\nexport const getAssetDomainMenuItems: TMenuItemContainer = (\n factory,\n t,\n theme,\n realmAccessRoles\n) => {\n return [\n [\n factory({\n icon: () => <BarChart3 size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Analysis\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Dashboard\"),\n to: \"/dashboard\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Assets\"),\n to: \"/assets\",\n owner: Domain.Asset,\n },\n {\n label: t(\"Vulnerabilities\"),\n to: \"/vulnerabilities\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Server size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Import\"),\n owner: Domain.Asset,\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.Asset,\n },\n ],\n }),\n ],\n [\n factory({\n icon: () => <Settings size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n label: t(\"Global settings\"),\n owner: Domain.Asset,\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Asset management\"),\n to: \"/asset-management-settings\",\n owner: Domain.Asset,\n },\n ]\n : []),\n ],\n }),\n ],\n ]\n}\n\nexport const getScanDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ShieldCheck size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Scan,\n label: t(\"Scan control\"),\n subNav: [\n {\n label: t(\"Tasks\"),\n to: \"/tasks\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Targets\"),\n to: \"/targets\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Credentials\"),\n to: \"/credentials\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Schedules\"),\n to: \"/schedules\",\n owner: Domain.Scan,\n },\n {\n label: t(\"Sensors\"),\n to: \"/sensors\",\n owner: Domain.Scan,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getVIDomainMenuItemsVulnerabilityIntel: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <View size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.VI,\n label: t(\"VIEW\"),\n to: \"/vulnerability-intelligence\",\n subNav: [\n {\n label: t(\"CVE\"),\n to: \"/advisories-cve\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF\"),\n to: \"/advisories-csaf\",\n owner: Domain.VI,\n },\n {\n label: t(\"CPE\"),\n to: \"/cpe\",\n owner: Domain.VI,\n },\n {\n label: t(\"Vulnerability tests\"),\n to: \"/vulnerability-tests\",\n owner: Domain.VI,\n },\n {\n label: t(\"SBOMs\"),\n to: \"/sboms\",\n owner: Domain.VI,\n },\n {\n label: t(\"GEA reports\"),\n to: \"/gea-reports\",\n owner: Domain.VI,\n },\n {\n label: t(\"CSAF sources\"),\n to: \"/csaf-sources\",\n owner: Domain.VI,\n },\n {\n label: t(\"Feed\"),\n to: \"/feed\",\n owner: Domain.VI,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getUserDomainMenuItems: TMenuItemContainer = (factory, t, theme, realmAccessRoles) => {\n return [\n [\n factory({\n icon: () => <Users size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.User,\n label: t(\"User management\"),\n to: \"\",\n subNav: [\n ...(realmAccessRoles?.includes(\"admin\")\n ? [\n {\n label: t(\"Users\"),\n to: \"/users\",\n owner: Domain.User,\n },\n ]\n : []),\n {\n label: t(\"Personal settings\"),\n to: \"/personal-settings\",\n owner: Domain.User,\n },\n ],\n }),\n ],\n ]\n}\n\nexport const getNotificationsDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <Bell size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.Notifications,\n label: t(\"Notifications\"),\n to: \"/notifications\",\n }),\n ],\n ]\n}\n\nexport const getSystemManagementDomainMenuItems: TMenuItemContainer = (factory, t, theme) => {\n return [\n [\n factory({\n icon: () => <ServerCog size={theme.other.iconSizes.MEDIUM_LARGE} strokeWidth={1.5} />,\n owner: Domain.SystemManagement,\n label: t(\"Systems\"),\n subNav: [\n {\n label: t(\"Appliances\"),\n to: \"/appliances\",\n owner: Domain.SystemManagement,\n },\n ],\n }),\n ],\n ]\n}\n"],"names":["BarChart3","Bell","Server","ServerCog","Settings","ShieldCheck","Users","View","Domain","getAssetDomainMenuItems","factory","t","theme","realmAccessRoles","icon","size","other","iconSizes","MEDIUM_LARGE","strokeWidth","label","owner","Asset","subNav","to","includes","getScanDomainMenuItems","Scan","getVIDomainMenuItemsVulnerabilityIntel","VI","getUserDomainMenuItems","User","getNotificationsDomainMenuItems","Notifications","getSystemManagementDomainMenuItems","SystemManagement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Table/persistence/TableSessionStorage.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport {\n ESessionStorageKeys,\n IKeyValueStorage,\n ITemporaryStorage,\n SessionStorage,\n} from \"../../../helper\"\nimport { InferType, number, object, ObjectSchema, string } from \"yup\"\nimport { ESortDirection, TPaging, TSorting } from \"../../../genericTypes\"\n\nconst tableStoredSchema: ObjectSchema<{\n sorting: TSorting\n paging: Omit<TPaging, \"totalDisplayableResults\">\n}> = object({\n sorting: object({\n direction: string().required().oneOf([ESortDirection.ASC, ESortDirection.DESC]),\n column: string().required(),\n }).required(),\n paging: object({\n index: number().required(),\n size: number().required(),\n }).required(),\n})\n\nexport type TTableStorageData = InferType<typeof tableStoredSchema>\n\nfunction validateTableData(data: TTableStorageData) {\n let isValid = true\n\n try {\n tableStoredSchema.validateSync(data, {\n strict: true,\n stripUnknown: true,\n })\n } catch (_) {\n isValid = false\n }\n\n return isValid\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ITableStorage extends ITemporaryStorage<TTableStorageData> {}\n\nexport class TableSessionStorage implements ITableStorage {\n private static _instance: null | TableSessionStorage = null\n public static sessionStorageKey = ESessionStorageKeys.TABLE\n private static storage: IKeyValueStorage = SessionStorage.Instance()\n constructor() {}\n\n public static Instance() {\n if (!this._instance) this._instance = new this()\n return this._instance\n }\n\n public get(id: string): TTableStorageData | null {\n const storedTables =\n TableSessionStorage.storage.get<Record<string, TTableStorageData>>(\n TableSessionStorage.sessionStorageKey\n ) || {}\n const tableData = storedTables[id]\n if (!tableData) return null\n const isValidData = validateTableData(tableData)\n if (!isValidData) {\n const storedTableClone = structuredClone(storedTables) // Deep clone object\n delete storedTableClone[id]\n TableSessionStorage.storage.set(TableSessionStorage.sessionStorageKey, storedTableClone)\n return null\n }\n\n return tableData\n }\n\n public set(id: string, updateData: (prev: TTableStorageData) => TTableStorageData) {\n const storedTables =\n TableSessionStorage.storage.get<Record<string, TTableStorageData>>(\n TableSessionStorage.sessionStorageKey\n ) || {}\n const updatedData = updateData(storedTables[id])\n const isValidData = validateTableData(updatedData)\n if (!isValidData) {\n return // Return null, maybe return empty table state instead\n }\n\n storedTables[id] = updatedData\n TableSessionStorage.storage.set(TableSessionStorage.sessionStorageKey, storedTables)\n\n return\n }\n}\n"],"names":["ESessionStorageKeys","SessionStorage","number","object","string","ESortDirection","tableStoredSchema","sorting","direction","required","oneOf","ASC","DESC","column","paging","index","size","validateTableData","data","isValid","validateSync","strict","stripUnknown","_","TableSessionStorage","Instance","_instance","get","id","storedTables","storage","sessionStorageKey","tableData","isValidData","storedTableClone","structuredClone","set","updateData","updatedData","constructor","TABLE"],"mappings":"oLAIA,OACEA,mBAAmB,CAGnBC,cAAc,KACT,iBAAiB,AACxB,QAAoBC,MAAM,CAAEC,MAAM,CAAgBC,MAAM,KAAQ,KAAK,AACrE,QAASC,cAAc,KAA2B,uBAAuB,CAEzE,MAAMC,kBAGDH,OAAO,CACVI,QAASJ,OAAO,CACdK,UAAWJ,SAASK,QAAQ,GAAGC,KAAK,CAAC,CAACL,eAAeM,GAAG,CAAEN,eAAeO,IAAI,CAAC,EAC9EC,OAAQT,SAASK,QAAQ,EAC3B,GAAGA,QAAQ,GACXK,OAAQX,OAAO,CACbY,MAAOb,SAASO,QAAQ,GACxBO,KAAMd,SAASO,QAAQ,EACzB,GAAGA,QAAQ,EACb,GAIA,SAASQ,kBAAkBC,IAAuB,EAChD,IAAIC,QAAU,KAEd,GAAI,CACFb,kBAAkBc,YAAY,CAACF,KAAM,CACnCG,OAAQ,KACRC,aAAc,IAChB,EACF,CAAE,MAAOC,EAAG,CACVJ,QAAU,KACZ,CAEA,OAAOA,OACT,CAKA,OAAO,MAAMK,oBAMX,OAAcC,UAAW,CACvB,GAAI,CAAC,IAAI,CAACC,SAAS,CAAE,IAAI,CAACA,SAAS,CAAG,IAAI,IAAI,CAC9C,OAAO,IAAI,CAACA,SAAS,AACvB,CAEA,AAAOC,IAAIC,EAAU,CAA4B,CAC/C,MAAMC,aACJL,oBAAoBM,OAAO,CAACH,GAAG,CAC7BH,oBAAoBO,iBAAiB,GAClC,CAAC,EACR,MAAMC,UAAYH,YAAY,CAACD,GAAG,CAClC,GAAI,CAACI,UAAW,OAAO,KACvB,MAAMC,YAAchB,kBAAkBe,WACtC,GAAI,CAACC,YAAa,CAChB,MAAMC,iBAAmBC,gBAAgBN,aACzC,QAAOK,gBAAgB,CAACN,GAAG,CAC3BJ,oBAAoBM,OAAO,CAACM,GAAG,CAACZ,oBAAoBO,iBAAiB,CAAEG,kBACvE,OAAO,IACT,CAEA,OAAOF,SACT,CAEA,AAAOI,IAAIR,EAAU,CAAES,UAA0D,CAAE,CACjF,MAAMR,aACJL,oBAAoBM,OAAO,CAACH,GAAG,CAC7BH,oBAAoBO,iBAAiB,GAClC,CAAC,EACR,MAAMO,YAAcD,WAAWR,YAAY,CAACD,GAAG,EAC/C,MAAMK,YAAchB,kBAAkBqB,aACtC,GAAI,CAACL,YAAa,CAChB,MACF,CAEAJ,YAAY,CAACD,GAAG,CAAGU,YACnBd,oBAAoBM,OAAO,CAACM,GAAG,CAACZ,oBAAoBO,iBAAiB,CAAEF,cAEvE,MACF,CAxCAU,aAAc,CAAC,CAyCjB,CA5CE,iBADWf,oBACIE,YAAwC,MACvD,iBAFWF,oBAEGO,oBAAoB/B,oBAAoBwC,KAAK,EAC3D,iBAHWhB,oBAGIM,UAA4B7B,eAAewB,QAAQ"}
1
+ {"version":3,"sources":["../../../../../src/components/Table/persistence/TableSessionStorage.ts"],"sourcesContent":["/* Copyright (C) Greenbone AG\n *\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport {\n ESessionStorageKeys,\n IKeyValueStorage,\n ITemporaryStorage,\n SessionStorage,\n} from \"../../../helper\"\nimport { InferType, number, object, ObjectSchema, string } from \"yup\"\nimport { ESortDirection, TPaging, TSorting } from \"../../../genericTypes\"\n\nconst tableStoredSchema: ObjectSchema<{\n sorting: TSorting\n paging: Omit<TPaging, \"totalDisplayableResults\">\n}> = object({\n sorting: object({\n direction: string().required().oneOf([ESortDirection.ASC, ESortDirection.DESC]),\n column: string().required(),\n }).required(),\n paging: object({\n index: number().required(),\n size: number().required(),\n }).required(),\n})\n\nexport type TTableStorageData = InferType<typeof tableStoredSchema>\n\nfunction validateTableData(data: TTableStorageData) {\n let isValid = true\n\n try {\n tableStoredSchema.validateSync(data, {\n strict: true,\n stripUnknown: true,\n })\n } catch (_) {\n isValid = false\n }\n\n return isValid\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface ITableStorage extends ITemporaryStorage<TTableStorageData> {}\n\nexport class TableSessionStorage implements ITableStorage {\n private static _instance: null | TableSessionStorage = null\n public static sessionStorageKey = ESessionStorageKeys.TABLE\n private static storage: IKeyValueStorage = SessionStorage.Instance()\n constructor() {}\n\n public static Instance() {\n if (!this._instance) this._instance = new this()\n return this._instance\n }\n\n public get(id: string): TTableStorageData | null {\n const storedTables =\n TableSessionStorage.storage.get<Record<string, TTableStorageData>>(\n TableSessionStorage.sessionStorageKey\n ) || {}\n const tableData = storedTables[id]\n if (!tableData) return null\n const isValidData = validateTableData(tableData)\n if (!isValidData) {\n const storedTableClone = structuredClone(storedTables) // Deep clone object\n delete storedTableClone[id]\n TableSessionStorage.storage.set(TableSessionStorage.sessionStorageKey, storedTableClone)\n return null\n }\n\n return tableData\n }\n\n public set(id: string, updateData: (prev: TTableStorageData) => TTableStorageData) {\n const storedTables =\n TableSessionStorage.storage.get<Record<string, TTableStorageData>>(\n TableSessionStorage.sessionStorageKey\n ) || {}\n const updatedData = updateData(storedTables[id])\n const isValidData = validateTableData(updatedData)\n if (!isValidData) {\n return // Return null, maybe return empty table state instead\n }\n\n storedTables[id] = updatedData\n TableSessionStorage.storage.set(TableSessionStorage.sessionStorageKey, storedTables)\n\n return\n }\n}\n"],"names":["ESessionStorageKeys","SessionStorage","number","object","string","ESortDirection","tableStoredSchema","sorting","direction","required","oneOf","ASC","DESC","column","paging","index","size","validateTableData","data","isValid","validateSync","strict","stripUnknown","_","TableSessionStorage","Instance","_instance","get","id","storedTables","storage","sessionStorageKey","tableData","isValidData","storedTableClone","structuredClone","set","updateData","updatedData","TABLE"],"mappings":"oLAIA,OACEA,mBAAmB,CAGnBC,cAAc,KACT,iBAAiB,AACxB,QAAoBC,MAAM,CAAEC,MAAM,CAAgBC,MAAM,KAAQ,KAAK,AACrE,QAASC,cAAc,KAA2B,uBAAuB,CAEzE,MAAMC,kBAGDH,OAAO,CACVI,QAASJ,OAAO,CACdK,UAAWJ,SAASK,QAAQ,GAAGC,KAAK,CAAC,CAACL,eAAeM,GAAG,CAAEN,eAAeO,IAAI,CAAC,EAC9EC,OAAQT,SAASK,QAAQ,EAC3B,GAAGA,QAAQ,GACXK,OAAQX,OAAO,CACbY,MAAOb,SAASO,QAAQ,GACxBO,KAAMd,SAASO,QAAQ,EACzB,GAAGA,QAAQ,EACb,GAIA,SAASQ,kBAAkBC,IAAuB,EAChD,IAAIC,QAAU,KAEd,GAAI,CACFb,kBAAkBc,YAAY,CAACF,KAAM,CACnCG,OAAQ,KACRC,aAAc,IAChB,EACF,CAAE,MAAOC,EAAG,CACVJ,QAAU,KACZ,CAEA,OAAOA,OACT,CAKA,OAAO,MAAMK,oBAMX,OAAcC,UAAW,CACvB,GAAI,CAAC,IAAI,CAACC,SAAS,CAAE,IAAI,CAACA,SAAS,CAAG,IAAI,IAAI,CAC9C,OAAO,IAAI,CAACA,SAAS,AACvB,CAEA,AAAOC,IAAIC,EAAU,CAA4B,CAC/C,MAAMC,aACJL,oBAAoBM,OAAO,CAACH,GAAG,CAC7BH,oBAAoBO,iBAAiB,GAClC,CAAC,EACR,MAAMC,UAAYH,YAAY,CAACD,GAAG,CAClC,GAAI,CAACI,UAAW,OAAO,KACvB,MAAMC,YAAchB,kBAAkBe,WACtC,GAAI,CAACC,YAAa,CAChB,MAAMC,iBAAmBC,gBAAgBN,aACzC,QAAOK,gBAAgB,CAACN,GAAG,CAC3BJ,oBAAoBM,OAAO,CAACM,GAAG,CAACZ,oBAAoBO,iBAAiB,CAAEG,kBACvE,OAAO,IACT,CAEA,OAAOF,SACT,CAEA,AAAOI,IAAIR,EAAU,CAAES,UAA0D,CAAE,CACjF,MAAMR,aACJL,oBAAoBM,OAAO,CAACH,GAAG,CAC7BH,oBAAoBO,iBAAiB,GAClC,CAAC,EACR,MAAMO,YAAcD,WAAWR,YAAY,CAACD,GAAG,EAC/C,MAAMK,YAAchB,kBAAkBqB,aACtC,GAAI,CAACL,YAAa,CAChB,MACF,CAEAJ,YAAY,CAACD,GAAG,CAAGU,YACnBd,oBAAoBM,OAAO,CAACM,GAAG,CAACZ,oBAAoBO,iBAAiB,CAAEF,cAEvE,MACF,CAxCA,aAAc,CAAC,CAyCjB,CA5CE,iBADWL,oBACIE,YAAwC,MACvD,iBAFWF,oBAEGO,oBAAoB/B,oBAAoBuC,KAAK,EAC3D,iBAHWf,oBAGIM,UAA4B7B,eAAewB,QAAQ"}