@cute-widgets/base 20.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +191 -0
  3. package/README.md +190 -0
  4. package/abstract/index.d.ts +327 -0
  5. package/alert/index.d.ts +68 -0
  6. package/autocomplete/index.d.ts +442 -0
  7. package/badge/index.d.ts +26 -0
  8. package/bottom-sheet/index.d.ts +231 -0
  9. package/button/index.d.ts +182 -0
  10. package/button-toggle/index.d.ts +225 -0
  11. package/card/index.d.ts +163 -0
  12. package/checkbox/index.d.ts +174 -0
  13. package/chips/index.d.ts +963 -0
  14. package/collapse/index.d.ts +97 -0
  15. package/core/animation/index.d.ts +43 -0
  16. package/core/datetime/index.d.ts +404 -0
  17. package/core/directives/index.d.ts +168 -0
  18. package/core/error/index.d.ts +74 -0
  19. package/core/index.d.ts +1039 -0
  20. package/core/interfaces/index.d.ts +114 -0
  21. package/core/layout/index.d.ts +53 -0
  22. package/core/line/index.d.ts +37 -0
  23. package/core/nav/index.d.ts +321 -0
  24. package/core/observers/index.d.ts +124 -0
  25. package/core/option/index.d.ts +185 -0
  26. package/core/pipes/index.d.ts +53 -0
  27. package/core/ripple/index.d.ts +66 -0
  28. package/core/testing/index.d.ts +154 -0
  29. package/core/theming/index.d.ts +118 -0
  30. package/core/types/index.d.ts +53 -0
  31. package/core/utils/index.d.ts +129 -0
  32. package/cute-widgets-base-20.0.1.tgz +0 -0
  33. package/datepicker/index.d.ts +1817 -0
  34. package/dialog/index.d.ts +484 -0
  35. package/divider/index.d.ts +24 -0
  36. package/expansion/README.md +8 -0
  37. package/expansion/index.d.ts +308 -0
  38. package/fesm2022/cute-widgets-base-abstract.mjs +547 -0
  39. package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -0
  40. package/fesm2022/cute-widgets-base-alert.mjs +198 -0
  41. package/fesm2022/cute-widgets-base-alert.mjs.map +1 -0
  42. package/fesm2022/cute-widgets-base-autocomplete.mjs +1217 -0
  43. package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -0
  44. package/fesm2022/cute-widgets-base-badge.mjs +75 -0
  45. package/fesm2022/cute-widgets-base-badge.mjs.map +1 -0
  46. package/fesm2022/cute-widgets-base-bottom-sheet.mjs +416 -0
  47. package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -0
  48. package/fesm2022/cute-widgets-base-button-toggle.mjs +640 -0
  49. package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -0
  50. package/fesm2022/cute-widgets-base-button.mjs +546 -0
  51. package/fesm2022/cute-widgets-base-button.mjs.map +1 -0
  52. package/fesm2022/cute-widgets-base-card.mjs +471 -0
  53. package/fesm2022/cute-widgets-base-card.mjs.map +1 -0
  54. package/fesm2022/cute-widgets-base-checkbox.mjs +390 -0
  55. package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -0
  56. package/fesm2022/cute-widgets-base-chips.mjs +2360 -0
  57. package/fesm2022/cute-widgets-base-chips.mjs.map +1 -0
  58. package/fesm2022/cute-widgets-base-collapse.mjs +259 -0
  59. package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -0
  60. package/fesm2022/cute-widgets-base-core-animation.mjs +53 -0
  61. package/fesm2022/cute-widgets-base-core-animation.mjs.map +1 -0
  62. package/fesm2022/cute-widgets-base-core-datetime.mjs +568 -0
  63. package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -0
  64. package/fesm2022/cute-widgets-base-core-directives.mjs +404 -0
  65. package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -0
  66. package/fesm2022/cute-widgets-base-core-error.mjs +105 -0
  67. package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -0
  68. package/fesm2022/cute-widgets-base-core-interfaces.mjs +22 -0
  69. package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -0
  70. package/fesm2022/cute-widgets-base-core-layout.mjs +74 -0
  71. package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -0
  72. package/fesm2022/cute-widgets-base-core-line.mjs +87 -0
  73. package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -0
  74. package/fesm2022/cute-widgets-base-core-nav.mjs +863 -0
  75. package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -0
  76. package/fesm2022/cute-widgets-base-core-observers.mjs +304 -0
  77. package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -0
  78. package/fesm2022/cute-widgets-base-core-option.mjs +373 -0
  79. package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -0
  80. package/fesm2022/cute-widgets-base-core-pipes.mjs +97 -0
  81. package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -0
  82. package/fesm2022/cute-widgets-base-core-ripple.mjs +172 -0
  83. package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -0
  84. package/fesm2022/cute-widgets-base-core-testing.mjs +210 -0
  85. package/fesm2022/cute-widgets-base-core-testing.mjs.map +1 -0
  86. package/fesm2022/cute-widgets-base-core-theming.mjs +314 -0
  87. package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -0
  88. package/fesm2022/cute-widgets-base-core-types.mjs +22 -0
  89. package/fesm2022/cute-widgets-base-core-types.mjs.map +1 -0
  90. package/fesm2022/cute-widgets-base-core-utils.mjs +257 -0
  91. package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -0
  92. package/fesm2022/cute-widgets-base-core.mjs +1600 -0
  93. package/fesm2022/cute-widgets-base-core.mjs.map +1 -0
  94. package/fesm2022/cute-widgets-base-datepicker.mjs +4827 -0
  95. package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -0
  96. package/fesm2022/cute-widgets-base-dialog.mjs +1046 -0
  97. package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -0
  98. package/fesm2022/cute-widgets-base-divider.mjs +86 -0
  99. package/fesm2022/cute-widgets-base-divider.mjs.map +1 -0
  100. package/fesm2022/cute-widgets-base-expansion.mjs +623 -0
  101. package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -0
  102. package/fesm2022/cute-widgets-base-form-field.mjs +969 -0
  103. package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -0
  104. package/fesm2022/cute-widgets-base-grid-list.mjs +715 -0
  105. package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -0
  106. package/fesm2022/cute-widgets-base-icon.mjs +1105 -0
  107. package/fesm2022/cute-widgets-base-icon.mjs.map +1 -0
  108. package/fesm2022/cute-widgets-base-input.mjs +726 -0
  109. package/fesm2022/cute-widgets-base-input.mjs.map +1 -0
  110. package/fesm2022/cute-widgets-base-layout-container.mjs +95 -0
  111. package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -0
  112. package/fesm2022/cute-widgets-base-layout-stack.mjs +166 -0
  113. package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -0
  114. package/fesm2022/cute-widgets-base-layout.mjs +250 -0
  115. package/fesm2022/cute-widgets-base-layout.mjs.map +1 -0
  116. package/fesm2022/cute-widgets-base-list.mjs +1557 -0
  117. package/fesm2022/cute-widgets-base-list.mjs.map +1 -0
  118. package/fesm2022/cute-widgets-base-menu.mjs +1283 -0
  119. package/fesm2022/cute-widgets-base-menu.mjs.map +1 -0
  120. package/fesm2022/cute-widgets-base-navbar.mjs +359 -0
  121. package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -0
  122. package/fesm2022/cute-widgets-base-paginator.mjs +485 -0
  123. package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -0
  124. package/fesm2022/cute-widgets-base-progress.mjs +321 -0
  125. package/fesm2022/cute-widgets-base-progress.mjs.map +1 -0
  126. package/fesm2022/cute-widgets-base-radio.mjs +637 -0
  127. package/fesm2022/cute-widgets-base-radio.mjs.map +1 -0
  128. package/fesm2022/cute-widgets-base-select.mjs +1208 -0
  129. package/fesm2022/cute-widgets-base-select.mjs.map +1 -0
  130. package/fesm2022/cute-widgets-base-sidenav.mjs +1095 -0
  131. package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -0
  132. package/fesm2022/cute-widgets-base-slider.mjs +99 -0
  133. package/fesm2022/cute-widgets-base-slider.mjs.map +1 -0
  134. package/fesm2022/cute-widgets-base-snack-bar.mjs +897 -0
  135. package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -0
  136. package/fesm2022/cute-widgets-base-sort.mjs +639 -0
  137. package/fesm2022/cute-widgets-base-sort.mjs.map +1 -0
  138. package/fesm2022/cute-widgets-base-spinner.mjs +154 -0
  139. package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -0
  140. package/fesm2022/cute-widgets-base-stepper.mjs +673 -0
  141. package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -0
  142. package/fesm2022/cute-widgets-base-table.mjs +1023 -0
  143. package/fesm2022/cute-widgets-base-table.mjs.map +1 -0
  144. package/fesm2022/cute-widgets-base-tabs.mjs +729 -0
  145. package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -0
  146. package/fesm2022/cute-widgets-base-timepicker.mjs +965 -0
  147. package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -0
  148. package/fesm2022/cute-widgets-base-toolbar.mjs +120 -0
  149. package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -0
  150. package/fesm2022/cute-widgets-base-tooltip.mjs +947 -0
  151. package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -0
  152. package/fesm2022/cute-widgets-base-tree.mjs +598 -0
  153. package/fesm2022/cute-widgets-base-tree.mjs.map +1 -0
  154. package/fesm2022/cute-widgets-base.mjs +68 -0
  155. package/fesm2022/cute-widgets-base.mjs.map +1 -0
  156. package/form-field/index.d.ts +401 -0
  157. package/grid-list/index.d.ts +361 -0
  158. package/icon/index.d.ts +477 -0
  159. package/index.d.ts +3 -0
  160. package/input/index.d.ts +256 -0
  161. package/layout/container/index.d.ts +31 -0
  162. package/layout/index.d.ts +78 -0
  163. package/layout/stack/index.d.ts +52 -0
  164. package/list/index.d.ts +659 -0
  165. package/menu/index.d.ts +497 -0
  166. package/navbar/index.d.ts +91 -0
  167. package/package.json +279 -0
  168. package/paginator/index.d.ts +216 -0
  169. package/progress/index.d.ts +130 -0
  170. package/radio/index.d.ts +259 -0
  171. package/select/index.d.ts +426 -0
  172. package/sidenav/index.d.ts +369 -0
  173. package/slider/index.d.ts +48 -0
  174. package/snack-bar/index.d.ts +374 -0
  175. package/sort/index.d.ts +334 -0
  176. package/spinner/index.d.ts +70 -0
  177. package/stepper/index.d.ts +295 -0
  178. package/table/index.d.ts +395 -0
  179. package/tabs/index.d.ts +307 -0
  180. package/timepicker/index.d.ts +350 -0
  181. package/toolbar/index.d.ts +36 -0
  182. package/tooltip/index.d.ts +299 -0
  183. package/tree/index.d.ts +314 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cute-widgets-base-core-utils.mjs","sources":["../../../../projects/cute-widgets/base/core/utils/src/transition.ts","../../../../projects/cute-widgets/base/core/utils/src/token.ts","../../../../projects/cute-widgets/base/core/utils/src/export.ts","../../../../projects/cute-widgets/base/core/utils/src/IdGenerator.ts","../../../../projects/cute-widgets/base/core/utils/src/Scheduler.ts","../../../../projects/cute-widgets/base/core/utils/cute-widgets-base-core-utils.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\n\r\n/**\r\n * Gets transition duration total value\r\n * @param element Source HTML element\r\n * @returns Duration with delay time in milliseconds\r\n */\r\nexport function getOverallTransitionDuration(element: HTMLElement): number {\r\n return getTransitionDelay(element) + getTransitionDuration(element);\r\n}\r\n\r\n/**\r\n * Gets transition duration value\r\n * @param element Source HTML element\r\n * @returns Duration time in milliseconds\r\n */\r\nexport function getTransitionDuration(element: HTMLElement): number {\r\n const {transitionDuration } = window.getComputedStyle(element);\r\n const durationInMilliseconds = transitionDuration.toLowerCase().endsWith(\"ms\");\r\n const transitionDurationMs = parseFloat(transitionDuration) * (durationInMilliseconds ? 1 : 1000);\r\n\r\n return (transitionDurationMs);\r\n}\r\n\r\n/**\r\n * Gets duration to wait before starting transition\r\n * @param element Source HTML element\r\n * @returns Delay time in milliseconds\r\n */\r\nexport function getTransitionDelay(element: HTMLElement): number {\r\n const { transitionDelay} = window.getComputedStyle(element);\r\n const delayInMilliseconds = transitionDelay.toLowerCase().endsWith(\"ms\");\r\n const transitionDelayMs = parseFloat(transitionDelay) * (delayInMilliseconds ? 1 : 1000);\r\n\r\n return (transitionDelayMs);\r\n}\r\n\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {InjectionToken} from '@angular/core';\r\n\r\nexport function createValueToken<T>(value: T): InjectionToken<T> {\r\n return createFactoryToken(() => value);\r\n}\r\n\r\nexport function createFactoryToken<T>(factory: () => T): InjectionToken<T> {\r\n return new InjectionToken<T>(`createFactoryToken`, {factory});\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {ElementRef} from \"@angular/core\";\r\n\r\nexport type ExportOptions = {\r\n filename?: string;\r\n delimiter?: string;\r\n columns?: string[];\r\n}\r\n\r\n/**\r\n * Forcibly starts the process of downloading and saving the file.\r\n * @param blobData Data to save\r\n * @param filename File name to save. Default is `download`.\r\n */\r\nexport function saveAs(blobData: Blob, filename?: string) {\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(blobData);\r\n link.download = filename || \"download\";\r\n link.click();\r\n URL.revokeObjectURL(link.href);\r\n}\r\n\r\n/**\r\n * Exports data from HTML table to MS Excel format text\r\n * @param tableIdOrElem HTML table's `id` value or `ElementRef` object\r\n * @param options Export options\r\n */\r\nexport function exportToExcel(tableIdOrElem: string|ElementRef, options: ExportOptions = {filename: 'records.xls'}) {\r\n let tableElem: HTMLElement|null;\r\n if (typeof tableIdOrElem===\"string\") {\r\n tableElem = document.getElementById(tableIdOrElem);\r\n } else {\r\n tableElem = tableIdOrElem.nativeElement;\r\n }\r\n if (tableElem && tableElem instanceof HTMLTableElement) {\r\n //const tableHTML = encodeURIComponent(tableElem.outerHTML.replace(/ or .*?>/g, '>'));\r\n const tableHTML = tableElem.outerHTML.replace(/ or .*?>/g, '>');\r\n const blobData = new Blob([tableHTML], {type: '{type: application/vnd.ms-excel'});\r\n saveAs(blobData, options?.filename);\r\n }\r\n}\r\n\r\n/**\r\n * Exports data from HTML table to CSV format text\r\n * @param tableIdOrElem HTML table's `id` value or `ElementRef` object\r\n * @param options Export options\r\n */\r\nexport function exportToCSV(tableIdOrElem: string|ElementRef, options: ExportOptions = {filename: 'records.csv'}) {\r\n let tableElem: HTMLElement|null;\r\n if (typeof tableIdOrElem===\"string\") {\r\n tableElem = document.getElementById(tableIdOrElem);\r\n } else {\r\n tableElem = tableIdOrElem.nativeElement;\r\n }\r\n if (tableElem && tableElem instanceof HTMLTableElement) {\r\n const rows = tableElem.querySelectorAll(\"tr\");\r\n let csv: string[] = [];\r\n let keys: number[] = [];\r\n\r\n if (rows.length > 0 && options && options.columns?.length) {\r\n const headers = rows[0].querySelectorAll<HTMLTableColElement>(\"th\");\r\n headers.forEach((header, key) => {\r\n if (options.columns!.findIndex((name) => {\r\n const loweredName = name.toLowerCase();\r\n return header.innerText.toLowerCase() == loweredName || header.classList.contains(\"cdk-column-\"+loweredName);\r\n }) >= 0) {\r\n keys.push(key);\r\n }\r\n });\r\n }\r\n\r\n const appendCells = (cells: HTMLTableColElement[] | NodeListOf<HTMLTableColElement>) => {\r\n const rowText = Array.from(cells).map(cell => cell.innerText);\r\n csv.push(rowText.join(options?.delimiter ?? \",\"));\r\n };\r\n\r\n if (keys.length > 0) {\r\n rows.forEach((row)=>{\r\n const allCells = row.querySelectorAll<HTMLTableColElement>(\"th,td\");\r\n let cells: HTMLTableColElement[] = [];\r\n allCells.forEach((cell, key)=>{\r\n if (keys.indexOf(key) >= 0) {cells.push(cell)}\r\n });\r\n appendCells(cells);\r\n });\r\n } else {\r\n rows.forEach((row)=> {\r\n appendCells( row.querySelectorAll<HTMLTableColElement>(\"th,td\") );\r\n });\r\n }\r\n const blobData = new Blob([csv.join(\"\\n\")], {type: \"text/csv;charset=utf-8;\"});\r\n saveAs(blobData, options?.filename);\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {APP_ID, inject, Injectable} from '@angular/core';\r\n\r\n/**\r\n * Keeps track of the ID count per prefix. This helps us make the IDs a bit more deterministic\r\n * like they were before the service was introduced. Note that ideally we wouldn't have to do\r\n * this, but there are some internal tests that rely on the IDs.\r\n */\r\nconst counters: Record<string, number> = {};\r\n\r\n/** Service that generates unique IDs for DOM nodes. */\r\n@Injectable({providedIn: 'root'})\r\nexport class IdGenerator {\r\n private _appId = inject(APP_ID);\r\n\r\n /**\r\n * Generates a unique ID with a specific prefix.\r\n * @param prefix Prefix to add to the ID.\r\n */\r\n getId(prefix: string): string {\r\n // Omit the app ID if it's the default `ng`. Since the vast majority of pages have one\r\n // Angular app on them, we can reduce the number of breakages by not adding it.\r\n if (this._appId !== 'ng') {\r\n prefix += this._appId;\r\n }\r\n\r\n if (!counters.hasOwnProperty(prefix)) {\r\n counters[prefix] = 0;\r\n }\r\n\r\n return `${prefix}${counters[prefix]++}`;\r\n }\r\n\r\n /**\r\n * Generates UUID (ver.4) string using simple algorithm based on random value only\r\n */\r\n getUUID(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\r\n .replace(/[xy]/g, (c) => {\r\n const r: number = (Math.random() * 16) | 0,\r\n v: number = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\n\r\nexport type TaskPriority = \"user-blocking\"|\"user-visible\"|\"background\";\r\n\r\n/**\r\n * A class with static methods specifically designed for scheduling tasks in the browser.\r\n */\r\nexport class Scheduler {\r\n\r\n /** Yielding to the main thread in the browser. */\r\n static async yield(): Promise<void> {\r\n const globalScheduler = (globalThis as any).scheduler;\r\n if (globalScheduler?.yield) {\r\n return globalScheduler.yield();\r\n }\r\n\r\n // Fall back to yielding with setTimeout.\r\n return new Promise(resolve => {\r\n setTimeout(resolve, 0);\r\n });\r\n }\r\n\r\n /**\r\n * Resolves a promise after the delay time in milliseconds\r\n * @param ms Number of milliseconds to wait\r\n *\r\n * @see {@link delay}\r\n */\r\n static async wait(ms: number): Promise<void> {\r\n const startNow = performance.now();\r\n while ((performance.now() - startNow) < ms) {\r\n await Scheduler.yield();\r\n }\r\n }\r\n\r\n /**\r\n * Adding a task to be scheduled according to their priority.\r\n * @param callback Function to run\r\n * @param options Scheduler options\r\n *\r\n * @see {@link async.post}\r\n */\r\n static async postTask(callback: Function, options?: {priority?: TaskPriority, signal?: any, delay?: number}): Promise<void> {\r\n const globalScheduler = (globalThis as any).scheduler;\r\n if (globalScheduler?.postTask) {\r\n return globalScheduler.postTask(callback, options);\r\n }\r\n return new Promise((resolve)=> {\r\n setTimeout(() => resolve(callback()), options?.delay ?? 0);\r\n });\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}