@knime/product-features 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/dataTransfer.css +8 -8
- package/dist/dataTransfer.js +24 -63
- package/dist/dataTransfer.js.map +1 -1
- package/dist/format-ra_vlnN7.js.map +1 -1
- package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts +0 -2
- package/dist/src/dataTransfer/download/ui/DownloadProgressPanel.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts +0 -2
- package/dist/src/dataTransfer/download/ui/DownloadProgressPanelItem.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/shared/ui/ProgressList/ProgressList.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts +0 -2
- package/dist/src/dataTransfer/upload/ui/UploadProgressPanel.vue.d.ts.map +1 -1
- package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts +0 -3
- package/dist/src/dataTransfer/upload/ui/UploadProgressPanelItem.vue.d.ts.map +1 -1
- package/dist/src/toasts/Toast/Toast.vue.d.ts +2 -2
- package/dist/toasts.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-ra_vlnN7.js","sources":["../../../node_modules/.pnpm/filesize@10.0.6/node_modules/filesize/dist/filesize.esm.js","../../../node_modules/.pnpm/@knime+utils@1.11.0_consola@3.4.2/node_modules/@knime/utils/src/localTimezone.ts","../../../node_modules/.pnpm/@knime+utils@1.11.0_consola@3.4.2/node_modules/@knime/utils/src/format.ts"],"sourcesContent":["/**\r\n * filesize\r\n *\r\n * @copyright 2022 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 10.0.6\r\n */\r\nconst ARRAY = \"array\";\r\nconst BIT = \"bit\";\r\nconst BITS = \"bits\";\r\nconst BYTE = \"byte\";\r\nconst BYTES = \"bytes\";\r\nconst EMPTY = \"\";\r\nconst EXPONENT = \"exponent\";\r\nconst FUNCTION = \"function\";\r\nconst IEC = \"iec\";\r\nconst INVALID_NUMBER = \"Invalid number\";\r\nconst INVALID_ROUND = \"Invalid rounding method\";\r\nconst JEDEC = \"jedec\";\r\nconst OBJECT = \"object\";\r\nconst PERIOD = \".\";\r\nconst ROUND = \"round\";\r\nconst S = \"s\";\r\nconst SI_KBIT = \"kbit\";\r\nconst SI_KBYTE = \"kB\";\r\nconst SPACE = \" \";\r\nconst STRING = \"string\";\r\nconst ZERO = \"0\";\r\nconst STRINGS = {\r\n\tsymbol: {\r\n\t\tiec: {\r\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\r\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n\t\t},\r\n\t\tjedec: {\r\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\r\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n\t\t}\r\n\t},\r\n\tfullform: {\r\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n\t}\r\n};function filesize (arg, {\r\n\tbits = false,\r\n\tpad = false,\r\n\tbase = -1,\r\n\tround = 2,\r\n\tlocale = EMPTY,\r\n\tlocaleOptions = {},\r\n\tseparator = EMPTY,\r\n\tspacer = SPACE,\r\n\tsymbols = {},\r\n\tstandard = EMPTY,\r\n\toutput = STRING,\r\n\tfullform = false,\r\n\tfullforms = [],\r\n\texponent = -1,\r\n\troundingMethod = ROUND,\r\n\tprecision = 0\r\n} = {}) {\r\n\tlet e = exponent,\r\n\t\tnum = Number(arg),\r\n\t\tresult = [],\r\n\t\tval = 0,\r\n\t\tu = EMPTY;\r\n\r\n\t// Sync base & standard\r\n\tif (base === -1 && standard.length === 0) {\r\n\t\tbase = 10;\r\n\t\tstandard = JEDEC;\r\n\t} else if (base === -1 && standard.length > 0) {\r\n\t\tstandard = standard === IEC ? IEC : JEDEC;\r\n\t\tbase = standard === IEC ? 2 : 10;\r\n\t} else {\r\n\t\tbase = base === 2 ? 2 : 10;\r\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\r\n\t}\r\n\r\n\tconst ceil = base === 10 ? 1000 : 1024,\r\n\t\tfull = fullform === true,\r\n\t\tneg = num < 0,\r\n\t\troundingFunc = Math[roundingMethod];\r\n\r\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\r\n\t\tthrow new TypeError(INVALID_NUMBER);\r\n\t}\r\n\r\n\tif (typeof roundingFunc !== FUNCTION) {\r\n\t\tthrow new TypeError(INVALID_ROUND);\r\n\t}\r\n\r\n\t// Flipping a negative number to determine the size\r\n\tif (neg) {\r\n\t\tnum = -num;\r\n\t}\r\n\r\n\t// Determining the exponent\r\n\tif (e === -1 || isNaN(e)) {\r\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n\t\tif (e < 0) {\r\n\t\t\te = 0;\r\n\t\t}\r\n\t}\r\n\r\n\t// Exceeding supported length, time to reduce & multiply\r\n\tif (e > 8) {\r\n\t\tif (precision > 0) {\r\n\t\t\tprecision += 8 - e;\r\n\t\t}\r\n\r\n\t\te = 8;\r\n\t}\r\n\r\n\tif (output === EXPONENT) {\r\n\t\treturn e;\r\n\t}\r\n\r\n\t// Zero is now a special case because bytes divide by 1\r\n\tif (num === 0) {\r\n\t\tresult[0] = 0;\r\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\r\n\t} else {\r\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n\t\tif (bits) {\r\n\t\t\tval = val * 8;\r\n\r\n\t\t\tif (val >= ceil && e < 8) {\r\n\t\t\t\tval = val / ceil;\r\n\t\t\t\te++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\r\n\t\tresult[0] = roundingFunc(val * p) / p;\r\n\r\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\r\n\t\t\tresult[0] = 1;\r\n\t\t\te++;\r\n\t\t}\r\n\r\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\r\n\t}\r\n\r\n\t// Decorating a 'diff'\r\n\tif (neg) {\r\n\t\tresult[0] = -result[0];\r\n\t}\r\n\r\n\t// Setting optional precision\r\n\tif (precision > 0) {\r\n\t\tresult[0] = result[0].toPrecision(precision);\r\n\t}\r\n\r\n\t// Applying custom symbol\r\n\tresult[1] = symbols[result[1]] || result[1];\r\n\r\n\tif (locale === true) {\r\n\t\tresult[0] = result[0].toLocaleString();\r\n\t} else if (locale.length > 0) {\r\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\r\n\t} else if (separator.length > 0) {\r\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\r\n\t}\r\n\r\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\r\n\t\tconst x = separator || PERIOD,\r\n\t\t\ttmp = result[0].toString().split(x),\r\n\t\t\ts = tmp[1] || EMPTY,\r\n\t\t\tl = s.length,\r\n\t\t\tn = round - l;\r\n\r\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\r\n\t}\r\n\r\n\tif (full) {\r\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\r\n\t}\r\n\r\n\t// Returning Array, Object, or String (default)\r\n\treturn output === ARRAY ? result : output === OBJECT ? {\r\n\t\tvalue: result[0],\r\n\t\tsymbol: result[1],\r\n\t\texponent: e,\r\n\t\tunit: u\r\n\t} : result.join(spacer);\r\n}\r\n\r\n// Partial application for functional programming\r\nfunction partial ({\r\n\tbits = false,\r\n\tpad = false,\r\n\tbase = -1,\r\n\tround = 2,\r\n\tlocale = EMPTY,\r\n\tlocaleOptions = {},\r\n\tseparator = EMPTY,\r\n\tspacer = SPACE,\r\n\tsymbols = {},\r\n\tstandard = EMPTY,\r\n\toutput = STRING,\r\n\tfullform = false,\r\n\tfullforms = [],\r\n\texponent = -1,\r\n\troundingMethod = ROUND,\r\n\tprecision = 0\r\n} = {}) {\r\n\treturn arg => filesize(arg, {\r\n\t\tbits,\r\n\t\tpad,\r\n\t\tbase,\r\n\t\tround,\r\n\t\tlocale,\r\n\t\tlocaleOptions,\r\n\t\tseparator,\r\n\t\tspacer,\r\n\t\tsymbols,\r\n\t\tstandard,\r\n\t\toutput,\r\n\t\tfullform,\r\n\t\tfullforms,\r\n\t\texponent,\r\n\t\troundingMethod,\r\n\t\tprecision\r\n\t});\r\n}export{filesize,partial};","/**\n * Get the users local timezone.\n *\n * @returns current users timezone (browser based) tz db string (e. g. Europe/Berlin).\n */\n// eslint-disable-next-line new-cap\nexport default () => Intl.DateTimeFormat().resolvedOptions().timeZone;\n","import { filesize } from \"filesize\";\n\nimport getLocalTimeZone from \"./localTimezone\";\n/**\n * Converts the specified date String to human readable text containing the day, month, and year.\n * Example: '2018-07-31T09:44:31+00:00' => 'Jul 31, 2018'\n *\n * @param dateString String representation of the Date to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable date String\n */\nexport const formatDateString = (\n dateString: string | number,\n useTimeZone = false,\n) => {\n const date = new Date(dateString);\n\n // @ts-expect-error Argument of type 'Date' is not assignable to parameter of type 'number'\n if (isNaN(date)) {\n throw Error(\"Invalid Date format\");\n }\n\n const baseDateOptions: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\",\n };\n\n // This only works for the default locale of en-US, as support of other locals in node js might not be available\n // See for example this issue https://github.com/nodejs/node/issues/8500\n const dateOptions: Intl.DateTimeFormatOptions = useTimeZone\n ? { ...baseDateOptions, timeZone: getLocalTimeZone() }\n : baseDateOptions;\n\n return date.toLocaleDateString(\"en-US\", dateOptions);\n};\n\n/**\n * Converts the specified time String to human readable text containing the hour (12-hour) and minute.\n * Example: '2018-07-31T09:44:31+00:00' => '9:44 AM'\n *\n * @param timeString String representation of the Date (including time) to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable time String\n */\nexport const formatTimeString = (\n timeString: string | number,\n useTimeZone = false,\n) => {\n const time = new Date(timeString);\n\n // @ts-expect-error Argument of type 'Date' is not assignable to parameter of type 'number'\n if (isNaN(time)) {\n throw Error(\"Invalid Date format\");\n }\n\n // This only works for the default locale of en-US, as support of other locals in node js might not be available\n // See for example this issue https://github.com/nodejs/node/issues/8500\n const baseTimeOptions: Intl.DateTimeFormatOptions = {\n hour: \"numeric\",\n minute: \"2-digit\",\n };\n\n const timeOptions: Intl.DateTimeFormatOptions = useTimeZone\n ? { ...baseTimeOptions, timeZone: getLocalTimeZone() }\n : baseTimeOptions;\n\n return time.toLocaleTimeString(\"en-US\", timeOptions);\n};\n\n/**\n * Converts the specified time String to human readable text containing the date (day, month, year) and time (hour,\n * minute; 12-hour).\n * Example: '2018-07-31T09:44:31+00:00' => 'Jul 31, 2018 9:44 AM'\n *\n * @param dateTimeString String representation of the Date (including time and date) to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable date/time String\n */\nexport const formatDateTimeString = (\n dateTimeString: string | number,\n useTimeZone = false,\n) => {\n return `${formatDateString(dateTimeString, useTimeZone)} ${formatTimeString(\n dateTimeString,\n useTimeZone,\n )}`;\n};\n\n/**\n * Converts the specified date and time to the user time zone with option to display (day, month, year) only or with time (hour,\n * minute; 12-hour).\n *\n * @param showTime String representation of the Date to convert and format\n * @param String | number} date String representation of the Date to convert and format\n * @returns human readable date/time String converted to user time zone\n */\nexport const formatLocalDateTimeString = (date: string, showTime: boolean) =>\n showTime ? formatDateTimeString(date, true) : formatDateString(date, true);\n\nexport const formatFileSize = (bytes: number, decimals = 1): string => {\n const safeBytes = Number.isFinite(bytes) && bytes >= 0 ? bytes : 0;\n const safeDecimals =\n Number.isFinite(decimals) && decimals >= 0 ? Math.floor(decimals) : 0;\n\n return filesize(safeBytes, {\n output: \"string\",\n base: 2,\n standard: \"iec\",\n round: safeDecimals,\n pad: true,\n }) as string;\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"format-ra_vlnN7.js","sources":["../../../node_modules/.pnpm/filesize@10.0.6/node_modules/filesize/dist/filesize.esm.js","../../../node_modules/.pnpm/@knime+utils@1.11.1_consola@3.4.2/node_modules/@knime/utils/src/localTimezone.ts","../../../node_modules/.pnpm/@knime+utils@1.11.1_consola@3.4.2/node_modules/@knime/utils/src/format.ts"],"sourcesContent":["/**\r\n * filesize\r\n *\r\n * @copyright 2022 Jason Mulligan <jason.mulligan@avoidwork.com>\r\n * @license BSD-3-Clause\r\n * @version 10.0.6\r\n */\r\nconst ARRAY = \"array\";\r\nconst BIT = \"bit\";\r\nconst BITS = \"bits\";\r\nconst BYTE = \"byte\";\r\nconst BYTES = \"bytes\";\r\nconst EMPTY = \"\";\r\nconst EXPONENT = \"exponent\";\r\nconst FUNCTION = \"function\";\r\nconst IEC = \"iec\";\r\nconst INVALID_NUMBER = \"Invalid number\";\r\nconst INVALID_ROUND = \"Invalid rounding method\";\r\nconst JEDEC = \"jedec\";\r\nconst OBJECT = \"object\";\r\nconst PERIOD = \".\";\r\nconst ROUND = \"round\";\r\nconst S = \"s\";\r\nconst SI_KBIT = \"kbit\";\r\nconst SI_KBYTE = \"kB\";\r\nconst SPACE = \" \";\r\nconst STRING = \"string\";\r\nconst ZERO = \"0\";\r\nconst STRINGS = {\r\n\tsymbol: {\r\n\t\tiec: {\r\n\t\t\tbits: [\"bit\", \"Kibit\", \"Mibit\", \"Gibit\", \"Tibit\", \"Pibit\", \"Eibit\", \"Zibit\", \"Yibit\"],\r\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\r\n\t\t},\r\n\t\tjedec: {\r\n\t\t\tbits: [\"bit\", \"Kbit\", \"Mbit\", \"Gbit\", \"Tbit\", \"Pbit\", \"Ebit\", \"Zbit\", \"Ybit\"],\r\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\r\n\t\t}\r\n\t},\r\n\tfullform: {\r\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\r\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\r\n\t}\r\n};function filesize (arg, {\r\n\tbits = false,\r\n\tpad = false,\r\n\tbase = -1,\r\n\tround = 2,\r\n\tlocale = EMPTY,\r\n\tlocaleOptions = {},\r\n\tseparator = EMPTY,\r\n\tspacer = SPACE,\r\n\tsymbols = {},\r\n\tstandard = EMPTY,\r\n\toutput = STRING,\r\n\tfullform = false,\r\n\tfullforms = [],\r\n\texponent = -1,\r\n\troundingMethod = ROUND,\r\n\tprecision = 0\r\n} = {}) {\r\n\tlet e = exponent,\r\n\t\tnum = Number(arg),\r\n\t\tresult = [],\r\n\t\tval = 0,\r\n\t\tu = EMPTY;\r\n\r\n\t// Sync base & standard\r\n\tif (base === -1 && standard.length === 0) {\r\n\t\tbase = 10;\r\n\t\tstandard = JEDEC;\r\n\t} else if (base === -1 && standard.length > 0) {\r\n\t\tstandard = standard === IEC ? IEC : JEDEC;\r\n\t\tbase = standard === IEC ? 2 : 10;\r\n\t} else {\r\n\t\tbase = base === 2 ? 2 : 10;\r\n\t\tstandard = base === 10 ? JEDEC : standard === JEDEC ? JEDEC : IEC;\r\n\t}\r\n\r\n\tconst ceil = base === 10 ? 1000 : 1024,\r\n\t\tfull = fullform === true,\r\n\t\tneg = num < 0,\r\n\t\troundingFunc = Math[roundingMethod];\r\n\r\n\tif (typeof arg !== \"bigint\" && isNaN(arg)) {\r\n\t\tthrow new TypeError(INVALID_NUMBER);\r\n\t}\r\n\r\n\tif (typeof roundingFunc !== FUNCTION) {\r\n\t\tthrow new TypeError(INVALID_ROUND);\r\n\t}\r\n\r\n\t// Flipping a negative number to determine the size\r\n\tif (neg) {\r\n\t\tnum = -num;\r\n\t}\r\n\r\n\t// Determining the exponent\r\n\tif (e === -1 || isNaN(e)) {\r\n\t\te = Math.floor(Math.log(num) / Math.log(ceil));\r\n\r\n\t\tif (e < 0) {\r\n\t\t\te = 0;\r\n\t\t}\r\n\t}\r\n\r\n\t// Exceeding supported length, time to reduce & multiply\r\n\tif (e > 8) {\r\n\t\tif (precision > 0) {\r\n\t\t\tprecision += 8 - e;\r\n\t\t}\r\n\r\n\t\te = 8;\r\n\t}\r\n\r\n\tif (output === EXPONENT) {\r\n\t\treturn e;\r\n\t}\r\n\r\n\t// Zero is now a special case because bytes divide by 1\r\n\tif (num === 0) {\r\n\t\tresult[0] = 0;\r\n\t\tu = result[1] = STRINGS.symbol[standard][bits ? BITS : BYTES][e];\r\n\t} else {\r\n\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\r\n\r\n\t\tif (bits) {\r\n\t\t\tval = val * 8;\r\n\r\n\t\t\tif (val >= ceil && e < 8) {\r\n\t\t\t\tval = val / ceil;\r\n\t\t\t\te++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst p = Math.pow(10, e > 0 ? round : 0);\r\n\t\tresult[0] = roundingFunc(val * p) / p;\r\n\r\n\t\tif (result[0] === ceil && e < 8 && exponent === -1) {\r\n\t\t\tresult[0] = 1;\r\n\t\t\te++;\r\n\t\t}\r\n\r\n\t\tu = result[1] = base === 10 && e === 1 ? bits ? SI_KBIT : SI_KBYTE : STRINGS.symbol[standard][bits ? BITS : BYTES][e];\r\n\t}\r\n\r\n\t// Decorating a 'diff'\r\n\tif (neg) {\r\n\t\tresult[0] = -result[0];\r\n\t}\r\n\r\n\t// Setting optional precision\r\n\tif (precision > 0) {\r\n\t\tresult[0] = result[0].toPrecision(precision);\r\n\t}\r\n\r\n\t// Applying custom symbol\r\n\tresult[1] = symbols[result[1]] || result[1];\r\n\r\n\tif (locale === true) {\r\n\t\tresult[0] = result[0].toLocaleString();\r\n\t} else if (locale.length > 0) {\r\n\t\tresult[0] = result[0].toLocaleString(locale, localeOptions);\r\n\t} else if (separator.length > 0) {\r\n\t\tresult[0] = result[0].toString().replace(PERIOD, separator);\r\n\t}\r\n\r\n\tif (pad && Number.isInteger(result[0]) === false && round > 0) {\r\n\t\tconst x = separator || PERIOD,\r\n\t\t\ttmp = result[0].toString().split(x),\r\n\t\t\ts = tmp[1] || EMPTY,\r\n\t\t\tl = s.length,\r\n\t\t\tn = round - l;\r\n\r\n\t\tresult[0] = `${tmp[0]}${x}${s.padEnd(l + n, ZERO)}`;\r\n\t}\r\n\r\n\tif (full) {\r\n\t\tresult[1] = fullforms[e] ? fullforms[e] : STRINGS.fullform[standard][e] + (bits ? BIT : BYTE) + (result[0] === 1 ? EMPTY : S);\r\n\t}\r\n\r\n\t// Returning Array, Object, or String (default)\r\n\treturn output === ARRAY ? result : output === OBJECT ? {\r\n\t\tvalue: result[0],\r\n\t\tsymbol: result[1],\r\n\t\texponent: e,\r\n\t\tunit: u\r\n\t} : result.join(spacer);\r\n}\r\n\r\n// Partial application for functional programming\r\nfunction partial ({\r\n\tbits = false,\r\n\tpad = false,\r\n\tbase = -1,\r\n\tround = 2,\r\n\tlocale = EMPTY,\r\n\tlocaleOptions = {},\r\n\tseparator = EMPTY,\r\n\tspacer = SPACE,\r\n\tsymbols = {},\r\n\tstandard = EMPTY,\r\n\toutput = STRING,\r\n\tfullform = false,\r\n\tfullforms = [],\r\n\texponent = -1,\r\n\troundingMethod = ROUND,\r\n\tprecision = 0\r\n} = {}) {\r\n\treturn arg => filesize(arg, {\r\n\t\tbits,\r\n\t\tpad,\r\n\t\tbase,\r\n\t\tround,\r\n\t\tlocale,\r\n\t\tlocaleOptions,\r\n\t\tseparator,\r\n\t\tspacer,\r\n\t\tsymbols,\r\n\t\tstandard,\r\n\t\toutput,\r\n\t\tfullform,\r\n\t\tfullforms,\r\n\t\texponent,\r\n\t\troundingMethod,\r\n\t\tprecision\r\n\t});\r\n}export{filesize,partial};","/**\n * Get the users local timezone.\n *\n * @returns current users timezone (browser based) tz db string (e. g. Europe/Berlin).\n */\n// eslint-disable-next-line new-cap\nexport default () => Intl.DateTimeFormat().resolvedOptions().timeZone;\n","import { filesize } from \"filesize\";\n\nimport getLocalTimeZone from \"./localTimezone\";\n/**\n * Converts the specified date String to human readable text containing the day, month, and year.\n * Example: '2018-07-31T09:44:31+00:00' => 'Jul 31, 2018'\n *\n * @param dateString String representation of the Date to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable date String\n */\nexport const formatDateString = (\n dateString: string | number,\n useTimeZone = false,\n) => {\n const date = new Date(dateString);\n\n // @ts-expect-error Argument of type 'Date' is not assignable to parameter of type 'number'\n if (isNaN(date)) {\n throw Error(\"Invalid Date format\");\n }\n\n const baseDateOptions: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\",\n };\n\n // This only works for the default locale of en-US, as support of other locals in node js might not be available\n // See for example this issue https://github.com/nodejs/node/issues/8500\n const dateOptions: Intl.DateTimeFormatOptions = useTimeZone\n ? { ...baseDateOptions, timeZone: getLocalTimeZone() }\n : baseDateOptions;\n\n return date.toLocaleDateString(\"en-US\", dateOptions);\n};\n\n/**\n * Converts the specified time String to human readable text containing the hour (12-hour) and minute.\n * Example: '2018-07-31T09:44:31+00:00' => '9:44 AM'\n *\n * @param timeString String representation of the Date (including time) to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable time String\n */\nexport const formatTimeString = (\n timeString: string | number,\n useTimeZone = false,\n) => {\n const time = new Date(timeString);\n\n // @ts-expect-error Argument of type 'Date' is not assignable to parameter of type 'number'\n if (isNaN(time)) {\n throw Error(\"Invalid Date format\");\n }\n\n // This only works for the default locale of en-US, as support of other locals in node js might not be available\n // See for example this issue https://github.com/nodejs/node/issues/8500\n const baseTimeOptions: Intl.DateTimeFormatOptions = {\n hour: \"numeric\",\n minute: \"2-digit\",\n };\n\n const timeOptions: Intl.DateTimeFormatOptions = useTimeZone\n ? { ...baseTimeOptions, timeZone: getLocalTimeZone() }\n : baseTimeOptions;\n\n return time.toLocaleTimeString(\"en-US\", timeOptions);\n};\n\n/**\n * Converts the specified time String to human readable text containing the date (day, month, year) and time (hour,\n * minute; 12-hour).\n * Example: '2018-07-31T09:44:31+00:00' => 'Jul 31, 2018 9:44 AM'\n *\n * @param dateTimeString String representation of the Date (including time and date) to format\n * @param useTimeZone to set the timeZone where the user is located, and display local date and time\n * @returns human readable date/time String\n */\nexport const formatDateTimeString = (\n dateTimeString: string | number,\n useTimeZone = false,\n) => {\n return `${formatDateString(dateTimeString, useTimeZone)} ${formatTimeString(\n dateTimeString,\n useTimeZone,\n )}`;\n};\n\n/**\n * Converts the specified date and time to the user time zone with option to display (day, month, year) only or with time (hour,\n * minute; 12-hour).\n *\n * @param showTime String representation of the Date to convert and format\n * @param String | number} date String representation of the Date to convert and format\n * @returns human readable date/time String converted to user time zone\n */\nexport const formatLocalDateTimeString = (date: string, showTime: boolean) =>\n showTime ? formatDateTimeString(date, true) : formatDateString(date, true);\n\nexport const formatFileSize = (bytes: number, decimals = 1): string => {\n const safeBytes = Number.isFinite(bytes) && bytes >= 0 ? bytes : 0;\n const safeDecimals =\n Number.isFinite(decimals) && decimals >= 0 ? Math.floor(decimals) : 0;\n\n return filesize(safeBytes, {\n output: \"string\",\n base: 2,\n standard: \"iec\",\n round: safeDecimals,\n pad: true,\n }) as string;\n};\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,GAAG,GAAG,KAAK,CAAC;AAClB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,IAAI,GAAG,MAAM,CAAC;AACpB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,GAAG,GAAG,KAAK,CAAC;AAClB,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,aAAa,GAAG,yBAAyB,CAAC;AAChD,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,MAAM,GAAG,GAAG,CAAC;AACnB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,CAAC,GAAG,GAAG,CAAC;AACd,MAAM,OAAO,GAAG,MAAM,CAAC;AACvB,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,KAAK,GAAG,GAAG,CAAC;AAClB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,MAAM,OAAO,GAAG;AAChB,CAAC,MAAM,EAAE;AACT,EAAE,GAAG,EAAE;AACP,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AACxF,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AACvE,GAAG;AACH,EAAE,KAAK,EAAE;AACT,GAAG,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAChF,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/D,GAAG;AACH,EAAE;AACF,CAAC,QAAQ,EAAE;AACX,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAC3E,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC9E,EAAE;AACF,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE;AAC1B,CAAC,IAAI,GAAG,KAAK;AACb,CAAC,GAAG,GAAG,KAAK;AACZ,CAAC,IAAI,GAAG,EAAE;AACV,CAAC,KAAK,GAAG,CAAC;AACV,CAAC,MAAM,GAAG,KAAK;AACf,CAAC,aAAa,GAAG,EAAE;AACnB,CAAC,SAAS,GAAG,KAAK;AAClB,CAAC,MAAM,GAAG,KAAK;AACf,CAAC,OAAO,GAAG,EAAE;AACb,CAAC,QAAQ,GAAG,KAAK;AACjB,CAAC,MAAM,GAAG,MAAM;AAChB,CAAC,QAAQ,GAAG,KAAK;AACjB,CAAC,SAAS,GAAG,EAAE;AACf,CAAC,QAAQ,GAAG,EAAE;AACd,CAAC,cAAc,GAAG,KAAK;AACvB,CAAC,SAAS,GAAG,CAAC;AACd,CAAC,GAAG,EAAE,EAAE;AACR,CAAC,IAAI,CAAC,GAAG,QAAQ;AACjB,EAAE,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AACnB,EAAE,MAAM,GAAG,EAAE;AACb,EAAE,GAAG,GAAG,CAAC;AACT,EAAE,CAAC,GAAG,KAAK,CAAC;AACZ;AACA;AACA,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,EAAE,IAAI,GAAG,EAAE,CAAC;AACZ,EAAE,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC,CAAC,MAAM,IAAI,IAAI,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAChD,EAAE,QAAQ,GAAG,QAAQ,KAAK,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;AAC5C,EAAE,IAAI,GAAG,QAAQ,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC,CAAC,MAAM;AACR,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC7B,EAAE,QAAQ,GAAG,IAAI,KAAK,EAAE,GAAG,KAAK,GAAG,QAAQ,KAAK,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;AACpE,CAAC,CAAC;AACF;AACA,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;AACvC,EAAE,IAAI,GAAG,QAAQ,KAAK,IAAI;AAC1B,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AACf,EAAE,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AACtC;AACA,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AAC5C,EAAE,MAAM,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACA,CAAC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AACvC,EAAE,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,GAAG,EAAE;AACV,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3B,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,GAAG,CAAC,GAAG,CAAC,CAAC;AACT,EAAE,CAAC;AACH,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACZ,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE;AACrB,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,EAAE,CAAC;AACH;AACA,EAAE,CAAC,GAAG,CAAC,CAAC;AACR,CAAC,CAAC;AACF;AACA,CAAC,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC1B,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AAChB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC,MAAM;AACR,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE;AACA,EAAE,IAAI,IAAI,EAAE;AACZ,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACjB;AACA,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AAC7B,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AACrB,IAAI,CAAC,EAAE,CAAC;AACR,GAAG,CAAC;AACJ,EAAE,CAAC;AACH;AACA,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5C,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC;AACA,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,EAAE,EAAE;AACtD,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG,CAAC,EAAE,CAAC;AACP,EAAE,CAAC;AACH;AACA,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,GAAG,EAAE;AACV,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE;AACpB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7C;AACA,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;AACtB,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AACzC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAC9D,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF;AACA,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AAChE,EAAE,MAAM,CAAC,GAAG,SAAS,IAAI,MAAM;AAC/B,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK;AACtB,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;AACf,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACjB;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA,CAAC,IAAI,IAAI,EAAE;AACX,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AAChI,CAAC,CAAC;AACF;AACA;AACA,CAAC,OAAO,MAAM,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,KAAK,MAAM,GAAG;AACxD,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAClB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACnB,EAAE,QAAQ,EAAE,CAAC;AACb,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB;;ACtLA,yBAAe,MAAM,IAAA,CAAK,cAAA,EAAe,CAAE,iBAAgB,CAAE,QAAA;;ACKtD,MAAM,gBAAA,GAAmB,CAC9B,UAAA,EACA,WAAA,GAAc,KAAA,KACX;AACH,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,UAAU,CAAA;AAGhC,EAAA,IAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AACf,IAAA,MAAM,MAAM,qBAAqB,CAAA;AAAA,EACnC;AAEA,EAAA,MAAM,eAAA,GAA8C;AAAA,IAClD,GAAA,EAAK,SAAA;AAAA,IACL,KAAA,EAAO,OAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAIA,EAAA,MAAM,WAAA,GAA0C,cAC5C,EAAE,GAAG,iBAAiB,QAAA,EAAU,gBAAA,IAAmB,GACnD,eAAA;AAEJ,EAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,OAAA,EAAS,WAAW,CAAA;AACrD,CAAA;AAUO,MAAM,gBAAA,GAAmB,CAC9B,UAAA,EACA,WAAA,GAAc,KAAA,KACX;AACH,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,UAAU,CAAA;AAGhC,EAAA,IAAI,KAAA,CAAM,IAAI,CAAA,EAAG;AACf,IAAA,MAAM,MAAM,qBAAqB,CAAA;AAAA,EACnC;AAIA,EAAA,MAAM,eAAA,GAA8C;AAAA,IAClD,IAAA,EAAM,SAAA;AAAA,IACN,MAAA,EAAQ;AAAA,GACV;AAEA,EAAA,MAAM,WAAA,GAA0C,cAC5C,EAAE,GAAG,iBAAiB,QAAA,EAAU,gBAAA,IAAmB,GACnD,eAAA;AAEJ,EAAA,OAAO,IAAA,CAAK,kBAAA,CAAmB,OAAA,EAAS,WAAW,CAAA;AACrD,CAAA;AAWO,MAAM,oBAAA,GAAuB,CAClC,cAAA,EACA,WAAA,GAAc,KAAA,KACX;AACH,EAAA,OAAO,CAAA,EAAG,gBAAA,CAAiB,cAAA,EAAgB,WAAW,CAAC,CAAA,CAAA,EAAI,gBAAA;AAAA,IACzD,cAAA;AAAA,IACA;AAAA,GACD,CAAA,CAAA;AACH;AAUO,MAAM,yBAAA,GAA4B,CAAC,IAAA,EAAc,QAAA,KACtD,QAAA,GAAW,oBAAA,CAAqB,IAAA,EAAM,IAAI,CAAA,GAAI,gBAAA,CAAiB,IAAA,EAAM,IAAI;AAEpE,MAAM,cAAA,GAAiB,CAAC,KAAA,EAAe,QAAA,GAAW,CAAA,KAAc;AACrE,EAAA,MAAM,YAAY,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,IAAK,KAAA,IAAS,IAAI,KAAA,GAAQ,CAAA;AACjE,EAAA,MAAM,YAAA,GACJ,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA,IAAK,YAAY,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,QAAQ,CAAA,GAAI,CAAA;AAEtE,EAAA,OAAO,SAAS,SAAA,EAAW;AAAA,IACzB,MAAA,EAAQ,QAAA;AAAA,IACR,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,KAAA;AAAA,IACV,KAAA,EAAO,YAAA;AAAA,IACP,GAAA,EAAK;AAAA,GACN,CAAA;AACH;;;;","x_google_ignoreList":[0,1,2]}
|
|
@@ -12,13 +12,11 @@ type __VLS_PublicProps = {
|
|
|
12
12
|
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
13
13
|
download: (item: DownloadItem) => any;
|
|
14
14
|
close: () => any;
|
|
15
|
-
remove: (item: DownloadItem) => any;
|
|
16
15
|
cancel: (item: DownloadItem) => any;
|
|
17
16
|
"update:expanded": (value: boolean) => any;
|
|
18
17
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
19
18
|
onDownload?: ((item: DownloadItem) => any) | undefined;
|
|
20
19
|
onClose?: (() => any) | undefined;
|
|
21
|
-
onRemove?: ((item: DownloadItem) => any) | undefined;
|
|
22
20
|
onCancel?: ((item: DownloadItem) => any) | undefined;
|
|
23
21
|
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
24
22
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadProgressPanel.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/DownloadProgressPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DownloadProgressPanel.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/DownloadProgressPanel.vue"],"names":[],"mappings":"AAuFA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,KAAK,GAAG;IACX;;OAEG;IACH,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB,CAAC;AACF,KAAK,WAAW,GAAG,KAAK,CAAC;AAuCzB,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,WAAW,CAAC;;;;;;;;;;;;AAqHhB,wBAQG"}
|
|
@@ -4,11 +4,9 @@ type Props = {
|
|
|
4
4
|
};
|
|
5
5
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
6
6
|
download: () => any;
|
|
7
|
-
remove: () => any;
|
|
8
7
|
cancel: () => any;
|
|
9
8
|
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
10
9
|
onDownload?: (() => any) | undefined;
|
|
11
|
-
onRemove?: (() => any) | undefined;
|
|
12
10
|
onCancel?: (() => any) | undefined;
|
|
13
11
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
14
12
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadProgressPanelItem.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/DownloadProgressPanelItem.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DownloadProgressPanelItem.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/download/ui/DownloadProgressPanelItem.vue"],"names":[],"mappings":"AA6FA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;;;;;;;;AAkHF,wBAQG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressList.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressList/ProgressList.vue"],"names":[],"mappings":"AAoBA,iBAAS,cAAc;
|
|
1
|
+
{"version":3,"file":"ProgressList.vue.d.ts","sourceRoot":"","sources":["../../../../../../src/dataTransfer/shared/ui/ProgressList/ProgressList.vue"],"names":[],"mappings":"AAoBA,iBAAS,cAAc;WA6BT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAOD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,0RAMnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -5,12 +5,10 @@ type __VLS_PublicProps = {
|
|
|
5
5
|
} & __VLS_Props;
|
|
6
6
|
declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
7
7
|
close: () => any;
|
|
8
|
-
remove: (item: UploadItem) => any;
|
|
9
8
|
cancel: (item: UploadItem) => any;
|
|
10
9
|
"update:expanded": (value: boolean) => any;
|
|
11
10
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
12
11
|
onClose?: (() => any) | undefined;
|
|
13
|
-
onRemove?: ((item: UploadItem) => any) | undefined;
|
|
14
12
|
onCancel?: ((item: UploadItem) => any) | undefined;
|
|
15
13
|
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
16
14
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadProgressPanel.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/UploadProgressPanel.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UploadProgressPanel.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/UploadProgressPanel.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEpE,KAAK,WAAW,GAAG,wBAAwB,CAAC;AAqC5C,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,WAAW,CAAC;;;;;;;;;;AA0JhB,wBAQG"}
|
|
@@ -2,13 +2,10 @@ import { UploadItem } from './types';
|
|
|
2
2
|
type Props = {
|
|
3
3
|
item: UploadItem;
|
|
4
4
|
allowCancel: boolean;
|
|
5
|
-
allowRemove: boolean;
|
|
6
5
|
};
|
|
7
6
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
-
remove: () => any;
|
|
9
7
|
cancel: () => any;
|
|
10
8
|
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
11
|
-
onRemove?: (() => any) | undefined;
|
|
12
9
|
onCancel?: (() => any) | undefined;
|
|
13
10
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
14
11
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadProgressPanelItem.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/UploadProgressPanelItem.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UploadProgressPanelItem.vue.d.ts","sourceRoot":"","sources":["../../../../../src/dataTransfer/upload/ui/UploadProgressPanelItem.vue"],"names":[],"mappings":"AAyHA,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,SAAS,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;;;;;;AAwIF,wBAQG"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Toast } from './types';
|
|
2
2
|
declare const _default: import('vue').DefineComponent<Toast, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
3
|
-
remove: () => any;
|
|
4
3
|
autoRemove: () => any;
|
|
4
|
+
remove: () => any;
|
|
5
5
|
}, string, import('vue').PublicProps, Readonly<Toast> & Readonly<{
|
|
6
|
-
onRemove?: (() => any) | undefined;
|
|
7
6
|
onAutoRemove?: (() => any) | undefined;
|
|
7
|
+
onRemove?: (() => any) | undefined;
|
|
8
8
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
9
9
|
toastRef: HTMLDivElement;
|
|
10
10
|
}, HTMLDivElement>;
|
package/dist/toasts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toasts.js","sources":["../../../node_modules/.pnpm/@knime+utils@1.11.0_consola@3.4.2/node_modules/@knime/utils/src/capitalize.ts","../../../node_modules/.pnpm/@knime+utils@1.11.0_consola@3.4.2/node_modules/@knime/utils/src/truncateString.ts","../src/toasts/Toast/enums.ts","../src/toasts/ToastStack/injectionKeys.ts","../src/toasts/Toast/ToastButton.vue","../src/toasts/Toast/Toast.vue","../src/toasts/toastService/toastService.ts","../src/toasts/ToastStack/ToastStack.vue"],"sourcesContent":["/**\n * Uppercases first letter of string\n * @param string to be capitalized first string, e.g. \"workflow\"\n * @return Capitalized String, e.g. \"Workflow\"\n */\nexport const capitalize = (input: string) =>\n input.charAt(0).toUpperCase() + input.substring(1);\n\nconst formats = {\n customFormat: (input: string, delimiter: string) =>\n capitalize(input.replace(delimiter, \" \").toLowerCase()),\n\n kebabFormat: (input: string) => formats.customFormat(input, \"-\"),\n snakeFormat: (input: string) => formats.customFormat(input, \"_\"),\n\n camelPascalCase: (input: string) =>\n capitalize(\n (input.match(/([A-Z]?[^A-Z]*)/g) ?? [])\n .slice(0, -1)\n .join(\" \")\n .toLowerCase(),\n ),\n} as const;\n\ntype CaseFormatterOptions = {\n string: string;\n delimiter?: string;\n format?: keyof typeof formats;\n};\n\nexport const caseFormatter = ({\n string,\n delimiter,\n format,\n}: CaseFormatterOptions) => {\n if (delimiter) {\n return formats.customFormat(string, delimiter);\n }\n\n if (format) {\n return formats[format](string, delimiter ?? \"\");\n }\n\n return capitalize(string);\n};\n","const defaultMaxLength = 160;\n\n// truncates a string to a given max length\nexport default (string = \"\", maxLength = defaultMaxLength) => {\n const dots = string.length > maxLength ? \"…\" : \"\";\n return `${string.substring(0, maxLength - 1)}${dots}`;\n};\n","export const toastType = {\n INFO: \"info\",\n SUCCESS: \"success\",\n WARNING: \"warning\",\n ERROR: \"error\",\n} as const;\n\nexport const toastTypes = Object.values(toastType);\n","import type { ComputedRef, InjectionKey } from \"vue\";\n\nexport const TOAST_STACK_ID: InjectionKey<ComputedRef<string>> =\n Symbol(\"toast-stack-id\");\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport {\n KdsButton,\n type KdsIconName,\n KdsLinkButton,\n} from \"@knime/kds-components\";\n\nimport type { ToastButton } from \"./types\";\n\ntype LabelAndIcon =\n | { label: string; leadingIcon?: KdsIconName; ariaLabel?: never }\n | { label?: never; leadingIcon: KdsIconName; ariaLabel: string };\n\nconst props = defineProps<ToastButton>();\n\nconst mergedTo = computed(() => {\n if (props.to) {\n return props.to;\n }\n return props.href;\n});\n\nconst target = computed(() => {\n if (props.href) {\n return \"_blank\";\n }\n return null;\n});\n\nconst callback = computed(() => {\n if (typeof props.callback === \"function\") {\n return props.callback;\n }\n return undefined;\n});\n\nconst labelAndIcon = computed<LabelAndIcon>(() =>\n props.text === undefined\n ? { leadingIcon: props.icon!, ariaLabel: props.ariaLabel }\n : { label: props.text, leadingIcon: props.icon },\n);\n</script>\n\n<template>\n <KdsLinkButton\n v-if=\"mergedTo\"\n variant=\"transparent\"\n size=\"xsmall\"\n :to=\"mergedTo\"\n :target=\"target\"\n :rel=\"target ? 'noopener noreferrer' : null\"\n v-bind=\"labelAndIcon\"\n @click=\"callback\"\n />\n\n <KdsButton\n v-else\n variant=\"transparent\"\n size=\"xsmall\"\n v-bind=\"labelAndIcon\"\n @click=\"callback\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport type { Ref } from \"vue\";\nimport {\n useEventBus,\n useMouseInElement,\n useRafFn,\n useWindowFocus,\n} from \"@vueuse/core\";\n\nimport {\n KdsButton,\n KdsIcon,\n type KdsIconName,\n KdsProgressBar,\n} from \"@knime/kds-components\";\nimport { capitalize, truncateString } from \"@knime/utils\";\n\nimport { TOAST_STACK_ID } from \"../ToastStack/injectionKeys\";\n\nimport ToastButton from \"./ToastButton.vue\";\nimport { toastType } from \"./enums\";\nimport type { KdsToastType, Toast } from \"./types\";\n\nconst MAX_MESSAGE_LENGTH = 160;\n\nconst {\n type = toastType.INFO,\n headline = \"\",\n message = \"\",\n component = null,\n autoRemove = true,\n active = true,\n buttons = [],\n dismissible = true,\n} = defineProps<Toast>();\n\nconst availableHeadline = computed(() => {\n return headline ? headline : capitalize(type);\n});\n\n// Supported toast types and corresponding icons\nconst iconMap: Record<string, KdsIconName> = {\n [toastType.INFO]: \"circle-info\",\n [toastType.ERROR]: \"circle-error\",\n [toastType.SUCCESS]: \"circle-success\",\n [toastType.WARNING]: \"warning\",\n};\nconst typeIndicatorIcon = computed(() => iconMap[type]);\n\n// Colors\nconst colorMap: Record<\n KdsToastType,\n Record<\"textAndIcon\" | \"background\" | \"border\", string>\n> = {\n [toastType.INFO]: {\n textAndIcon: \"var(--kds-color-text-and-icon-info)\",\n background: \"var(--kds-color-background-static-info-muted)\",\n border: \"var(--kds-border-base-info)\",\n },\n [toastType.ERROR]: {\n textAndIcon: \"var(--kds-color-text-and-icon-danger)\",\n background: \"var(--kds-color-background-static-danger-muted)\",\n border: \"var(--kds-border-base-danger)\",\n },\n [toastType.SUCCESS]: {\n textAndIcon: \"var(--kds-color-text-and-icon-success)\",\n background: \"var(--kds-color-background-static-success-muted)\",\n border: \"var(--kds-border-base-success)\",\n },\n [toastType.WARNING]: {\n textAndIcon: \"var(--kds-color-text-and-icon-warning)\",\n background: \"var(--kds-color-background-static-warning-muted)\",\n border: \"var(--kds-border-base-warning)\",\n },\n};\nconst mainColor = computed(() => colorMap[type].textAndIcon);\nconst backgroundColor = computed(() => colorMap[type].background);\nconst borderColor = computed(() => colorMap[type].border);\n\n// Emitted events\nconst emit = defineEmits<{\n remove: [];\n autoRemove: [];\n}>();\n\n// Toast ref\nconst toastRef: Ref<null | HTMLElement> = ref(null);\n\n// Window focus and mouse tracking\nconst focused = useWindowFocus();\nconst { isOutside } = useMouseInElement(toastRef);\nconst shouldPause = computed(() => !focused.value || !isOutside.value);\n\n// Auto-remove progress bar animation\nconst AUTO_REMOVE_DURATION = 7000;\nconst elapsed = ref(0);\nconst percentage = computed(() =>\n Math.max(0, 100 - (elapsed.value / AUTO_REMOVE_DURATION) * 100),\n);\nconst { pause, resume } = useRafFn(\n ({ delta }) => {\n elapsed.value += delta;\n if (elapsed.value >= AUTO_REMOVE_DURATION) {\n pause();\n emit(\"autoRemove\");\n }\n },\n { immediate: false },\n);\nconst play = resume;\nconst reset = () => {\n pause();\n elapsed.value = 0;\n};\n\n// Truncation of long messages\nconst truncatedMessage = computed(() =>\n truncateString(message, MAX_MESSAGE_LENGTH),\n);\nconst isTruncatable = truncatedMessage.value !== message;\nconst isTruncated = ref(isTruncatable);\nconst showMore = () => {\n // TODO HUB-5698: animate toast and stack height when expanding truncated text\n isTruncated.value = false;\n if (toastRef.value !== null) {\n // reset height if it has been set in animateHeightTo\n toastRef.value.style.height = \"unset\";\n }\n};\n\n// Height transformations\nconst nativeHeight: Ref<null | number> = ref(null);\nconst currentHeight: Ref<null | number> = ref(null);\n// Enables communication between toasts within the same ToastStack so they share\n// a height. Only active when this Toast is rendered inside a ToastStack — a\n// standalone Toast skips the bus entirely to avoid cross-instance chatter.\nconst stackId = inject(TOAST_STACK_ID, null);\nconst eventBus = stackId\n ? useEventBus(`new-stack-height-${stackId.value}`)\n : null;\nconst animateHeightTo = (targetHeight: number) => {\n if (toastRef.value !== null) {\n toastRef.value.style.height = `${targetHeight}px`;\n }\n currentHeight.value = targetHeight;\n};\n// Listen to height changes of other toasts and animate height accordingly\neventBus?.on((newStackHeight: unknown) => {\n if (\n typeof newStackHeight === \"number\" &&\n currentHeight.value !== newStackHeight\n ) {\n animateHeightTo(newStackHeight);\n }\n});\n\nonMounted(() => {\n if (toastRef.value !== null) {\n nativeHeight.value = toastRef.value.clientHeight;\n currentHeight.value = toastRef.value.clientHeight;\n }\n eventBus?.emit(currentHeight.value);\n\n if (autoRemove && active) {\n play();\n }\n});\n\nwatch(shouldPause, (shouldPause) => {\n if (!autoRemove || !active) {\n return;\n }\n\n if (shouldPause) {\n pause();\n } else {\n play();\n }\n});\n\nwatch(\n () => active,\n (newValue) => {\n if (newValue) {\n if (nativeHeight.value !== null) {\n animateHeightTo(nativeHeight.value);\n eventBus?.emit(currentHeight.value);\n }\n\n if (autoRemove && !shouldPause.value) {\n play();\n }\n return;\n }\n\n if (isTruncatable) {\n isTruncated.value = true;\n }\n\n if (autoRemove) {\n reset();\n }\n },\n);\n</script>\n\n<template>\n <div ref=\"toastRef\" :class=\"['toast', type, { 'auto-remove': autoRemove }]\">\n <div v-show=\"active\" class=\"container\">\n <div class=\"type-indicator\">\n <KdsIcon :name=\"typeIndicatorIcon\" />\n </div>\n\n <div class=\"content\">\n <div class=\"headline-wrapper\">\n <div class=\"headline\">{{ availableHeadline }}</div>\n\n <KdsButton\n v-if=\"dismissible\"\n data-test-id=\"dismiss\"\n variant=\"transparent\"\n size=\"xsmall\"\n title=\"Dismiss message\"\n ariaLabel=\"Dismiss message\"\n leading-icon=\"x-close\"\n @click=\"emit('remove')\"\n />\n </div>\n\n <div v-if=\"message\" class=\"message\">\n <template v-if=\"isTruncated\">\n {{ truncatedMessage }}\n </template>\n <template v-else>{{ message }}</template>\n </div>\n\n <div v-else-if=\"component\" class=\"message\">\n <component :is=\"component\" @show-more=\"showMore\" />\n </div>\n\n <div v-if=\"isTruncated || buttons.length\" class=\"buttons\">\n <KdsButton\n v-if=\"isTruncated\"\n data-test-id=\"show-more\"\n variant=\"transparent\"\n size=\"xsmall\"\n label=\"Show more\"\n @click=\"showMore\"\n />\n\n <ToastButton\n v-for=\"(button, index) in buttons\"\n v-bind=\"button\"\n :key=\"index\"\n />\n </div>\n </div>\n\n <KdsProgressBar class=\"progress-bar\" :percentage=\"percentage\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.toast {\n --main-color: v-bind(mainColor);\n --background-color: v-bind(backgroundColor);\n --border-color: v-bind(borderColor);\n\n position: relative;\n width: var(--kds-dimension-component-width-25x);\n padding: var(--kds-spacing-container-0-75x) var(--kds-spacing-container-0-75x)\n var(--kds-spacing-container-1x);\n overflow: hidden;\n background-color: var(--background-color);\n border: var(--border-color);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n transition: all 0.3s;\n\n & .container {\n display: flex;\n flex-direction: row;\n gap: var(--kds-spacing-container-0-5x);\n }\n\n & .type-indicator {\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n margin-top: var(--kds-spacing-container-0-12x);\n color: var(--main-color);\n }\n\n & .content {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n max-width: 100%;\n\n & .headline-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--kds-dimension-component-height-1-25x);\n }\n\n & .headline {\n font: var(--kds-font-base-title-small-strong);\n color: var(--kds-color-text-and-icon-neutral);\n }\n\n & .message {\n max-height: var(--kds-dimension-component-height-45x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n overflow-wrap: anywhere;\n white-space: break-spaces;\n }\n\n & .buttons {\n display: flex;\n flex-direction: row;\n gap: var(--kds-spacing-container-0-5x);\n }\n }\n\n & .progress-bar {\n --progress-bar-transition-duration: 0s;\n --progress-bar-foreground-color: var(--main-color);\n\n position: absolute;\n right: calc(var(--kds-spacing-container-0-12x) * -1);\n bottom: 0;\n left: calc(var(--kds-spacing-container-0-12x) * -1);\n display: none;\n width: auto;\n }\n\n &.auto-remove .progress-bar {\n display: initial;\n }\n}\n</style>\n","import type { App, Plugin, Ref } from \"vue\";\nimport { computed, getCurrentInstance, inject, provide, ref } from \"vue\";\nimport { cloneDeep } from \"es-toolkit\";\nimport { uniqueId } from \"es-toolkit/compat\";\n\nimport type { Toast, ToastWithId } from \"../Toast/types\";\n\nimport type {\n ToastService,\n ToastServiceComposableOptions,\n UseToastsOptions,\n} from \"./types\";\n\nexport const defaultToastServiceSymbol = Symbol(\"toast\");\nexport const defaultGlobalPropertyName = \"$toast\";\n\nexport class ToastServiceError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"ToastServiceError\";\n }\n}\n\n/**\n * Each instance of the class is bound to a reactive array of toasts, with which you\n * can interface via the properties of the `ToastService` object.\n *\n * You have the following options to access the toast service:\n * - `provide` the service object to downstream components by using the `useToastService`\n * method in the `setup` of the app's root component;\n * - register the service object as a global property by getting a Plugin object via\n * the `getToastServicePlugin` method, and binding it to the app via `app.use(toastPlugin)`\n * in `main.js/ts`;\n * - get the toast service object directly via `getToastServiceObject` method.\n */\nexport class ToastServiceProvider {\n toasts: Ref<ToastWithId[]> = ref<ToastWithId[]>([]);\n\n show = (toast: Toast): string => {\n const clonedToast = cloneDeep(toast);\n if (clonedToast.deduplicationKey) {\n const previousToast = this.toasts.value.find(\n (toast) => clonedToast.deduplicationKey === toast.deduplicationKey,\n );\n if (previousToast) {\n return previousToast.id!;\n }\n }\n\n const id = uniqueId();\n clonedToast.autoRemove = clonedToast.autoRemove ?? true;\n this.toasts.value.unshift({ ...clonedToast, id });\n\n return id;\n };\n\n remove(id: string): void {\n this.toasts.value = this.toasts.value.filter((toast) => toast.id !== id);\n }\n\n removeBy = (predicate: (toast: ToastWithId) => boolean): void => {\n this.toasts.value = this.toasts.value.filter((toast) => !predicate(toast));\n };\n\n autoRemove = (): void => {\n this.toasts.value = this.toasts.value.filter((toast) => !toast.autoRemove);\n };\n\n removeAll = (): void => {\n this.toasts.value = [];\n };\n\n readonlyToasts = computed(() => this.toasts.value);\n\n toastServiceObject: ToastService = {\n toasts: this.readonlyToasts,\n show: this.show,\n remove: this.remove.bind(this),\n removeBy: this.removeBy.bind(this),\n autoRemove: this.autoRemove,\n removeAll: this.removeAll,\n };\n\n /** Methods for accessing the toast service object */\n\n /**\n * A composable to be used in the app's root component's `setup`. Provides\n * the service object to downstream components of the app via Vue's dependency\n * injection, which can then be accessed via the `useToasts` composable.\n *\n * @example\n * toastServiceProvider.useToastService({ serviceSymbol: Symbol(\"customToastService\") });\n */\n useToastService = ({\n serviceSymbol = defaultToastServiceSymbol,\n }: ToastServiceComposableOptions = {}): void => {\n provide(serviceSymbol, this.toastServiceObject);\n };\n\n /**\n * Returns an object that can be used as a plugin with the `app.use()` syntax.\n * A custom `propertyName` property can be provided to be used as the global\n * property name instead of the default \"$toast\".\n *\n * @example\n * const toastPlugin = toastServiceProvider.getToastServicePlugin();\n * app.use(toastPlugin, {\n * propertyName: \"$customPropertyName\" // \"$toast\" by default\n * })\n */\n getToastServicePlugin = (): Plugin => {\n return {\n install: (app: App, options?: { propertyName?: string }) => {\n const propertyName = options?.propertyName ?? defaultGlobalPropertyName;\n app.config.globalProperties[propertyName] = this.toastServiceObject;\n },\n };\n };\n\n /**\n * Returns the toast service object directly.\n */\n getToastServiceObject = (): ToastService => {\n return this.toastServiceObject;\n };\n}\n\nconst useToastsFromSymbol = (serviceSymbol: symbol): ToastService => {\n const toastService = inject<ToastService | null>(serviceSymbol, null);\n\n if (!toastService) {\n throw new ToastServiceError(\n `No toast service found using the symbol ${serviceSymbol.toString()}.`,\n );\n }\n\n return toastService;\n};\n\nconst useToastsFromGlobalProperty = (propertyName: string): ToastService => {\n const toastService =\n getCurrentInstance()?.appContext.config.globalProperties[propertyName];\n\n if (!toastService) {\n throw new ToastServiceError(\n `No toast service found using the global property name '${propertyName}'.`,\n );\n }\n\n return toastService;\n};\n\n/**\n * Retrieves the toast service object either from the global injection or from the app's\n * global property via the app instance. If you have multiple instances of the toast\n * service in the app, you can use different injection key symbols or global property\n * names to differentiate them.\n *\n * @example\n * import { useToasts } from \"@knime/product-features/toasts\";\n *\n * // Using default options (the app has a shared toast service between components)\n * const { show } = useToasts();\n *\n * // Using a specific symbol (multiple toast services running across the app)\n * const { show } = useToasts({ serviceSymbol: mySpecialSymbol });\n *\n * show({\n * type: \"success\",\n * message: \"I am an example toast.\"\n * });\n */\n\nexport const useToasts = ({\n serviceSymbol,\n propertyName,\n}: UseToastsOptions = {}): ToastService => {\n if (serviceSymbol && propertyName) {\n throw new ToastServiceError(\n \"Please provide either a custom injection key symbol or a custom global property name, but not both.\",\n );\n }\n\n if (!serviceSymbol && !propertyName) {\n try {\n return useToastsFromSymbol(defaultToastServiceSymbol);\n } catch (_error) {\n return useToastsFromGlobalProperty(defaultGlobalPropertyName);\n }\n }\n\n if (serviceSymbol) {\n return useToastsFromSymbol(serviceSymbol);\n }\n\n if (propertyName) {\n return useToastsFromGlobalProperty(propertyName);\n }\n\n throw new ToastServiceError(\"No toast service found.\");\n};\n","<script setup lang=\"ts\">\nimport { computed, provide } from \"vue\";\n\nimport Toast from \"../Toast/Toast.vue\";\nimport { useToasts } from \"../toastService/toastService\";\n\nimport { TOAST_STACK_ID } from \"./injectionKeys\";\nimport type { ToastStackProps } from \"./types\";\n\nconst MAX_TOAST_COUNT = 5;\nconst OFFSET = 4;\n\nconst { serviceSymbol = null, propertyName = null } =\n defineProps<ToastStackProps>();\n\nconst stackIdentifier = computed(() => {\n if (serviceSymbol) {\n return serviceSymbol.toString();\n } else if (propertyName) {\n return propertyName;\n }\n return \"default\";\n});\nprovide(TOAST_STACK_ID, stackIdentifier);\n\n// Inject the toast service (optionally bound to a custom symbol or a global property name)\nconst { toasts, remove, autoRemove } = useToasts({\n serviceSymbol,\n propertyName,\n});\n\n// Compute CSS styles for each toast based on its index in the stack\nconst style = (index: number) => {\n const factor = index < MAX_TOAST_COUNT ? OFFSET : MAX_TOAST_COUNT;\n const opacity = index < MAX_TOAST_COUNT ? null : 0;\n\n return {\n zIndex: -index,\n bottom: `${-factor * index}px`,\n right: `${-factor * index}px`,\n ...(opacity !== null && { opacity }),\n };\n};\n\n// Check if the current toast is the first in the stack (active toast)\nconst isActive = (index: number) => index === 0;\n</script>\n\n<template>\n <transition-group class=\"toast-stack\" tag=\"div\" name=\"toast-stack\">\n <Toast\n v-for=\"(toast, index) in toasts\"\n v-bind=\"toast\"\n :key=\"toast.id\"\n :active=\"isActive(index)\"\n class=\"toast\"\n :style=\"style(index)\"\n @remove=\"remove(toast.id!)\"\n @auto-remove=\"autoRemove()\"\n />\n </transition-group>\n</template>\n\n<style scoped>\n.toast-stack {\n position: fixed;\n bottom: var(--kds-spacing-container-3x);\n left: var(--kds-spacing-container-3x);\n\n & .toast {\n position: absolute;\n max-height: var(--kds-dimension-component-height-20x);\n pointer-events: none;\n\n &:first-child {\n position: relative;\n max-height: 80vh;\n pointer-events: all;\n }\n }\n}\n\n/* Vue's transition group animation behaviour configuration */\n.toast-stack-enter-active,\n.toast-stack-leave-active {\n transition: all 0.3s;\n}\n\n.toast-stack-enter-from,\n.toast-stack-leave-to {\n opacity: 0;\n transform: translateY(75px);\n}\n</style>\n"],"names":["_openBlock","_createBlock","_unref","_mergeProps","shouldPause","_createElementBlock","_normalizeClass","_withDirectives","_createElementVNode","_createVNode","_toDisplayString","_Fragment","_resolveDynamicComponent","_renderList","ToastButton","toast","_TransitionGroup"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"toasts.js","sources":["../../../node_modules/.pnpm/@knime+utils@1.11.1_consola@3.4.2/node_modules/@knime/utils/src/capitalize.ts","../../../node_modules/.pnpm/@knime+utils@1.11.1_consola@3.4.2/node_modules/@knime/utils/src/truncateString.ts","../src/toasts/Toast/enums.ts","../src/toasts/ToastStack/injectionKeys.ts","../src/toasts/Toast/ToastButton.vue","../src/toasts/Toast/Toast.vue","../src/toasts/toastService/toastService.ts","../src/toasts/ToastStack/ToastStack.vue"],"sourcesContent":["/**\n * Uppercases first letter of string\n * @param string to be capitalized first string, e.g. \"workflow\"\n * @return Capitalized String, e.g. \"Workflow\"\n */\nexport const capitalize = (input: string) =>\n input.charAt(0).toUpperCase() + input.substring(1);\n\nconst formats = {\n customFormat: (input: string, delimiter: string) =>\n capitalize(input.replace(delimiter, \" \").toLowerCase()),\n\n kebabFormat: (input: string) => formats.customFormat(input, \"-\"),\n snakeFormat: (input: string) => formats.customFormat(input, \"_\"),\n\n camelPascalCase: (input: string) =>\n capitalize(\n (input.match(/([A-Z]?[^A-Z]*)/g) ?? [])\n .slice(0, -1)\n .join(\" \")\n .toLowerCase(),\n ),\n} as const;\n\ntype CaseFormatterOptions = {\n string: string;\n delimiter?: string;\n format?: keyof typeof formats;\n};\n\nexport const caseFormatter = ({\n string,\n delimiter,\n format,\n}: CaseFormatterOptions) => {\n if (delimiter) {\n return formats.customFormat(string, delimiter);\n }\n\n if (format) {\n return formats[format](string, delimiter ?? \"\");\n }\n\n return capitalize(string);\n};\n","const defaultMaxLength = 160;\n\n// truncates a string to a given max length\nexport default (string = \"\", maxLength = defaultMaxLength) => {\n const dots = string.length > maxLength ? \"…\" : \"\";\n return `${string.substring(0, maxLength - 1)}${dots}`;\n};\n","export const toastType = {\n INFO: \"info\",\n SUCCESS: \"success\",\n WARNING: \"warning\",\n ERROR: \"error\",\n} as const;\n\nexport const toastTypes = Object.values(toastType);\n","import type { ComputedRef, InjectionKey } from \"vue\";\n\nexport const TOAST_STACK_ID: InjectionKey<ComputedRef<string>> =\n Symbol(\"toast-stack-id\");\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport {\n KdsButton,\n type KdsIconName,\n KdsLinkButton,\n} from \"@knime/kds-components\";\n\nimport type { ToastButton } from \"./types\";\n\ntype LabelAndIcon =\n | { label: string; leadingIcon?: KdsIconName; ariaLabel?: never }\n | { label?: never; leadingIcon: KdsIconName; ariaLabel: string };\n\nconst props = defineProps<ToastButton>();\n\nconst mergedTo = computed(() => {\n if (props.to) {\n return props.to;\n }\n return props.href;\n});\n\nconst target = computed(() => {\n if (props.href) {\n return \"_blank\";\n }\n return null;\n});\n\nconst callback = computed(() => {\n if (typeof props.callback === \"function\") {\n return props.callback;\n }\n return undefined;\n});\n\nconst labelAndIcon = computed<LabelAndIcon>(() =>\n props.text === undefined\n ? { leadingIcon: props.icon!, ariaLabel: props.ariaLabel }\n : { label: props.text, leadingIcon: props.icon },\n);\n</script>\n\n<template>\n <KdsLinkButton\n v-if=\"mergedTo\"\n variant=\"transparent\"\n size=\"xsmall\"\n :to=\"mergedTo\"\n :target=\"target\"\n :rel=\"target ? 'noopener noreferrer' : null\"\n v-bind=\"labelAndIcon\"\n @click=\"callback\"\n />\n\n <KdsButton\n v-else\n variant=\"transparent\"\n size=\"xsmall\"\n v-bind=\"labelAndIcon\"\n @click=\"callback\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport type { Ref } from \"vue\";\nimport {\n useEventBus,\n useMouseInElement,\n useRafFn,\n useWindowFocus,\n} from \"@vueuse/core\";\n\nimport {\n KdsButton,\n KdsIcon,\n type KdsIconName,\n KdsProgressBar,\n} from \"@knime/kds-components\";\nimport { capitalize, truncateString } from \"@knime/utils\";\n\nimport { TOAST_STACK_ID } from \"../ToastStack/injectionKeys\";\n\nimport ToastButton from \"./ToastButton.vue\";\nimport { toastType } from \"./enums\";\nimport type { KdsToastType, Toast } from \"./types\";\n\nconst MAX_MESSAGE_LENGTH = 160;\n\nconst {\n type = toastType.INFO,\n headline = \"\",\n message = \"\",\n component = null,\n autoRemove = true,\n active = true,\n buttons = [],\n dismissible = true,\n} = defineProps<Toast>();\n\nconst availableHeadline = computed(() => {\n return headline ? headline : capitalize(type);\n});\n\n// Supported toast types and corresponding icons\nconst iconMap: Record<string, KdsIconName> = {\n [toastType.INFO]: \"circle-info\",\n [toastType.ERROR]: \"circle-error\",\n [toastType.SUCCESS]: \"circle-success\",\n [toastType.WARNING]: \"warning\",\n};\nconst typeIndicatorIcon = computed(() => iconMap[type]);\n\n// Colors\nconst colorMap: Record<\n KdsToastType,\n Record<\"textAndIcon\" | \"background\" | \"border\", string>\n> = {\n [toastType.INFO]: {\n textAndIcon: \"var(--kds-color-text-and-icon-info)\",\n background: \"var(--kds-color-background-static-info-muted)\",\n border: \"var(--kds-border-base-info)\",\n },\n [toastType.ERROR]: {\n textAndIcon: \"var(--kds-color-text-and-icon-danger)\",\n background: \"var(--kds-color-background-static-danger-muted)\",\n border: \"var(--kds-border-base-danger)\",\n },\n [toastType.SUCCESS]: {\n textAndIcon: \"var(--kds-color-text-and-icon-success)\",\n background: \"var(--kds-color-background-static-success-muted)\",\n border: \"var(--kds-border-base-success)\",\n },\n [toastType.WARNING]: {\n textAndIcon: \"var(--kds-color-text-and-icon-warning)\",\n background: \"var(--kds-color-background-static-warning-muted)\",\n border: \"var(--kds-border-base-warning)\",\n },\n};\nconst mainColor = computed(() => colorMap[type].textAndIcon);\nconst backgroundColor = computed(() => colorMap[type].background);\nconst borderColor = computed(() => colorMap[type].border);\n\n// Emitted events\nconst emit = defineEmits<{\n remove: [];\n autoRemove: [];\n}>();\n\n// Toast ref\nconst toastRef: Ref<null | HTMLElement> = ref(null);\n\n// Window focus and mouse tracking\nconst focused = useWindowFocus();\nconst { isOutside } = useMouseInElement(toastRef);\nconst shouldPause = computed(() => !focused.value || !isOutside.value);\n\n// Auto-remove progress bar animation\nconst AUTO_REMOVE_DURATION = 7000;\nconst elapsed = ref(0);\nconst percentage = computed(() =>\n Math.max(0, 100 - (elapsed.value / AUTO_REMOVE_DURATION) * 100),\n);\nconst { pause, resume } = useRafFn(\n ({ delta }) => {\n elapsed.value += delta;\n if (elapsed.value >= AUTO_REMOVE_DURATION) {\n pause();\n emit(\"autoRemove\");\n }\n },\n { immediate: false },\n);\nconst play = resume;\nconst reset = () => {\n pause();\n elapsed.value = 0;\n};\n\n// Truncation of long messages\nconst truncatedMessage = computed(() =>\n truncateString(message, MAX_MESSAGE_LENGTH),\n);\nconst isTruncatable = truncatedMessage.value !== message;\nconst isTruncated = ref(isTruncatable);\nconst showMore = () => {\n // TODO HUB-5698: animate toast and stack height when expanding truncated text\n isTruncated.value = false;\n if (toastRef.value !== null) {\n // reset height if it has been set in animateHeightTo\n toastRef.value.style.height = \"unset\";\n }\n};\n\n// Height transformations\nconst nativeHeight: Ref<null | number> = ref(null);\nconst currentHeight: Ref<null | number> = ref(null);\n// Enables communication between toasts within the same ToastStack so they share\n// a height. Only active when this Toast is rendered inside a ToastStack — a\n// standalone Toast skips the bus entirely to avoid cross-instance chatter.\nconst stackId = inject(TOAST_STACK_ID, null);\nconst eventBus = stackId\n ? useEventBus(`new-stack-height-${stackId.value}`)\n : null;\nconst animateHeightTo = (targetHeight: number) => {\n if (toastRef.value !== null) {\n toastRef.value.style.height = `${targetHeight}px`;\n }\n currentHeight.value = targetHeight;\n};\n// Listen to height changes of other toasts and animate height accordingly\neventBus?.on((newStackHeight: unknown) => {\n if (\n typeof newStackHeight === \"number\" &&\n currentHeight.value !== newStackHeight\n ) {\n animateHeightTo(newStackHeight);\n }\n});\n\nonMounted(() => {\n if (toastRef.value !== null) {\n nativeHeight.value = toastRef.value.clientHeight;\n currentHeight.value = toastRef.value.clientHeight;\n }\n eventBus?.emit(currentHeight.value);\n\n if (autoRemove && active) {\n play();\n }\n});\n\nwatch(shouldPause, (shouldPause) => {\n if (!autoRemove || !active) {\n return;\n }\n\n if (shouldPause) {\n pause();\n } else {\n play();\n }\n});\n\nwatch(\n () => active,\n (newValue) => {\n if (newValue) {\n if (nativeHeight.value !== null) {\n animateHeightTo(nativeHeight.value);\n eventBus?.emit(currentHeight.value);\n }\n\n if (autoRemove && !shouldPause.value) {\n play();\n }\n return;\n }\n\n if (isTruncatable) {\n isTruncated.value = true;\n }\n\n if (autoRemove) {\n reset();\n }\n },\n);\n</script>\n\n<template>\n <div ref=\"toastRef\" :class=\"['toast', type, { 'auto-remove': autoRemove }]\">\n <div v-show=\"active\" class=\"container\">\n <div class=\"type-indicator\">\n <KdsIcon :name=\"typeIndicatorIcon\" />\n </div>\n\n <div class=\"content\">\n <div class=\"headline-wrapper\">\n <div class=\"headline\">{{ availableHeadline }}</div>\n\n <KdsButton\n v-if=\"dismissible\"\n data-test-id=\"dismiss\"\n variant=\"transparent\"\n size=\"xsmall\"\n title=\"Dismiss message\"\n ariaLabel=\"Dismiss message\"\n leading-icon=\"x-close\"\n @click=\"emit('remove')\"\n />\n </div>\n\n <div v-if=\"message\" class=\"message\">\n <template v-if=\"isTruncated\">\n {{ truncatedMessage }}\n </template>\n <template v-else>{{ message }}</template>\n </div>\n\n <div v-else-if=\"component\" class=\"message\">\n <component :is=\"component\" @show-more=\"showMore\" />\n </div>\n\n <div v-if=\"isTruncated || buttons.length\" class=\"buttons\">\n <KdsButton\n v-if=\"isTruncated\"\n data-test-id=\"show-more\"\n variant=\"transparent\"\n size=\"xsmall\"\n label=\"Show more\"\n @click=\"showMore\"\n />\n\n <ToastButton\n v-for=\"(button, index) in buttons\"\n v-bind=\"button\"\n :key=\"index\"\n />\n </div>\n </div>\n\n <KdsProgressBar class=\"progress-bar\" :percentage=\"percentage\" />\n </div>\n </div>\n</template>\n\n<style scoped>\n.toast {\n --main-color: v-bind(mainColor);\n --background-color: v-bind(backgroundColor);\n --border-color: v-bind(borderColor);\n\n position: relative;\n width: var(--kds-dimension-component-width-25x);\n padding: var(--kds-spacing-container-0-75x) var(--kds-spacing-container-0-75x)\n var(--kds-spacing-container-1x);\n overflow: hidden;\n background-color: var(--background-color);\n border: var(--border-color);\n border-radius: var(--kds-border-radius-container-0-37x);\n box-shadow: var(--kds-elevation-level-3);\n transition: all 0.3s;\n\n & .container {\n display: flex;\n flex-direction: row;\n gap: var(--kds-spacing-container-0-5x);\n }\n\n & .type-indicator {\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n margin-top: var(--kds-spacing-container-0-12x);\n color: var(--main-color);\n }\n\n & .content {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n gap: var(--kds-spacing-container-0-5x);\n max-width: 100%;\n\n & .headline-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: var(--kds-dimension-component-height-1-25x);\n }\n\n & .headline {\n font: var(--kds-font-base-title-small-strong);\n color: var(--kds-color-text-and-icon-neutral);\n }\n\n & .message {\n max-height: var(--kds-dimension-component-height-45x);\n font: var(--kds-font-base-body-small);\n color: var(--kds-color-text-and-icon-neutral);\n overflow-wrap: anywhere;\n white-space: break-spaces;\n }\n\n & .buttons {\n display: flex;\n flex-direction: row;\n gap: var(--kds-spacing-container-0-5x);\n }\n }\n\n & .progress-bar {\n --progress-bar-transition-duration: 0s;\n --progress-bar-foreground-color: var(--main-color);\n\n position: absolute;\n right: calc(var(--kds-spacing-container-0-12x) * -1);\n bottom: 0;\n left: calc(var(--kds-spacing-container-0-12x) * -1);\n display: none;\n width: auto;\n }\n\n &.auto-remove .progress-bar {\n display: initial;\n }\n}\n</style>\n","import type { App, Plugin, Ref } from \"vue\";\nimport { computed, getCurrentInstance, inject, provide, ref } from \"vue\";\nimport { cloneDeep } from \"es-toolkit\";\nimport { uniqueId } from \"es-toolkit/compat\";\n\nimport type { Toast, ToastWithId } from \"../Toast/types\";\n\nimport type {\n ToastService,\n ToastServiceComposableOptions,\n UseToastsOptions,\n} from \"./types\";\n\nexport const defaultToastServiceSymbol = Symbol(\"toast\");\nexport const defaultGlobalPropertyName = \"$toast\";\n\nexport class ToastServiceError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"ToastServiceError\";\n }\n}\n\n/**\n * Each instance of the class is bound to a reactive array of toasts, with which you\n * can interface via the properties of the `ToastService` object.\n *\n * You have the following options to access the toast service:\n * - `provide` the service object to downstream components by using the `useToastService`\n * method in the `setup` of the app's root component;\n * - register the service object as a global property by getting a Plugin object via\n * the `getToastServicePlugin` method, and binding it to the app via `app.use(toastPlugin)`\n * in `main.js/ts`;\n * - get the toast service object directly via `getToastServiceObject` method.\n */\nexport class ToastServiceProvider {\n toasts: Ref<ToastWithId[]> = ref<ToastWithId[]>([]);\n\n show = (toast: Toast): string => {\n const clonedToast = cloneDeep(toast);\n if (clonedToast.deduplicationKey) {\n const previousToast = this.toasts.value.find(\n (toast) => clonedToast.deduplicationKey === toast.deduplicationKey,\n );\n if (previousToast) {\n return previousToast.id!;\n }\n }\n\n const id = uniqueId();\n clonedToast.autoRemove = clonedToast.autoRemove ?? true;\n this.toasts.value.unshift({ ...clonedToast, id });\n\n return id;\n };\n\n remove(id: string): void {\n this.toasts.value = this.toasts.value.filter((toast) => toast.id !== id);\n }\n\n removeBy = (predicate: (toast: ToastWithId) => boolean): void => {\n this.toasts.value = this.toasts.value.filter((toast) => !predicate(toast));\n };\n\n autoRemove = (): void => {\n this.toasts.value = this.toasts.value.filter((toast) => !toast.autoRemove);\n };\n\n removeAll = (): void => {\n this.toasts.value = [];\n };\n\n readonlyToasts = computed(() => this.toasts.value);\n\n toastServiceObject: ToastService = {\n toasts: this.readonlyToasts,\n show: this.show,\n remove: this.remove.bind(this),\n removeBy: this.removeBy.bind(this),\n autoRemove: this.autoRemove,\n removeAll: this.removeAll,\n };\n\n /** Methods for accessing the toast service object */\n\n /**\n * A composable to be used in the app's root component's `setup`. Provides\n * the service object to downstream components of the app via Vue's dependency\n * injection, which can then be accessed via the `useToasts` composable.\n *\n * @example\n * toastServiceProvider.useToastService({ serviceSymbol: Symbol(\"customToastService\") });\n */\n useToastService = ({\n serviceSymbol = defaultToastServiceSymbol,\n }: ToastServiceComposableOptions = {}): void => {\n provide(serviceSymbol, this.toastServiceObject);\n };\n\n /**\n * Returns an object that can be used as a plugin with the `app.use()` syntax.\n * A custom `propertyName` property can be provided to be used as the global\n * property name instead of the default \"$toast\".\n *\n * @example\n * const toastPlugin = toastServiceProvider.getToastServicePlugin();\n * app.use(toastPlugin, {\n * propertyName: \"$customPropertyName\" // \"$toast\" by default\n * })\n */\n getToastServicePlugin = (): Plugin => {\n return {\n install: (app: App, options?: { propertyName?: string }) => {\n const propertyName = options?.propertyName ?? defaultGlobalPropertyName;\n app.config.globalProperties[propertyName] = this.toastServiceObject;\n },\n };\n };\n\n /**\n * Returns the toast service object directly.\n */\n getToastServiceObject = (): ToastService => {\n return this.toastServiceObject;\n };\n}\n\nconst useToastsFromSymbol = (serviceSymbol: symbol): ToastService => {\n const toastService = inject<ToastService | null>(serviceSymbol, null);\n\n if (!toastService) {\n throw new ToastServiceError(\n `No toast service found using the symbol ${serviceSymbol.toString()}.`,\n );\n }\n\n return toastService;\n};\n\nconst useToastsFromGlobalProperty = (propertyName: string): ToastService => {\n const toastService =\n getCurrentInstance()?.appContext.config.globalProperties[propertyName];\n\n if (!toastService) {\n throw new ToastServiceError(\n `No toast service found using the global property name '${propertyName}'.`,\n );\n }\n\n return toastService;\n};\n\n/**\n * Retrieves the toast service object either from the global injection or from the app's\n * global property via the app instance. If you have multiple instances of the toast\n * service in the app, you can use different injection key symbols or global property\n * names to differentiate them.\n *\n * @example\n * import { useToasts } from \"@knime/product-features/toasts\";\n *\n * // Using default options (the app has a shared toast service between components)\n * const { show } = useToasts();\n *\n * // Using a specific symbol (multiple toast services running across the app)\n * const { show } = useToasts({ serviceSymbol: mySpecialSymbol });\n *\n * show({\n * type: \"success\",\n * message: \"I am an example toast.\"\n * });\n */\n\nexport const useToasts = ({\n serviceSymbol,\n propertyName,\n}: UseToastsOptions = {}): ToastService => {\n if (serviceSymbol && propertyName) {\n throw new ToastServiceError(\n \"Please provide either a custom injection key symbol or a custom global property name, but not both.\",\n );\n }\n\n if (!serviceSymbol && !propertyName) {\n try {\n return useToastsFromSymbol(defaultToastServiceSymbol);\n } catch (_error) {\n return useToastsFromGlobalProperty(defaultGlobalPropertyName);\n }\n }\n\n if (serviceSymbol) {\n return useToastsFromSymbol(serviceSymbol);\n }\n\n if (propertyName) {\n return useToastsFromGlobalProperty(propertyName);\n }\n\n throw new ToastServiceError(\"No toast service found.\");\n};\n","<script setup lang=\"ts\">\nimport { computed, provide } from \"vue\";\n\nimport Toast from \"../Toast/Toast.vue\";\nimport { useToasts } from \"../toastService/toastService\";\n\nimport { TOAST_STACK_ID } from \"./injectionKeys\";\nimport type { ToastStackProps } from \"./types\";\n\nconst MAX_TOAST_COUNT = 5;\nconst OFFSET = 4;\n\nconst { serviceSymbol = null, propertyName = null } =\n defineProps<ToastStackProps>();\n\nconst stackIdentifier = computed(() => {\n if (serviceSymbol) {\n return serviceSymbol.toString();\n } else if (propertyName) {\n return propertyName;\n }\n return \"default\";\n});\nprovide(TOAST_STACK_ID, stackIdentifier);\n\n// Inject the toast service (optionally bound to a custom symbol or a global property name)\nconst { toasts, remove, autoRemove } = useToasts({\n serviceSymbol,\n propertyName,\n});\n\n// Compute CSS styles for each toast based on its index in the stack\nconst style = (index: number) => {\n const factor = index < MAX_TOAST_COUNT ? OFFSET : MAX_TOAST_COUNT;\n const opacity = index < MAX_TOAST_COUNT ? null : 0;\n\n return {\n zIndex: -index,\n bottom: `${-factor * index}px`,\n right: `${-factor * index}px`,\n ...(opacity !== null && { opacity }),\n };\n};\n\n// Check if the current toast is the first in the stack (active toast)\nconst isActive = (index: number) => index === 0;\n</script>\n\n<template>\n <transition-group class=\"toast-stack\" tag=\"div\" name=\"toast-stack\">\n <Toast\n v-for=\"(toast, index) in toasts\"\n v-bind=\"toast\"\n :key=\"toast.id\"\n :active=\"isActive(index)\"\n class=\"toast\"\n :style=\"style(index)\"\n @remove=\"remove(toast.id!)\"\n @auto-remove=\"autoRemove()\"\n />\n </transition-group>\n</template>\n\n<style scoped>\n.toast-stack {\n position: fixed;\n bottom: var(--kds-spacing-container-3x);\n left: var(--kds-spacing-container-3x);\n\n & .toast {\n position: absolute;\n max-height: var(--kds-dimension-component-height-20x);\n pointer-events: none;\n\n &:first-child {\n position: relative;\n max-height: 80vh;\n pointer-events: all;\n }\n }\n}\n\n/* Vue's transition group animation behaviour configuration */\n.toast-stack-enter-active,\n.toast-stack-leave-active {\n transition: all 0.3s;\n}\n\n.toast-stack-enter-from,\n.toast-stack-leave-to {\n opacity: 0;\n transform: translateY(75px);\n}\n</style>\n"],"names":["_openBlock","_createBlock","_unref","_mergeProps","shouldPause","_createElementBlock","_normalizeClass","_withDirectives","_createElementVNode","_createVNode","_toDisplayString","_Fragment","_resolveDynamicComponent","_renderList","ToastButton","toast","_TransitionGroup"],"mappings":"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","x_google_ignoreList":[0,1]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@knime/product-features",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Package containing composition patterns of KDS Components and KNIME business logic",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,39 +48,39 @@
|
|
|
48
48
|
],
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@vueuse/core": "~13.8.0",
|
|
51
|
-
"es-toolkit": "^1.
|
|
51
|
+
"es-toolkit": "^1.47.1",
|
|
52
52
|
"ofetch": "^1.5.1",
|
|
53
53
|
"vue": "~3.5.0",
|
|
54
|
-
"@knime/kds-components": "^1.1.
|
|
55
|
-
"@knime/kds-styles": "^1.1.
|
|
54
|
+
"@knime/kds-components": "^1.1.1",
|
|
55
|
+
"@knime/kds-styles": "^1.1.1"
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@knime/utils": "^1.11.
|
|
58
|
+
"@knime/utils": "^1.11.1",
|
|
59
59
|
"consola": "^3.4.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@storybook/addon-docs": "^10.4.
|
|
63
|
-
"@storybook/vue3-vite": "^10.4.
|
|
64
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
65
|
-
"@vue/test-utils": "^2.4.
|
|
62
|
+
"@storybook/addon-docs": "^10.4.6",
|
|
63
|
+
"@storybook/vue3-vite": "^10.4.6",
|
|
64
|
+
"@vitejs/plugin-vue": "^6.0.7",
|
|
65
|
+
"@vue/test-utils": "^2.4.11",
|
|
66
66
|
"@vue/tsconfig": "^0.9.1",
|
|
67
|
-
"@vueuse/core": "
|
|
68
|
-
"es-toolkit": "^1.
|
|
67
|
+
"@vueuse/core": "~14.3.0",
|
|
68
|
+
"es-toolkit": "^1.47.1",
|
|
69
69
|
"flush-promises": "^1.0.2",
|
|
70
70
|
"mock-xmlhttprequest": "^8.4.1",
|
|
71
71
|
"ofetch": "^1.5.1",
|
|
72
|
-
"prettier": "3.8.
|
|
72
|
+
"prettier": "3.8.4",
|
|
73
73
|
"prettier-plugin-vue": "^1.1.6",
|
|
74
|
-
"storybook": "^10.4.
|
|
74
|
+
"storybook": "^10.4.6",
|
|
75
75
|
"ts-morph": "^28.0.0",
|
|
76
76
|
"vite": "^7.3.2",
|
|
77
77
|
"vite-plugin-dts": "^4.5.4",
|
|
78
78
|
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
79
79
|
"vite-svg-loader": "^5.1.1",
|
|
80
|
-
"vue": "3.5.
|
|
80
|
+
"vue": "3.5.38",
|
|
81
81
|
"vue-tsc": "^3.3.4",
|
|
82
|
-
"@knime/kds-components": "^1.1.
|
|
83
|
-
"@knime/kds-styles": "^1.1.
|
|
82
|
+
"@knime/kds-components": "^1.1.1",
|
|
83
|
+
"@knime/kds-styles": "^1.1.1"
|
|
84
84
|
},
|
|
85
85
|
"engines": {
|
|
86
86
|
"node": "24.10.0",
|