@postxl/generators 0.2.2

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 (1095) hide show
  1. package/LICENSE +50 -0
  2. package/dist/backend-actions/actions-provider.mock.d.ts +7 -0
  3. package/dist/backend-actions/actions-provider.mock.js +75 -0
  4. package/dist/backend-actions/actions-provider.mock.js.map +1 -0
  5. package/dist/backend-actions/actions.generator.d.ts +130 -0
  6. package/dist/backend-actions/actions.generator.js +204 -0
  7. package/dist/backend-actions/actions.generator.js.map +1 -0
  8. package/dist/backend-actions/generators/action-types.generator.d.ts +2 -0
  9. package/dist/backend-actions/generators/action-types.generator.js +47 -0
  10. package/dist/backend-actions/generators/action-types.generator.js.map +1 -0
  11. package/dist/backend-actions/generators/actions-config-class.generator.d.ts +2 -0
  12. package/dist/backend-actions/generators/actions-config-class.generator.js +25 -0
  13. package/dist/backend-actions/generators/actions-config-class.generator.js.map +1 -0
  14. package/dist/backend-actions/generators/actions-module.generator.d.ts +2 -0
  15. package/dist/backend-actions/generators/actions-module.generator.js +47 -0
  16. package/dist/backend-actions/generators/actions-module.generator.js.map +1 -0
  17. package/dist/backend-actions/generators/authorization-service.generator.d.ts +2 -0
  18. package/dist/backend-actions/generators/authorization-service.generator.js +35 -0
  19. package/dist/backend-actions/generators/authorization-service.generator.js.map +1 -0
  20. package/dist/backend-actions/generators/dispatcher-service.generator.d.ts +2 -0
  21. package/dist/backend-actions/generators/dispatcher-service.generator.js +97 -0
  22. package/dist/backend-actions/generators/dispatcher-service.generator.js.map +1 -0
  23. package/dist/backend-actions/generators/execution-class.generator.d.ts +2 -0
  24. package/dist/backend-actions/generators/execution-class.generator.js +561 -0
  25. package/dist/backend-actions/generators/execution-class.generator.js.map +1 -0
  26. package/dist/backend-actions/generators/execution-interface.generator.d.ts +2 -0
  27. package/dist/backend-actions/generators/execution-interface.generator.js +237 -0
  28. package/dist/backend-actions/generators/execution-interface.generator.js.map +1 -0
  29. package/dist/backend-actions/index.d.ts +9 -0
  30. package/dist/backend-actions/index.js +43 -0
  31. package/dist/backend-actions/index.js.map +1 -0
  32. package/dist/backend-actions/template/README.md +21 -0
  33. package/dist/backend-actions/template/src/execution/types.ts +85 -0
  34. package/dist/backend-authentication/authentication.generator.d.ts +29 -0
  35. package/dist/backend-authentication/authentication.generator.js +145 -0
  36. package/dist/backend-authentication/authentication.generator.js.map +1 -0
  37. package/dist/backend-authentication/generators/auth-guard.generator.d.ts +2 -0
  38. package/dist/backend-authentication/generators/auth-guard.generator.js +121 -0
  39. package/dist/backend-authentication/generators/auth-guard.generator.js.map +1 -0
  40. package/dist/backend-authentication/generators/authentication-module.generator.d.ts +2 -0
  41. package/dist/backend-authentication/generators/authentication-module.generator.js +79 -0
  42. package/dist/backend-authentication/generators/authentication-module.generator.js.map +1 -0
  43. package/dist/backend-authentication/generators/authentication-service.generator.d.ts +2 -0
  44. package/dist/backend-authentication/generators/authentication-service.generator.js +393 -0
  45. package/dist/backend-authentication/generators/authentication-service.generator.js.map +1 -0
  46. package/dist/backend-authentication/generators/authentication-types.generator.d.ts +2 -0
  47. package/dist/backend-authentication/generators/authentication-types.generator.js +64 -0
  48. package/dist/backend-authentication/generators/authentication-types.generator.js.map +1 -0
  49. package/dist/backend-authentication/index.d.ts +4 -0
  50. package/dist/backend-authentication/index.js +40 -0
  51. package/dist/backend-authentication/index.js.map +1 -0
  52. package/dist/backend-authentication/template/README.md +35 -0
  53. package/dist/backend-authentication/template/assets/auth.png +0 -0
  54. package/dist/backend-authentication/template/assets/cookie-validation.png +0 -0
  55. package/dist/backend-authentication/template/assets/page-request.png +0 -0
  56. package/dist/backend-authentication/template/docs/auth.mmd +42 -0
  57. package/dist/backend-authentication/template/docs/cookie-validation.mmd +0 -0
  58. package/dist/backend-authentication/template/docs/page-request.mmd +42 -0
  59. package/dist/backend-authentication/template/src/authentication.config.ts +51 -0
  60. package/dist/backend-authentication/template/src/authentication.controller.ts +105 -0
  61. package/dist/backend-authentication/template/src/authentication.mock.service.ts +108 -0
  62. package/dist/backend-authentication/template/src/utils.ts +13 -0
  63. package/dist/backend-authentication/template/src/viewer.decorator.ts +13 -0
  64. package/dist/backend-core/backend.generator.d.ts +3 -0
  65. package/dist/backend-core/backend.generator.js +154 -0
  66. package/dist/backend-core/backend.generator.js.map +1 -0
  67. package/dist/backend-core/generators/api-config.generator.d.ts +2 -0
  68. package/dist/backend-core/generators/api-config.generator.js +72 -0
  69. package/dist/backend-core/generators/api-config.generator.js.map +1 -0
  70. package/dist/backend-core/generators/api-module.generator.d.ts +2 -0
  71. package/dist/backend-core/generators/api-module.generator.js +53 -0
  72. package/dist/backend-core/generators/api-module.generator.js.map +1 -0
  73. package/dist/backend-core/generators/dotenv-example.generator.d.ts +2 -0
  74. package/dist/backend-core/generators/dotenv-example.generator.js +38 -0
  75. package/dist/backend-core/generators/dotenv-example.generator.js.map +1 -0
  76. package/dist/backend-core/generators/main.generator.d.ts +2 -0
  77. package/dist/backend-core/generators/main.generator.js +153 -0
  78. package/dist/backend-core/generators/main.generator.js.map +1 -0
  79. package/dist/backend-core/generators/tsconfig.generator.d.ts +2 -0
  80. package/dist/backend-core/generators/tsconfig.generator.js +59 -0
  81. package/dist/backend-core/generators/tsconfig.generator.js.map +1 -0
  82. package/dist/backend-core/index.d.ts +3 -0
  83. package/dist/backend-core/index.js +20 -0
  84. package/dist/backend-core/index.js.map +1 -0
  85. package/dist/backend-core/modules/backend-module-utils.generator.d.ts +3 -0
  86. package/dist/backend-core/modules/backend-module-utils.generator.js +65 -0
  87. package/dist/backend-core/modules/backend-module-utils.generator.js.map +1 -0
  88. package/dist/backend-core/modules/backend-module-xlport.generator.d.ts +3 -0
  89. package/dist/backend-core/modules/backend-module-xlport.generator.js +80 -0
  90. package/dist/backend-core/modules/backend-module-xlport.generator.js.map +1 -0
  91. package/dist/backend-core/template/README.md +97 -0
  92. package/dist/backend-core/template/apps/api/README.md +3 -0
  93. package/dist/backend-core/template/apps/api/src/api.controller.ts +14 -0
  94. package/dist/backend-core/template/apps/api/src/console.logger.ts +55 -0
  95. package/dist/backend-core/template/apps/api/src/e2e.ts +458 -0
  96. package/dist/backend-core/template/apps/api/test/base.test.ts +7 -0
  97. package/dist/backend-core/template/apps/api/tsconfig.app.json +9 -0
  98. package/dist/backend-core/template/jest.config.ts +39 -0
  99. package/dist/backend-core/template/libs/e2e/src/e2e.controller.ts +30 -0
  100. package/dist/backend-core/template/libs/e2e/src/e2e.module.ts +18 -0
  101. package/dist/backend-core/template/libs/e2e/src/test-data.service.ts +20 -0
  102. package/dist/backend-core/template/libs/utils/src/pagination.test.ts +58 -0
  103. package/dist/backend-core/template/libs/utils/src/pagination.ts +68 -0
  104. package/dist/backend-core/template/libs/utils/tsconfig.lib.json +9 -0
  105. package/dist/backend-core/template/libs/xlport/README.md +90 -0
  106. package/dist/backend-core/template/libs/xlport/src/xlport.config.ts +8 -0
  107. package/dist/backend-core/template/libs/xlport/src/xlport.module.ts +20 -0
  108. package/dist/backend-core/template/libs/xlport/src/xlport.service.ts +171 -0
  109. package/dist/backend-core/template/libs/xlport/tsconfig.lib.json +9 -0
  110. package/dist/backend-core/template/nest-cli.json +22 -0
  111. package/dist/backend-core/template/tsconfig.build.json +4 -0
  112. package/dist/backend-core/types.d.ts +145 -0
  113. package/dist/backend-core/types.js +3 -0
  114. package/dist/backend-core/types.js.map +1 -0
  115. package/dist/backend-data-management/data-management.generator.d.ts +18 -0
  116. package/dist/backend-data-management/data-management.generator.js +104 -0
  117. package/dist/backend-data-management/data-management.generator.js.map +1 -0
  118. package/dist/backend-data-management/generators/data-management-service.generator.d.ts +8 -0
  119. package/dist/backend-data-management/generators/data-management-service.generator.js +330 -0
  120. package/dist/backend-data-management/generators/data-management-service.generator.js.map +1 -0
  121. package/dist/backend-data-management/index.d.ts +2 -0
  122. package/dist/backend-data-management/index.js +22 -0
  123. package/dist/backend-data-management/index.js.map +1 -0
  124. package/dist/backend-data-management/template/data-management.controller.ts +242 -0
  125. package/dist/backend-data-management/template/data-management.module.ts +15 -0
  126. package/dist/backend-database-prisma/generators/database-config.generator.d.ts +2 -0
  127. package/dist/backend-database-prisma/generators/database-config.generator.js +18 -0
  128. package/dist/backend-database-prisma/generators/database-config.generator.js.map +1 -0
  129. package/dist/backend-database-prisma/generators/database-module.generator.d.ts +2 -0
  130. package/dist/backend-database-prisma/generators/database-module.generator.js +66 -0
  131. package/dist/backend-database-prisma/generators/database-module.generator.js.map +1 -0
  132. package/dist/backend-database-prisma/generators/database-service.generator.d.ts +2 -0
  133. package/dist/backend-database-prisma/generators/database-service.generator.js +45 -0
  134. package/dist/backend-database-prisma/generators/database-service.generator.js.map +1 -0
  135. package/dist/backend-database-prisma/generators/index.generator.d.ts +2 -0
  136. package/dist/backend-database-prisma/generators/index.generator.js +12 -0
  137. package/dist/backend-database-prisma/generators/index.generator.js.map +1 -0
  138. package/dist/backend-database-prisma/generators/prisma-schema.generator.d.ts +2 -0
  139. package/dist/backend-database-prisma/generators/prisma-schema.generator.js +224 -0
  140. package/dist/backend-database-prisma/generators/prisma-schema.generator.js.map +1 -0
  141. package/dist/backend-database-prisma/index.d.ts +5 -0
  142. package/dist/backend-database-prisma/index.js +41 -0
  143. package/dist/backend-database-prisma/index.js.map +1 -0
  144. package/dist/backend-database-prisma/prisma.generator.d.ts +29 -0
  145. package/dist/backend-database-prisma/prisma.generator.js +123 -0
  146. package/dist/backend-database-prisma/prisma.generator.js.map +1 -0
  147. package/dist/backend-database-prisma/prisma.utils.d.ts +9 -0
  148. package/dist/backend-database-prisma/prisma.utils.js +27 -0
  149. package/dist/backend-database-prisma/prisma.utils.js.map +1 -0
  150. package/dist/backend-database-prisma/template/prisma.config.ts +14 -0
  151. package/dist/backend-e2e/backend-e2e.generator.d.ts +23 -0
  152. package/dist/backend-e2e/backend-e2e.generator.js +139 -0
  153. package/dist/backend-e2e/backend-e2e.generator.js.map +1 -0
  154. package/dist/backend-e2e/generators/e2e-controller.generator.d.ts +2 -0
  155. package/dist/backend-e2e/generators/e2e-controller.generator.js +70 -0
  156. package/dist/backend-e2e/generators/e2e-controller.generator.js.map +1 -0
  157. package/dist/backend-e2e/generators/e2e-module.generator.d.ts +2 -0
  158. package/dist/backend-e2e/generators/e2e-module.generator.js +64 -0
  159. package/dist/backend-e2e/generators/e2e-module.generator.js.map +1 -0
  160. package/dist/backend-e2e/generators/e2e-service.generator.d.ts +2 -0
  161. package/dist/backend-e2e/generators/e2e-service.generator.js +99 -0
  162. package/dist/backend-e2e/generators/e2e-service.generator.js.map +1 -0
  163. package/dist/backend-e2e/index.d.ts +4 -0
  164. package/dist/backend-e2e/index.js +40 -0
  165. package/dist/backend-e2e/index.js.map +1 -0
  166. package/dist/backend-import/generators/convert-functions.generator.d.ts +5 -0
  167. package/dist/backend-import/generators/convert-functions.generator.js +600 -0
  168. package/dist/backend-import/generators/convert-functions.generator.js.map +1 -0
  169. package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.d.ts +2 -0
  170. package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js +128 -0
  171. package/dist/backend-import/generators/detect-delta/detect-delta-all-models.generator.js.map +1 -0
  172. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.d.ts +2 -0
  173. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js +391 -0
  174. package/dist/backend-import/generators/detect-delta/detect-delta-functions.generator.js.map +1 -0
  175. package/dist/backend-import/generators/detect-delta/model-function.generator.d.ts +2 -0
  176. package/dist/backend-import/generators/detect-delta/model-function.generator.js +321 -0
  177. package/dist/backend-import/generators/detect-delta/model-function.generator.js.map +1 -0
  178. package/dist/backend-import/generators/detect-delta/types.generator.d.ts +2 -0
  179. package/dist/backend-import/generators/detect-delta/types.generator.js +149 -0
  180. package/dist/backend-import/generators/detect-delta/types.generator.js.map +1 -0
  181. package/dist/backend-import/generators/import-module.generator.d.ts +2 -0
  182. package/dist/backend-import/generators/import-module.generator.js +58 -0
  183. package/dist/backend-import/generators/import-module.generator.js.map +1 -0
  184. package/dist/backend-import/generators/import-service.generator.d.ts +2 -0
  185. package/dist/backend-import/generators/import-service.generator.js +304 -0
  186. package/dist/backend-import/generators/import-service.generator.js.map +1 -0
  187. package/dist/backend-import/import.generator.d.ts +228 -0
  188. package/dist/backend-import/import.generator.js +255 -0
  189. package/dist/backend-import/import.generator.js.map +1 -0
  190. package/dist/backend-import/index.d.ts +5 -0
  191. package/dist/backend-import/index.js +40 -0
  192. package/dist/backend-import/index.js.map +1 -0
  193. package/dist/backend-import/template/README.md +52 -0
  194. package/dist/backend-repositories/generators/bulk-mutation-types.generator.d.ts +2 -0
  195. package/dist/backend-repositories/generators/bulk-mutation-types.generator.js +42 -0
  196. package/dist/backend-repositories/generators/bulk-mutation-types.generator.js.map +1 -0
  197. package/dist/backend-repositories/generators/data-service.generator.d.ts +2 -0
  198. package/dist/backend-repositories/generators/data-service.generator.js +289 -0
  199. package/dist/backend-repositories/generators/data-service.generator.js.map +1 -0
  200. package/dist/backend-repositories/generators/model-repository.generator.d.ts +14 -0
  201. package/dist/backend-repositories/generators/model-repository.generator.js +1936 -0
  202. package/dist/backend-repositories/generators/model-repository.generator.js.map +1 -0
  203. package/dist/backend-repositories/generators/repository-interface.generator.d.ts +2 -0
  204. package/dist/backend-repositories/generators/repository-interface.generator.js +55 -0
  205. package/dist/backend-repositories/generators/repository-interface.generator.js.map +1 -0
  206. package/dist/backend-repositories/generators/repository-module.generator.d.ts +2 -0
  207. package/dist/backend-repositories/generators/repository-module.generator.js +143 -0
  208. package/dist/backend-repositories/generators/repository-module.generator.js.map +1 -0
  209. package/dist/backend-repositories/index.d.ts +5 -0
  210. package/dist/backend-repositories/index.js +40 -0
  211. package/dist/backend-repositories/index.js.map +1 -0
  212. package/dist/backend-repositories/model.types.d.ts +69 -0
  213. package/dist/backend-repositories/model.types.js +17 -0
  214. package/dist/backend-repositories/model.types.js.map +1 -0
  215. package/dist/backend-repositories/repositories.generator.d.ts +46 -0
  216. package/dist/backend-repositories/repositories.generator.js +256 -0
  217. package/dist/backend-repositories/repositories.generator.js.map +1 -0
  218. package/dist/backend-rest-api/generators/model-controller.generator.d.ts +5 -0
  219. package/dist/backend-rest-api/generators/model-controller.generator.js +100 -0
  220. package/dist/backend-rest-api/generators/model-controller.generator.js.map +1 -0
  221. package/dist/backend-rest-api/generators/rest-api-module.generator.d.ts +2 -0
  222. package/dist/backend-rest-api/generators/rest-api-module.generator.js +62 -0
  223. package/dist/backend-rest-api/generators/rest-api-module.generator.js.map +1 -0
  224. package/dist/backend-rest-api/generators/zod-exception-filter.generator.d.ts +1 -0
  225. package/dist/backend-rest-api/generators/zod-exception-filter.generator.js +28 -0
  226. package/dist/backend-rest-api/generators/zod-exception-filter.generator.js.map +1 -0
  227. package/dist/backend-rest-api/index.d.ts +5 -0
  228. package/dist/backend-rest-api/index.js +40 -0
  229. package/dist/backend-rest-api/index.js.map +1 -0
  230. package/dist/backend-rest-api/rest-api.generator.d.ts +24 -0
  231. package/dist/backend-rest-api/rest-api.generator.js +113 -0
  232. package/dist/backend-rest-api/rest-api.generator.js.map +1 -0
  233. package/dist/backend-rest-api/template/zod-exception.filter.ts +21 -0
  234. package/dist/backend-router-trpc/generators/app-routes.generator.d.ts +4 -0
  235. package/dist/backend-router-trpc/generators/app-routes.generator.js +74 -0
  236. package/dist/backend-router-trpc/generators/app-routes.generator.js.map +1 -0
  237. package/dist/backend-router-trpc/generators/audit-log-route.generator.d.ts +7 -0
  238. package/dist/backend-router-trpc/generators/audit-log-route.generator.js +611 -0
  239. package/dist/backend-router-trpc/generators/audit-log-route.generator.js.map +1 -0
  240. package/dist/backend-router-trpc/generators/middleware.generator.d.ts +2 -0
  241. package/dist/backend-router-trpc/generators/middleware.generator.js +100 -0
  242. package/dist/backend-router-trpc/generators/middleware.generator.js.map +1 -0
  243. package/dist/backend-router-trpc/generators/model-routes.generator.d.ts +8 -0
  244. package/dist/backend-router-trpc/generators/model-routes.generator.js +88 -0
  245. package/dist/backend-router-trpc/generators/model-routes.generator.js.map +1 -0
  246. package/dist/backend-router-trpc/generators/trpc-plugin.generator.d.ts +2 -0
  247. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js +141 -0
  248. package/dist/backend-router-trpc/generators/trpc-plugin.generator.js.map +1 -0
  249. package/dist/backend-router-trpc/generators/trpc-router-module.generator.d.ts +2 -0
  250. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js +60 -0
  251. package/dist/backend-router-trpc/generators/trpc-router-module.generator.js.map +1 -0
  252. package/dist/backend-router-trpc/generators/trpc-shared.generator.d.ts +2 -0
  253. package/dist/backend-router-trpc/generators/trpc-shared.generator.js +134 -0
  254. package/dist/backend-router-trpc/generators/trpc-shared.generator.js.map +1 -0
  255. package/dist/backend-router-trpc/index.d.ts +5 -0
  256. package/dist/backend-router-trpc/index.js +40 -0
  257. package/dist/backend-router-trpc/index.js.map +1 -0
  258. package/dist/backend-router-trpc/router-trpc.generator.d.ts +108 -0
  259. package/dist/backend-router-trpc/router-trpc.generator.js +189 -0
  260. package/dist/backend-router-trpc/router-trpc.generator.js.map +1 -0
  261. package/dist/backend-router-trpc/template/viewer.router.ts +25 -0
  262. package/dist/backend-s3/generators/s3.config.generator.d.ts +2 -0
  263. package/dist/backend-s3/generators/s3.config.generator.js +24 -0
  264. package/dist/backend-s3/generators/s3.config.generator.js.map +1 -0
  265. package/dist/backend-s3/generators/s3.module.generator.d.ts +2 -0
  266. package/dist/backend-s3/generators/s3.module.generator.js +33 -0
  267. package/dist/backend-s3/generators/s3.module.generator.js.map +1 -0
  268. package/dist/backend-s3/generators/s3.service.generator.d.ts +2 -0
  269. package/dist/backend-s3/generators/s3.service.generator.js +116 -0
  270. package/dist/backend-s3/generators/s3.service.generator.js.map +1 -0
  271. package/dist/backend-s3/index.d.ts +4 -0
  272. package/dist/backend-s3/index.js +40 -0
  273. package/dist/backend-s3/index.js.map +1 -0
  274. package/dist/backend-s3/s3.generator.d.ts +19 -0
  275. package/dist/backend-s3/s3.generator.js +125 -0
  276. package/dist/backend-s3/s3.generator.js.map +1 -0
  277. package/dist/backend-seed/generators/seed-module.generator.d.ts +2 -0
  278. package/dist/backend-seed/generators/seed-module.generator.js +60 -0
  279. package/dist/backend-seed/generators/seed-module.generator.js.map +1 -0
  280. package/dist/backend-seed/generators/seed-service.generator.d.ts +2 -0
  281. package/dist/backend-seed/generators/seed-service.generator.js +176 -0
  282. package/dist/backend-seed/generators/seed-service.generator.js.map +1 -0
  283. package/dist/backend-seed/index.d.ts +4 -0
  284. package/dist/backend-seed/index.js +40 -0
  285. package/dist/backend-seed/index.js.map +1 -0
  286. package/dist/backend-seed/seed.generator.d.ts +19 -0
  287. package/dist/backend-seed/seed.generator.js +95 -0
  288. package/dist/backend-seed/seed.generator.js.map +1 -0
  289. package/dist/backend-seed/template/src/actions.ts +90 -0
  290. package/dist/backend-seed/template/tsconfig.lib.json +9 -0
  291. package/dist/backend-update/bulk-service.generator.d.ts +2 -0
  292. package/dist/backend-update/bulk-service.generator.js +277 -0
  293. package/dist/backend-update/bulk-service.generator.js.map +1 -0
  294. package/dist/backend-update/index.d.ts +5 -0
  295. package/dist/backend-update/index.js +40 -0
  296. package/dist/backend-update/index.js.map +1 -0
  297. package/dist/backend-update/model-update-service.generator.d.ts +5 -0
  298. package/dist/backend-update/model-update-service.generator.js +757 -0
  299. package/dist/backend-update/model-update-service.generator.js.map +1 -0
  300. package/dist/backend-update/update-actions.decoders.d.ts +15 -0
  301. package/dist/backend-update/update-actions.decoders.js +37 -0
  302. package/dist/backend-update/update-actions.decoders.js.map +1 -0
  303. package/dist/backend-update/update-module.generator.d.ts +2 -0
  304. package/dist/backend-update/update-module.generator.js +69 -0
  305. package/dist/backend-update/update-module.generator.js.map +1 -0
  306. package/dist/backend-update/update-service.generator.d.ts +2 -0
  307. package/dist/backend-update/update-service.generator.js +94 -0
  308. package/dist/backend-update/update-service.generator.js.map +1 -0
  309. package/dist/backend-update/update.generator.d.ts +138 -0
  310. package/dist/backend-update/update.generator.js +302 -0
  311. package/dist/backend-update/update.generator.js.map +1 -0
  312. package/dist/backend-view/index.d.ts +5 -0
  313. package/dist/backend-view/index.js +40 -0
  314. package/dist/backend-view/index.js.map +1 -0
  315. package/dist/backend-view/model-view-service.generator.d.ts +11 -0
  316. package/dist/backend-view/model-view-service.generator.js +196 -0
  317. package/dist/backend-view/model-view-service.generator.js.map +1 -0
  318. package/dist/backend-view/view-module.generator.d.ts +2 -0
  319. package/dist/backend-view/view-module.generator.js +62 -0
  320. package/dist/backend-view/view-module.generator.js.map +1 -0
  321. package/dist/backend-view/view-service.generator.d.ts +2 -0
  322. package/dist/backend-view/view-service.generator.js +56 -0
  323. package/dist/backend-view/view-service.generator.js.map +1 -0
  324. package/dist/backend-view/view.generator.d.ts +32 -0
  325. package/dist/backend-view/view.generator.js +100 -0
  326. package/dist/backend-view/view.generator.js.map +1 -0
  327. package/dist/base/base.generator.d.ts +26 -0
  328. package/dist/base/base.generator.js +138 -0
  329. package/dist/base/base.generator.js.map +1 -0
  330. package/dist/base/index.d.ts +1 -0
  331. package/dist/base/index.js +18 -0
  332. package/dist/base/index.js.map +1 -0
  333. package/dist/base/template/.nvmrc +1 -0
  334. package/dist/base/template/.prettierignore +5 -0
  335. package/dist/base/template/.turboignore +1 -0
  336. package/dist/base/template/.vscode/extensions.json +16 -0
  337. package/dist/base/template/.vscode/launch.json +15 -0
  338. package/dist/base/template/.vscode/settings.json +73 -0
  339. package/dist/base/template/README.md +115 -0
  340. package/dist/base/template/eslint.config.mjs +194 -0
  341. package/dist/base/template/jest.config.ts +7 -0
  342. package/dist/base/template/prettier.config.js +10 -0
  343. package/dist/base/template/scripts/setup.sh +25 -0
  344. package/dist/base/template/sonar-project.properties +94 -0
  345. package/dist/base/template/tsconfig.json +12 -0
  346. package/dist/decoders/datamodel-decoder.generator.d.ts +7 -0
  347. package/dist/decoders/datamodel-decoder.generator.js +134 -0
  348. package/dist/decoders/datamodel-decoder.generator.js.map +1 -0
  349. package/dist/decoders/decoders.generator.d.ts +133 -0
  350. package/dist/decoders/decoders.generator.js +424 -0
  351. package/dist/decoders/decoders.generator.js.map +1 -0
  352. package/dist/decoders/discriminated-union.decoder.generator.d.ts +12 -0
  353. package/dist/decoders/discriminated-union.decoder.generator.js +205 -0
  354. package/dist/decoders/discriminated-union.decoder.generator.js.map +1 -0
  355. package/dist/decoders/enum-decoder.generator.d.ts +5 -0
  356. package/dist/decoders/enum-decoder.generator.js +71 -0
  357. package/dist/decoders/enum-decoder.generator.js.map +1 -0
  358. package/dist/decoders/excel-field-decoder.helper.d.ts +17 -0
  359. package/dist/decoders/excel-field-decoder.helper.js +178 -0
  360. package/dist/decoders/excel-field-decoder.helper.js.map +1 -0
  361. package/dist/decoders/field-decoder.helper.d.ts +50 -0
  362. package/dist/decoders/field-decoder.helper.js +113 -0
  363. package/dist/decoders/field-decoder.helper.js.map +1 -0
  364. package/dist/decoders/index.d.ts +4 -0
  365. package/dist/decoders/index.js +40 -0
  366. package/dist/decoders/index.js.map +1 -0
  367. package/dist/decoders/model-decoder.generator.d.ts +5 -0
  368. package/dist/decoders/model-decoder.generator.js +197 -0
  369. package/dist/decoders/model-decoder.generator.js.map +1 -0
  370. package/dist/decoders/shared.d.ts +51 -0
  371. package/dist/decoders/shared.js +140 -0
  372. package/dist/decoders/shared.js.map +1 -0
  373. package/dist/devops/devops.generator.d.ts +66 -0
  374. package/dist/devops/devops.generator.js +127 -0
  375. package/dist/devops/devops.generator.js.map +1 -0
  376. package/dist/devops/generators/backend-build-sh.generator.d.ts +2 -0
  377. package/dist/devops/generators/backend-build-sh.generator.js +49 -0
  378. package/dist/devops/generators/backend-build-sh.generator.js.map +1 -0
  379. package/dist/devops/generators/backend-dockerfile.generator.d.ts +2 -0
  380. package/dist/devops/generators/backend-dockerfile.generator.js +67 -0
  381. package/dist/devops/generators/backend-dockerfile.generator.js.map +1 -0
  382. package/dist/devops/generators/backend-start-api-sh.generator.d.ts +2 -0
  383. package/dist/devops/generators/backend-start-api-sh.generator.js +18 -0
  384. package/dist/devops/generators/backend-start-api-sh.generator.js.map +1 -0
  385. package/dist/devops/generators/bitbucket-pipelines-yml.generator.d.ts +2 -0
  386. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js +105 -0
  387. package/dist/devops/generators/bitbucket-pipelines-yml.generator.js.map +1 -0
  388. package/dist/devops/generators/configure-keycloak-sh.generator.d.ts +2 -0
  389. package/dist/devops/generators/configure-keycloak-sh.generator.js +158 -0
  390. package/dist/devops/generators/configure-keycloak-sh.generator.js.map +1 -0
  391. package/dist/devops/generators/docker-compose-yml.generator.d.ts +2 -0
  392. package/dist/devops/generators/docker-compose-yml.generator.js +78 -0
  393. package/dist/devops/generators/docker-compose-yml.generator.js.map +1 -0
  394. package/dist/devops/generators/e2e-yml.generator.d.ts +2 -0
  395. package/dist/devops/generators/e2e-yml.generator.js +195 -0
  396. package/dist/devops/generators/e2e-yml.generator.js.map +1 -0
  397. package/dist/devops/generators/frontend-build-sh.generator.d.ts +2 -0
  398. package/dist/devops/generators/frontend-build-sh.generator.js +45 -0
  399. package/dist/devops/generators/frontend-build-sh.generator.js.map +1 -0
  400. package/dist/devops/generators/frontend-dockerfile.generator.d.ts +2 -0
  401. package/dist/devops/generators/frontend-dockerfile.generator.js +75 -0
  402. package/dist/devops/generators/frontend-dockerfile.generator.js.map +1 -0
  403. package/dist/devops/generators/jenkinsfile.generator.d.ts +2 -0
  404. package/dist/devops/generators/jenkinsfile.generator.js +147 -0
  405. package/dist/devops/generators/jenkinsfile.generator.js.map +1 -0
  406. package/dist/devops/generators/root-dotenv-example.generator.d.ts +2 -0
  407. package/dist/devops/generators/root-dotenv-example.generator.js +10 -0
  408. package/dist/devops/generators/root-dotenv-example.generator.js.map +1 -0
  409. package/dist/devops/index.d.ts +4 -0
  410. package/dist/devops/index.js +40 -0
  411. package/dist/devops/index.js.map +1 -0
  412. package/dist/devops/template/.github/workflows/test.yml +45 -0
  413. package/dist/devops/template/docker/backend/migrate.sh +10 -0
  414. package/dist/devops/template/docker/backend/start.api.sh +8 -0
  415. package/dist/devops/template/docker/frontend/entrypoint.sh +18 -0
  416. package/dist/devops/template/docker/frontend/frontend.conf +17 -0
  417. package/dist/devops/template/docker/keycloak/Dockerfile +17 -0
  418. package/dist/devops/template/docker/keycloak/localization.en.json +5 -0
  419. package/dist/devops/template/docker/keycloak/protocol-mappers.json +28 -0
  420. package/dist/devops/template/docker/keycloak/user-attributes.json +142 -0
  421. package/dist/e2e/e2e.generator.d.ts +19 -0
  422. package/dist/e2e/e2e.generator.js +92 -0
  423. package/dist/e2e/e2e.generator.js.map +1 -0
  424. package/dist/e2e/generators/lib/test-id-collector.d.ts +48 -0
  425. package/dist/e2e/generators/lib/test-id-collector.js +65 -0
  426. package/dist/e2e/generators/lib/test-id-collector.js.map +1 -0
  427. package/dist/e2e/generators/lib/test-id-generator.d.ts +5 -0
  428. package/dist/e2e/generators/lib/test-id-generator.js +67 -0
  429. package/dist/e2e/generators/lib/test-id-generator.js.map +1 -0
  430. package/dist/e2e/generators/model-test-id.generator.d.ts +5 -0
  431. package/dist/e2e/generators/model-test-id.generator.js +19 -0
  432. package/dist/e2e/generators/model-test-id.generator.js.map +1 -0
  433. package/dist/e2e/generators/package-json.generator.d.ts +2 -0
  434. package/dist/e2e/generators/package-json.generator.js +29 -0
  435. package/dist/e2e/generators/package-json.generator.js.map +1 -0
  436. package/dist/e2e/index.d.ts +4 -0
  437. package/dist/e2e/index.js +40 -0
  438. package/dist/e2e/index.js.map +1 -0
  439. package/dist/e2e/template/e2e/.env.example +11 -0
  440. package/dist/e2e/template/e2e/Dockerfile +8 -0
  441. package/dist/e2e/template/e2e/README.md +87 -0
  442. package/dist/e2e/template/e2e/fixtures/global-setup.ts +3 -0
  443. package/dist/e2e/template/e2e/fixtures/global-teardown.ts +21 -0
  444. package/dist/e2e/template/e2e/fixtures/handle-backend.ts +35 -0
  445. package/dist/e2e/template/e2e/fixtures/set-date-script.js +28 -0
  446. package/dist/e2e/template/e2e/fixtures/set-fixed-date.ts +12 -0
  447. package/dist/e2e/template/e2e/fixtures/test-fixtures.ts +132 -0
  448. package/dist/e2e/template/e2e/package.json +22 -0
  449. package/dist/e2e/template/e2e/playwright.config.ts +161 -0
  450. package/dist/e2e/template/e2e/specs/example-backend-isolation.spec.ts +59 -0
  451. package/dist/e2e/template/e2e/specs/example.spec.ts +77 -0
  452. package/dist/e2e/template/e2e/specs/example.spec.ts-snapshots/Navigate-to-homepage-and-take-snapshot-1-chromium-linux.png +0 -0
  453. package/dist/e2e/template/e2e/support/checkbox-click.ts +20 -0
  454. package/dist/e2e/template/e2e/support/get-backend-mode.ts +10 -0
  455. package/dist/e2e/template/e2e/support/map.utils.ts +98 -0
  456. package/dist/e2e/template/e2e/support/mask-toast.ts +20 -0
  457. package/dist/e2e/template/e2e/support/model-test-ids.ts +4 -0
  458. package/dist/e2e/template/e2e/support/mouse-annotations.ts +162 -0
  459. package/dist/e2e/template/e2e/support/page-stability.ts +86 -0
  460. package/dist/e2e/template/e2e/support/reset-data.ts +38 -0
  461. package/dist/e2e/template/e2e/support/set-data.ts +44 -0
  462. package/dist/e2e/template/e2e/support/wait-for-page-loaded.ts +28 -0
  463. package/dist/e2e/template/e2e/tsconfig.json +51 -0
  464. package/dist/e2e/template/scripts/docker.sh +17 -0
  465. package/dist/frontend-admin/admin.generator.d.ts +75 -0
  466. package/dist/frontend-admin/admin.generator.js +132 -0
  467. package/dist/frontend-admin/admin.generator.js.map +1 -0
  468. package/dist/frontend-admin/generators/admin-overview-page.generator.d.ts +7 -0
  469. package/dist/frontend-admin/generators/admin-overview-page.generator.js +110 -0
  470. package/dist/frontend-admin/generators/admin-overview-page.generator.js.map +1 -0
  471. package/dist/frontend-admin/generators/admin-sidebar.generator.d.ts +7 -0
  472. package/dist/frontend-admin/generators/admin-sidebar.generator.js +196 -0
  473. package/dist/frontend-admin/generators/admin-sidebar.generator.js.map +1 -0
  474. package/dist/frontend-admin/generators/audit-log-sidebar.generator.d.ts +8 -0
  475. package/dist/frontend-admin/generators/audit-log-sidebar.generator.js +629 -0
  476. package/dist/frontend-admin/generators/audit-log-sidebar.generator.js.map +1 -0
  477. package/dist/frontend-admin/generators/data-management-page.generator.d.ts +7 -0
  478. package/dist/frontend-admin/generators/data-management-page.generator.js +778 -0
  479. package/dist/frontend-admin/generators/data-management-page.generator.js.map +1 -0
  480. package/dist/frontend-admin/generators/model-admin-page.generator.d.ts +8 -0
  481. package/dist/frontend-admin/generators/model-admin-page.generator.js +231 -0
  482. package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -0
  483. package/dist/frontend-admin/index.d.ts +5 -0
  484. package/dist/frontend-admin/index.js +40 -0
  485. package/dist/frontend-admin/index.js.map +1 -0
  486. package/dist/frontend-admin/utils.d.ts +24 -0
  487. package/dist/frontend-admin/utils.js +122 -0
  488. package/dist/frontend-admin/utils.js.map +1 -0
  489. package/dist/frontend-core/frontend.generator.d.ts +87 -0
  490. package/dist/frontend-core/frontend.generator.js +400 -0
  491. package/dist/frontend-core/frontend.generator.js.map +1 -0
  492. package/dist/frontend-core/generators/tsconfig.generator.d.ts +2 -0
  493. package/dist/frontend-core/generators/tsconfig.generator.js +55 -0
  494. package/dist/frontend-core/generators/tsconfig.generator.js.map +1 -0
  495. package/dist/frontend-core/index.d.ts +2 -0
  496. package/dist/frontend-core/index.js +19 -0
  497. package/dist/frontend-core/index.js.map +1 -0
  498. package/dist/frontend-core/scripts/generate-types.d.ts +1 -0
  499. package/dist/frontend-core/scripts/generate-types.js +59 -0
  500. package/dist/frontend-core/scripts/generate-types.js.map +1 -0
  501. package/dist/frontend-core/template/.env.example +44 -0
  502. package/dist/frontend-core/template/.prettierignore +4 -0
  503. package/dist/frontend-core/template/.storybook/main.ts +27 -0
  504. package/dist/frontend-core/template/.storybook/preview.ts +16 -0
  505. package/dist/frontend-core/template/.storybook/vitest.setup.ts +18 -0
  506. package/dist/frontend-core/template/README.md +488 -0
  507. package/dist/frontend-core/template/components.json +21 -0
  508. package/dist/frontend-core/template/index.html +11 -0
  509. package/dist/frontend-core/template/public/android-chrome-192x192.png +0 -0
  510. package/dist/frontend-core/template/public/android-chrome-512x512.png +0 -0
  511. package/dist/frontend-core/template/public/apple-touch-icon.png +0 -0
  512. package/dist/frontend-core/template/public/favicon-16x16.png +0 -0
  513. package/dist/frontend-core/template/public/favicon-32x32.png +0 -0
  514. package/dist/frontend-core/template/public/favicon.ico +0 -0
  515. package/dist/frontend-core/template/public/flags/AC.svg +39 -0
  516. package/dist/frontend-core/template/public/flags/AD.svg +32 -0
  517. package/dist/frontend-core/template/public/flags/AE.svg +7 -0
  518. package/dist/frontend-core/template/public/flags/AF.svg +9 -0
  519. package/dist/frontend-core/template/public/flags/AG.svg +13 -0
  520. package/dist/frontend-core/template/public/flags/AI.svg +31 -0
  521. package/dist/frontend-core/template/public/flags/AL.svg +22 -0
  522. package/dist/frontend-core/template/public/flags/AM.svg +6 -0
  523. package/dist/frontend-core/template/public/flags/AO.svg +24 -0
  524. package/dist/frontend-core/template/public/flags/AQ.svg +6 -0
  525. package/dist/frontend-core/template/public/flags/AR.svg +7 -0
  526. package/dist/frontend-core/template/public/flags/AS.svg +9 -0
  527. package/dist/frontend-core/template/public/flags/AT.svg +6 -0
  528. package/dist/frontend-core/template/public/flags/AU.svg +36 -0
  529. package/dist/frontend-core/template/public/flags/AW.svg +12 -0
  530. package/dist/frontend-core/template/public/flags/AX.svg +8 -0
  531. package/dist/frontend-core/template/public/flags/AZ.svg +13 -0
  532. package/dist/frontend-core/template/public/flags/BA.svg +23 -0
  533. package/dist/frontend-core/template/public/flags/BB.svg +11 -0
  534. package/dist/frontend-core/template/public/flags/BD.svg +5 -0
  535. package/dist/frontend-core/template/public/flags/BE.svg +7 -0
  536. package/dist/frontend-core/template/public/flags/BF.svg +7 -0
  537. package/dist/frontend-core/template/public/flags/BG.svg +7 -0
  538. package/dist/frontend-core/template/public/flags/BH.svg +8 -0
  539. package/dist/frontend-core/template/public/flags/BI.svg +21 -0
  540. package/dist/frontend-core/template/public/flags/BJ.svg +7 -0
  541. package/dist/frontend-core/template/public/flags/BL.svg +48 -0
  542. package/dist/frontend-core/template/public/flags/BM.svg +24 -0
  543. package/dist/frontend-core/template/public/flags/BN.svg +17 -0
  544. package/dist/frontend-core/template/public/flags/BO.svg +1 -0
  545. package/dist/frontend-core/template/public/flags/BQ.svg +9 -0
  546. package/dist/frontend-core/template/public/flags/BR.svg +10 -0
  547. package/dist/frontend-core/template/public/flags/BS.svg +10 -0
  548. package/dist/frontend-core/template/public/flags/BT.svg +7 -0
  549. package/dist/frontend-core/template/public/flags/BV.svg +10 -0
  550. package/dist/frontend-core/template/public/flags/BW.svg +10 -0
  551. package/dist/frontend-core/template/public/flags/BY.svg +19 -0
  552. package/dist/frontend-core/template/public/flags/BZ.svg +17 -0
  553. package/dist/frontend-core/template/public/flags/CA.svg +11 -0
  554. package/dist/frontend-core/template/public/flags/CC.svg +25 -0
  555. package/dist/frontend-core/template/public/flags/CD.svg +8 -0
  556. package/dist/frontend-core/template/public/flags/CF.svg +18 -0
  557. package/dist/frontend-core/template/public/flags/CG.svg +7 -0
  558. package/dist/frontend-core/template/public/flags/CH.svg +6 -0
  559. package/dist/frontend-core/template/public/flags/CI.svg +7 -0
  560. package/dist/frontend-core/template/public/flags/CK.svg +26 -0
  561. package/dist/frontend-core/template/public/flags/CL.svg +7 -0
  562. package/dist/frontend-core/template/public/flags/CM.svg +10 -0
  563. package/dist/frontend-core/template/public/flags/CN.svg +16 -0
  564. package/dist/frontend-core/template/public/flags/CO.svg +7 -0
  565. package/dist/frontend-core/template/public/flags/CR.svg +10 -0
  566. package/dist/frontend-core/template/public/flags/CU.svg +14 -0
  567. package/dist/frontend-core/template/public/flags/CV.svg +31 -0
  568. package/dist/frontend-core/template/public/flags/CW.svg +11 -0
  569. package/dist/frontend-core/template/public/flags/CX.svg +25 -0
  570. package/dist/frontend-core/template/public/flags/CY.svg +35 -0
  571. package/dist/frontend-core/template/public/flags/CZ.svg +7 -0
  572. package/dist/frontend-core/template/public/flags/DE.svg +7 -0
  573. package/dist/frontend-core/template/public/flags/DJ.svg +8 -0
  574. package/dist/frontend-core/template/public/flags/DK.svg +6 -0
  575. package/dist/frontend-core/template/public/flags/DM.svg +38 -0
  576. package/dist/frontend-core/template/public/flags/DO.svg +14 -0
  577. package/dist/frontend-core/template/public/flags/DZ.svg +12 -0
  578. package/dist/frontend-core/template/public/flags/EC.svg +12 -0
  579. package/dist/frontend-core/template/public/flags/EE.svg +7 -0
  580. package/dist/frontend-core/template/public/flags/EG.svg +10 -0
  581. package/dist/frontend-core/template/public/flags/EH.svg +13 -0
  582. package/dist/frontend-core/template/public/flags/ER.svg +17 -0
  583. package/dist/frontend-core/template/public/flags/ES.svg +13 -0
  584. package/dist/frontend-core/template/public/flags/ET.svg +24 -0
  585. package/dist/frontend-core/template/public/flags/EU.svg +1 -0
  586. package/dist/frontend-core/template/public/flags/FI.svg +6 -0
  587. package/dist/frontend-core/template/public/flags/FJ.svg +22 -0
  588. package/dist/frontend-core/template/public/flags/FK.svg +41 -0
  589. package/dist/frontend-core/template/public/flags/FM.svg +14 -0
  590. package/dist/frontend-core/template/public/flags/FO.svg +8 -0
  591. package/dist/frontend-core/template/public/flags/FR.svg +7 -0
  592. package/dist/frontend-core/template/public/flags/G.svg +4 -0
  593. package/dist/frontend-core/template/public/flags/GA.svg +7 -0
  594. package/dist/frontend-core/template/public/flags/GB.svg +30 -0
  595. package/dist/frontend-core/template/public/flags/GD.svg +32 -0
  596. package/dist/frontend-core/template/public/flags/GE-AB.svg +20 -0
  597. package/dist/frontend-core/template/public/flags/GE-OS.svg +6 -0
  598. package/dist/frontend-core/template/public/flags/GE.svg +9 -0
  599. package/dist/frontend-core/template/public/flags/GF.svg +6 -0
  600. package/dist/frontend-core/template/public/flags/GG.svg +6 -0
  601. package/dist/frontend-core/template/public/flags/GH.svg +8 -0
  602. package/dist/frontend-core/template/public/flags/GI.svg +19 -0
  603. package/dist/frontend-core/template/public/flags/GL.svg +7 -0
  604. package/dist/frontend-core/template/public/flags/GM.svg +7 -0
  605. package/dist/frontend-core/template/public/flags/GN.svg +6 -0
  606. package/dist/frontend-core/template/public/flags/GP.svg +7 -0
  607. package/dist/frontend-core/template/public/flags/GQ.svg +25 -0
  608. package/dist/frontend-core/template/public/flags/GR.svg +16 -0
  609. package/dist/frontend-core/template/public/flags/GS.svg +35 -0
  610. package/dist/frontend-core/template/public/flags/GT.svg +13 -0
  611. package/dist/frontend-core/template/public/flags/GU.svg +16 -0
  612. package/dist/frontend-core/template/public/flags/GW.svg +8 -0
  613. package/dist/frontend-core/template/public/flags/GY.svg +8 -0
  614. package/dist/frontend-core/template/public/flags/HK.svg +1 -0
  615. package/dist/frontend-core/template/public/flags/HM.svg +28 -0
  616. package/dist/frontend-core/template/public/flags/HN.svg +18 -0
  617. package/dist/frontend-core/template/public/flags/HR.svg +32 -0
  618. package/dist/frontend-core/template/public/flags/HT.svg +11 -0
  619. package/dist/frontend-core/template/public/flags/HU.svg +7 -0
  620. package/dist/frontend-core/template/public/flags/IC.svg +6 -0
  621. package/dist/frontend-core/template/public/flags/ID.svg +6 -0
  622. package/dist/frontend-core/template/public/flags/IE.svg +7 -0
  623. package/dist/frontend-core/template/public/flags/IL.svg +12 -0
  624. package/dist/frontend-core/template/public/flags/IM.svg +17 -0
  625. package/dist/frontend-core/template/public/flags/IN.svg +11 -0
  626. package/dist/frontend-core/template/public/flags/IO.svg +70 -0
  627. package/dist/frontend-core/template/public/flags/IQ.svg +13 -0
  628. package/dist/frontend-core/template/public/flags/IR.svg +37 -0
  629. package/dist/frontend-core/template/public/flags/IS.svg +7 -0
  630. package/dist/frontend-core/template/public/flags/IT.svg +7 -0
  631. package/dist/frontend-core/template/public/flags/JE.svg +9 -0
  632. package/dist/frontend-core/template/public/flags/JM.svg +9 -0
  633. package/dist/frontend-core/template/public/flags/JO.svg +9 -0
  634. package/dist/frontend-core/template/public/flags/JP.svg +6 -0
  635. package/dist/frontend-core/template/public/flags/KE.svg +18 -0
  636. package/dist/frontend-core/template/public/flags/KG.svg +21 -0
  637. package/dist/frontend-core/template/public/flags/KH.svg +10 -0
  638. package/dist/frontend-core/template/public/flags/KI.svg +24 -0
  639. package/dist/frontend-core/template/public/flags/KM.svg +16 -0
  640. package/dist/frontend-core/template/public/flags/KN.svg +13 -0
  641. package/dist/frontend-core/template/public/flags/KP.svg +13 -0
  642. package/dist/frontend-core/template/public/flags/KR.svg +21 -0
  643. package/dist/frontend-core/template/public/flags/KW.svg +8 -0
  644. package/dist/frontend-core/template/public/flags/KY.svg +24 -0
  645. package/dist/frontend-core/template/public/flags/KZ.svg +28 -0
  646. package/dist/frontend-core/template/public/flags/LA.svg +9 -0
  647. package/dist/frontend-core/template/public/flags/LB.svg +15 -0
  648. package/dist/frontend-core/template/public/flags/LC.svg +7 -0
  649. package/dist/frontend-core/template/public/flags/LI.svg +8 -0
  650. package/dist/frontend-core/template/public/flags/LICENSE +22 -0
  651. package/dist/frontend-core/template/public/flags/LK.svg +30 -0
  652. package/dist/frontend-core/template/public/flags/LR.svg +13 -0
  653. package/dist/frontend-core/template/public/flags/LS.svg +10 -0
  654. package/dist/frontend-core/template/public/flags/LT.svg +7 -0
  655. package/dist/frontend-core/template/public/flags/LU.svg +7 -0
  656. package/dist/frontend-core/template/public/flags/LV.svg +8 -0
  657. package/dist/frontend-core/template/public/flags/LY.svg +11 -0
  658. package/dist/frontend-core/template/public/flags/MA.svg +6 -0
  659. package/dist/frontend-core/template/public/flags/MC.svg +6 -0
  660. package/dist/frontend-core/template/public/flags/MD.svg +8 -0
  661. package/dist/frontend-core/template/public/flags/ME.svg +26 -0
  662. package/dist/frontend-core/template/public/flags/MF.svg +7 -0
  663. package/dist/frontend-core/template/public/flags/MG.svg +7 -0
  664. package/dist/frontend-core/template/public/flags/MH.svg +9 -0
  665. package/dist/frontend-core/template/public/flags/MK.svg +17 -0
  666. package/dist/frontend-core/template/public/flags/ML.svg +7 -0
  667. package/dist/frontend-core/template/public/flags/MM.svg +8 -0
  668. package/dist/frontend-core/template/public/flags/MN.svg +17 -0
  669. package/dist/frontend-core/template/public/flags/MO.svg +17 -0
  670. package/dist/frontend-core/template/public/flags/MP.svg +12 -0
  671. package/dist/frontend-core/template/public/flags/MQ.svg +44 -0
  672. package/dist/frontend-core/template/public/flags/MR.svg +9 -0
  673. package/dist/frontend-core/template/public/flags/MS.svg +21 -0
  674. package/dist/frontend-core/template/public/flags/MT.svg +7 -0
  675. package/dist/frontend-core/template/public/flags/MU.svg +8 -0
  676. package/dist/frontend-core/template/public/flags/MV.svg +7 -0
  677. package/dist/frontend-core/template/public/flags/MW.svg +8 -0
  678. package/dist/frontend-core/template/public/flags/MX.svg +11 -0
  679. package/dist/frontend-core/template/public/flags/MY.svg +19 -0
  680. package/dist/frontend-core/template/public/flags/MZ.svg +10 -0
  681. package/dist/frontend-core/template/public/flags/NA.svg +9 -0
  682. package/dist/frontend-core/template/public/flags/NC.svg +16 -0
  683. package/dist/frontend-core/template/public/flags/NE.svg +8 -0
  684. package/dist/frontend-core/template/public/flags/NF.svg +10 -0
  685. package/dist/frontend-core/template/public/flags/NG.svg +9 -0
  686. package/dist/frontend-core/template/public/flags/NI.svg +13 -0
  687. package/dist/frontend-core/template/public/flags/NL.svg +7 -0
  688. package/dist/frontend-core/template/public/flags/NO.svg +7 -0
  689. package/dist/frontend-core/template/public/flags/NP.svg +12 -0
  690. package/dist/frontend-core/template/public/flags/NR.svg +7 -0
  691. package/dist/frontend-core/template/public/flags/NU.svg +47 -0
  692. package/dist/frontend-core/template/public/flags/NZ.svg +25 -0
  693. package/dist/frontend-core/template/public/flags/OM.svg +12 -0
  694. package/dist/frontend-core/template/public/flags/PA.svg +9 -0
  695. package/dist/frontend-core/template/public/flags/PE.svg +9 -0
  696. package/dist/frontend-core/template/public/flags/PF.svg +16 -0
  697. package/dist/frontend-core/template/public/flags/PG.svg +14 -0
  698. package/dist/frontend-core/template/public/flags/PH.svg +15 -0
  699. package/dist/frontend-core/template/public/flags/PK.svg +13 -0
  700. package/dist/frontend-core/template/public/flags/PL.svg +9 -0
  701. package/dist/frontend-core/template/public/flags/PM.svg +7 -0
  702. package/dist/frontend-core/template/public/flags/PN.svg +23 -0
  703. package/dist/frontend-core/template/public/flags/PR.svg +12 -0
  704. package/dist/frontend-core/template/public/flags/PS.svg +8 -0
  705. package/dist/frontend-core/template/public/flags/PT.svg +9 -0
  706. package/dist/frontend-core/template/public/flags/PW.svg +6 -0
  707. package/dist/frontend-core/template/public/flags/PY.svg +9 -0
  708. package/dist/frontend-core/template/public/flags/QA.svg +7 -0
  709. package/dist/frontend-core/template/public/flags/RE.svg +7 -0
  710. package/dist/frontend-core/template/public/flags/README.md +1 -0
  711. package/dist/frontend-core/template/public/flags/RO.svg +7 -0
  712. package/dist/frontend-core/template/public/flags/RS.svg +13 -0
  713. package/dist/frontend-core/template/public/flags/RU.svg +8 -0
  714. package/dist/frontend-core/template/public/flags/RW.svg +8 -0
  715. package/dist/frontend-core/template/public/flags/SA.svg +12 -0
  716. package/dist/frontend-core/template/public/flags/SB.svg +14 -0
  717. package/dist/frontend-core/template/public/flags/SC.svg +9 -0
  718. package/dist/frontend-core/template/public/flags/SD.svg +8 -0
  719. package/dist/frontend-core/template/public/flags/SE.svg +6 -0
  720. package/dist/frontend-core/template/public/flags/SG.svg +14 -0
  721. package/dist/frontend-core/template/public/flags/SH.svg +32 -0
  722. package/dist/frontend-core/template/public/flags/SI.svg +10 -0
  723. package/dist/frontend-core/template/public/flags/SJ.svg +7 -0
  724. package/dist/frontend-core/template/public/flags/SK.svg +11 -0
  725. package/dist/frontend-core/template/public/flags/SL.svg +7 -0
  726. package/dist/frontend-core/template/public/flags/SM.svg +11 -0
  727. package/dist/frontend-core/template/public/flags/SN.svg +10 -0
  728. package/dist/frontend-core/template/public/flags/SO.svg +6 -0
  729. package/dist/frontend-core/template/public/flags/SR.svg +11 -0
  730. package/dist/frontend-core/template/public/flags/SS.svg +10 -0
  731. package/dist/frontend-core/template/public/flags/ST.svg +12 -0
  732. package/dist/frontend-core/template/public/flags/SV.svg +12 -0
  733. package/dist/frontend-core/template/public/flags/SX.svg +14 -0
  734. package/dist/frontend-core/template/public/flags/SY.svg +11 -0
  735. package/dist/frontend-core/template/public/flags/SZ.svg +12 -0
  736. package/dist/frontend-core/template/public/flags/TA.svg +38 -0
  737. package/dist/frontend-core/template/public/flags/TC.svg +24 -0
  738. package/dist/frontend-core/template/public/flags/TD.svg +7 -0
  739. package/dist/frontend-core/template/public/flags/TF.svg +14 -0
  740. package/dist/frontend-core/template/public/flags/TG.svg +12 -0
  741. package/dist/frontend-core/template/public/flags/TH.svg +10 -0
  742. package/dist/frontend-core/template/public/flags/TJ.svg +17 -0
  743. package/dist/frontend-core/template/public/flags/TK.svg +15 -0
  744. package/dist/frontend-core/template/public/flags/TL.svg +8 -0
  745. package/dist/frontend-core/template/public/flags/TM.svg +34 -0
  746. package/dist/frontend-core/template/public/flags/TN.svg +10 -0
  747. package/dist/frontend-core/template/public/flags/TO.svg +7 -0
  748. package/dist/frontend-core/template/public/flags/TR.svg +8 -0
  749. package/dist/frontend-core/template/public/flags/TT.svg +7 -0
  750. package/dist/frontend-core/template/public/flags/TV.svg +21 -0
  751. package/dist/frontend-core/template/public/flags/TW.svg +9 -0
  752. package/dist/frontend-core/template/public/flags/TZ.svg +8 -0
  753. package/dist/frontend-core/template/public/flags/UA.svg +6 -0
  754. package/dist/frontend-core/template/public/flags/UG.svg +15 -0
  755. package/dist/frontend-core/template/public/flags/UK.svg +30 -0
  756. package/dist/frontend-core/template/public/flags/UM.svg +40 -0
  757. package/dist/frontend-core/template/public/flags/US.svg +40 -0
  758. package/dist/frontend-core/template/public/flags/UY.svg +17 -0
  759. package/dist/frontend-core/template/public/flags/UZ.svg +26 -0
  760. package/dist/frontend-core/template/public/flags/VA.svg +8 -0
  761. package/dist/frontend-core/template/public/flags/VC.svg +12 -0
  762. package/dist/frontend-core/template/public/flags/VE.svg +21 -0
  763. package/dist/frontend-core/template/public/flags/VG.svg +33 -0
  764. package/dist/frontend-core/template/public/flags/VI.svg +31 -0
  765. package/dist/frontend-core/template/public/flags/VN.svg +6 -0
  766. package/dist/frontend-core/template/public/flags/VU.svg +14 -0
  767. package/dist/frontend-core/template/public/flags/WF.svg +9 -0
  768. package/dist/frontend-core/template/public/flags/WS.svg +13 -0
  769. package/dist/frontend-core/template/public/flags/XK.svg +20 -0
  770. package/dist/frontend-core/template/public/flags/YE.svg +7 -0
  771. package/dist/frontend-core/template/public/flags/YT.svg +22 -0
  772. package/dist/frontend-core/template/public/flags/ZA.svg +10 -0
  773. package/dist/frontend-core/template/public/flags/ZM.svg +9 -0
  774. package/dist/frontend-core/template/public/flags/ZW.svg +19 -0
  775. package/dist/frontend-core/template/public/silent-check-sso.html +12 -0
  776. package/dist/frontend-core/template/public/site.webmanifest +1 -0
  777. package/dist/frontend-core/template/src/components/ui/accordion/accordion.stories.tsx +47 -0
  778. package/dist/frontend-core/template/src/components/ui/accordion/accordion.tsx +52 -0
  779. package/dist/frontend-core/template/src/components/ui/admin-sidebar/admin-sidebar.tsx +195 -0
  780. package/dist/frontend-core/template/src/components/ui/alert/alert.stories.tsx +61 -0
  781. package/dist/frontend-core/template/src/components/ui/alert/alert.tsx +45 -0
  782. package/dist/frontend-core/template/src/components/ui/alert-dialog/alert-dialog.stories.tsx +52 -0
  783. package/dist/frontend-core/template/src/components/ui/alert-dialog/alert-dialog.tsx +105 -0
  784. package/dist/frontend-core/template/src/components/ui/avatar/avatar.stories.tsx +30 -0
  785. package/dist/frontend-core/template/src/components/ui/avatar/avatar.tsx +39 -0
  786. package/dist/frontend-core/template/src/components/ui/badge/badge.stories.tsx +78 -0
  787. package/dist/frontend-core/template/src/components/ui/badge/badge.tsx +48 -0
  788. package/dist/frontend-core/template/src/components/ui/breadcrumb/breadcrumb.stories.tsx +67 -0
  789. package/dist/frontend-core/template/src/components/ui/breadcrumb/breadcrumb.tsx +85 -0
  790. package/dist/frontend-core/template/src/components/ui/button/button.stories.tsx +150 -0
  791. package/dist/frontend-core/template/src/components/ui/button/button.tsx +68 -0
  792. package/dist/frontend-core/template/src/components/ui/calendar/calendar.stories.tsx +160 -0
  793. package/dist/frontend-core/template/src/components/ui/calendar/calendar.tsx +293 -0
  794. package/dist/frontend-core/template/src/components/ui/card/card.stories.tsx +77 -0
  795. package/dist/frontend-core/template/src/components/ui/card/card.tsx +45 -0
  796. package/dist/frontend-core/template/src/components/ui/card-hover/card-hover.stories.tsx +29 -0
  797. package/dist/frontend-core/template/src/components/ui/card-hover/card-hover.tsx +28 -0
  798. package/dist/frontend-core/template/src/components/ui/carousel/carousel.stories.tsx +154 -0
  799. package/dist/frontend-core/template/src/components/ui/carousel/carousel.tsx +227 -0
  800. package/dist/frontend-core/template/src/components/ui/chart/base.tsx +304 -0
  801. package/dist/frontend-core/template/src/components/ui/chart/index.ts +2 -0
  802. package/dist/frontend-core/template/src/components/ui/chart/line.stories.tsx +230 -0
  803. package/dist/frontend-core/template/src/components/ui/chart/line.tsx +121 -0
  804. package/dist/frontend-core/template/src/components/ui/chart/util.ts +3 -0
  805. package/dist/frontend-core/template/src/components/ui/checkbox/checkbox.stories.tsx +105 -0
  806. package/dist/frontend-core/template/src/components/ui/checkbox/checkbox.tsx +79 -0
  807. package/dist/frontend-core/template/src/components/ui/checkbox/shadcn-checkbox.stories.tsx +90 -0
  808. package/dist/frontend-core/template/src/components/ui/checkbox/shadcn-checkbox.tsx +54 -0
  809. package/dist/frontend-core/template/src/components/ui/collapse/collapse.stories.tsx +52 -0
  810. package/dist/frontend-core/template/src/components/ui/collapse/collapse.tsx +9 -0
  811. package/dist/frontend-core/template/src/components/ui/combobox/combobox.stories.tsx +207 -0
  812. package/dist/frontend-core/template/src/components/ui/combobox/combobox.tsx +79 -0
  813. package/dist/frontend-core/template/src/components/ui/command/command.stories.tsx +186 -0
  814. package/dist/frontend-core/template/src/components/ui/command/command.tsx +165 -0
  815. package/dist/frontend-core/template/src/components/ui/command-palette/command-palette.stories.tsx +160 -0
  816. package/dist/frontend-core/template/src/components/ui/command-palette/command-palette.tsx +134 -0
  817. package/dist/frontend-core/template/src/components/ui/content-frame/content-frame.stories.tsx +198 -0
  818. package/dist/frontend-core/template/src/components/ui/content-frame/content-frame.tsx +100 -0
  819. package/dist/frontend-core/template/src/components/ui/context-menu/context-menu.stories.tsx +78 -0
  820. package/dist/frontend-core/template/src/components/ui/context-menu/context-menu.tsx +179 -0
  821. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/cell-variant-types.ts +11 -0
  822. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/checkbox-cell.tsx +112 -0
  823. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/date-cell.tsx +158 -0
  824. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/gantt-cell.tsx +80 -0
  825. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/long-text-cell.tsx +179 -0
  826. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/multi-select-cell.tsx +284 -0
  827. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/number-cell.tsx +167 -0
  828. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/react-node-cell.tsx +32 -0
  829. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/select-cell.tsx +175 -0
  830. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/short-text-cell.tsx +137 -0
  831. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/utils/gantt-timeline.tsx +91 -0
  832. package/dist/frontend-core/template/src/components/ui/data-grid/cell-variants/utils/gantt-timerange-picker.tsx +330 -0
  833. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-cell-wrapper.tsx +212 -0
  834. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-cell.tsx +156 -0
  835. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-column-header.tsx +317 -0
  836. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-context-menu.tsx +262 -0
  837. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-row.tsx +123 -0
  838. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-search.tsx +211 -0
  839. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-types.ts +151 -0
  840. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-utils.ts +78 -0
  841. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid-view-menu.tsx +360 -0
  842. package/dist/frontend-core/template/src/components/ui/data-grid/data-grid.tsx +217 -0
  843. package/dist/frontend-core/template/src/components/ui/data-grid/hooks/use-callback-ref.ts +22 -0
  844. package/dist/frontend-core/template/src/components/ui/data-grid/hooks/use-data-grid.tsx +1888 -0
  845. package/dist/frontend-core/template/src/components/ui/data-grid/hooks/use-debounced-callback.ts +19 -0
  846. package/dist/frontend-core/template/src/components/ui/data-table/context-menu-simple.tsx +141 -0
  847. package/dist/frontend-core/template/src/components/ui/data-table/data-table.stories.tsx +146 -0
  848. package/dist/frontend-core/template/src/components/ui/data-table/data-table.tsx +448 -0
  849. package/dist/frontend-core/template/src/components/ui/data-table/renderers/country-array-cell-renderer.tsx +77 -0
  850. package/dist/frontend-core/template/src/components/ui/data-table/renderers/country-cell-renderer.tsx +56 -0
  851. package/dist/frontend-core/template/src/components/ui/data-table/renderers/favorite-cell-renderer.tsx +68 -0
  852. package/dist/frontend-core/template/src/components/ui/data-table/renderers/links-cell-renderer.tsx +205 -0
  853. package/dist/frontend-core/template/src/components/ui/data-table/utils/columns.ts +351 -0
  854. package/dist/frontend-core/template/src/components/ui/data-table/utils/data-table.utils.ts +49 -0
  855. package/dist/frontend-core/template/src/components/ui/date-picker/date-picker.stories.tsx +149 -0
  856. package/dist/frontend-core/template/src/components/ui/date-picker/date-picker.tsx +30 -0
  857. package/dist/frontend-core/template/src/components/ui/dialog/dialog.stories.tsx +80 -0
  858. package/dist/frontend-core/template/src/components/ui/dialog/dialog.tsx +134 -0
  859. package/dist/frontend-core/template/src/components/ui/drawer/drawer.stories.tsx +104 -0
  860. package/dist/frontend-core/template/src/components/ui/drawer/drawer.tsx +87 -0
  861. package/dist/frontend-core/template/src/components/ui/dropdown-menu/dropdown-menu.stories.tsx +168 -0
  862. package/dist/frontend-core/template/src/components/ui/dropdown-menu/dropdown-menu.tsx +225 -0
  863. package/dist/frontend-core/template/src/components/ui/input/input.stories.tsx +141 -0
  864. package/dist/frontend-core/template/src/components/ui/input/input.tsx +47 -0
  865. package/dist/frontend-core/template/src/components/ui/label/label.stories.tsx +41 -0
  866. package/dist/frontend-core/template/src/components/ui/label/label.tsx +20 -0
  867. package/dist/frontend-core/template/src/components/ui/loader/loader.stories.tsx +45 -0
  868. package/dist/frontend-core/template/src/components/ui/loader/loader.tsx +17 -0
  869. package/dist/frontend-core/template/src/components/ui/mark-value-renderer/mark-value-renderer.stories.tsx +114 -0
  870. package/dist/frontend-core/template/src/components/ui/mark-value-renderer/mark-value-renderer.tsx +48 -0
  871. package/dist/frontend-core/template/src/components/ui/menubar/menu.stories.tsx +134 -0
  872. package/dist/frontend-core/template/src/components/ui/menubar/menubar.tsx +208 -0
  873. package/dist/frontend-core/template/src/components/ui/modal/modal.stories.tsx +297 -0
  874. package/dist/frontend-core/template/src/components/ui/modal/modal.tsx +80 -0
  875. package/dist/frontend-core/template/src/components/ui/navigation-menu/navigation-menu.stories.tsx +213 -0
  876. package/dist/frontend-core/template/src/components/ui/navigation-menu/navigation-menu.tsx +142 -0
  877. package/dist/frontend-core/template/src/components/ui/pagination/pagination.stories.tsx +49 -0
  878. package/dist/frontend-core/template/src/components/ui/pagination/pagination.tsx +84 -0
  879. package/dist/frontend-core/template/src/components/ui/popover/popover.stories.tsx +82 -0
  880. package/dist/frontend-core/template/src/components/ui/popover/popover.tsx +55 -0
  881. package/dist/frontend-core/template/src/components/ui/progress/progress.stories.tsx +80 -0
  882. package/dist/frontend-core/template/src/components/ui/progress/progress.tsx +17 -0
  883. package/dist/frontend-core/template/src/components/ui/radio-group/radio-group.stories.tsx +154 -0
  884. package/dist/frontend-core/template/src/components/ui/radio-group/radio-group.tsx +68 -0
  885. package/dist/frontend-core/template/src/components/ui/resizable/resizable.stories.tsx +73 -0
  886. package/dist/frontend-core/template/src/components/ui/resizable/resizeable.tsx +38 -0
  887. package/dist/frontend-core/template/src/components/ui/scroll-area/scroll-area.stories.tsx +55 -0
  888. package/dist/frontend-core/template/src/components/ui/scroll-area/scroll-area.tsx +39 -0
  889. package/dist/frontend-core/template/src/components/ui/select/select.stories.tsx +297 -0
  890. package/dist/frontend-core/template/src/components/ui/select/select.tsx +227 -0
  891. package/dist/frontend-core/template/src/components/ui/separator/separator.tsx +21 -0
  892. package/dist/frontend-core/template/src/components/ui/separator/seperator.stories.tsx +25 -0
  893. package/dist/frontend-core/template/src/components/ui/sheet/sheet.stories.tsx +45 -0
  894. package/dist/frontend-core/template/src/components/ui/sheet/sheet.tsx +107 -0
  895. package/dist/frontend-core/template/src/components/ui/skeleton/skeleton.stories.tsx +26 -0
  896. package/dist/frontend-core/template/src/components/ui/skeleton/skeleton.tsx +7 -0
  897. package/dist/frontend-core/template/src/components/ui/slider/slider.stories.tsx +101 -0
  898. package/dist/frontend-core/template/src/components/ui/slider/slider.tsx +98 -0
  899. package/dist/frontend-core/template/src/components/ui/spinner/spinner.stories.tsx +19 -0
  900. package/dist/frontend-core/template/src/components/ui/spinner/spinner.tsx +21 -0
  901. package/dist/frontend-core/template/src/components/ui/spreadsheet/engine.ts +411 -0
  902. package/dist/frontend-core/template/src/components/ui/spreadsheet/format.ts +79 -0
  903. package/dist/frontend-core/template/src/components/ui/spreadsheet/index.tsx +201 -0
  904. package/dist/frontend-core/template/src/components/ui/spreadsheet/model.json +2877 -0
  905. package/dist/frontend-core/template/src/components/ui/spreadsheet/model.xlsm +0 -0
  906. package/dist/frontend-core/template/src/components/ui/spreadsheet/parser.ts +307 -0
  907. package/dist/frontend-core/template/src/components/ui/spreadsheet/types.ts +69 -0
  908. package/dist/frontend-core/template/src/components/ui/switch/switch.stories.tsx +33 -0
  909. package/dist/frontend-core/template/src/components/ui/switch/switch.tsx +28 -0
  910. package/dist/frontend-core/template/src/components/ui/tabs/tabs.stories.tsx +215 -0
  911. package/dist/frontend-core/template/src/components/ui/tabs/tabs.tsx +70 -0
  912. package/dist/frontend-core/template/src/components/ui/textarea/textarea.stories.tsx +138 -0
  913. package/dist/frontend-core/template/src/components/ui/textarea/textarea.tsx +40 -0
  914. package/dist/frontend-core/template/src/components/ui/toast/toast.mdx +31 -0
  915. package/dist/frontend-core/template/src/components/ui/toast/toast.stories.tsx +89 -0
  916. package/dist/frontend-core/template/src/components/ui/toggle/toggle.stories.tsx +65 -0
  917. package/dist/frontend-core/template/src/components/ui/toggle/toggle.tsx +38 -0
  918. package/dist/frontend-core/template/src/components/ui/toggle-group/toggle-group.stories.tsx +85 -0
  919. package/dist/frontend-core/template/src/components/ui/toggle-group/toggle-group.tsx +54 -0
  920. package/dist/frontend-core/template/src/components/ui/tooltip/tooltip.stories.tsx +29 -0
  921. package/dist/frontend-core/template/src/components/ui/tooltip/tooltip.tsx +29 -0
  922. package/dist/frontend-core/template/src/context-providers/auth-context-provider.tsx +210 -0
  923. package/dist/frontend-core/template/src/context-providers/theme-context-provider.tsx +107 -0
  924. package/dist/frontend-core/template/src/hooks/useDelay.ts +17 -0
  925. package/dist/frontend-core/template/src/hooks/useFontsLoaded.ts +17 -0
  926. package/dist/frontend-core/template/src/hooks/useMediaQuery.ts +28 -0
  927. package/dist/frontend-core/template/src/hooks/useScreenSize.ts +37 -0
  928. package/dist/frontend-core/template/src/hooks/useScrollLock.tsx +93 -0
  929. package/dist/frontend-core/template/src/hooks/useWindowFocus.ts +30 -0
  930. package/dist/frontend-core/template/src/lib/color.ts +277 -0
  931. package/dist/frontend-core/template/src/lib/compose-refs.ts +62 -0
  932. package/dist/frontend-core/template/src/lib/config.ts +77 -0
  933. package/dist/frontend-core/template/src/lib/query-client.ts +25 -0
  934. package/dist/frontend-core/template/src/lib/react.ts +25 -0
  935. package/dist/frontend-core/template/src/lib/router.tsx +26 -0
  936. package/dist/frontend-core/template/src/lib/types.ts +9 -0
  937. package/dist/frontend-core/template/src/lib/utils.ts +33 -0
  938. package/dist/frontend-core/template/src/main.tsx +48 -0
  939. package/dist/frontend-core/template/src/pages/dashboard/dashboard.page.tsx +97 -0
  940. package/dist/frontend-core/template/src/pages/error/default-error.page.tsx +20 -0
  941. package/dist/frontend-core/template/src/pages/error/not-found-error.page.tsx +17 -0
  942. package/dist/frontend-core/template/src/pages/login/login.page.tsx +50 -0
  943. package/dist/frontend-core/template/src/pages/root-document.tsx +62 -0
  944. package/dist/frontend-core/template/src/pages/unauthorized/unauthorized.page.tsx +12 -0
  945. package/dist/frontend-core/template/src/routes/__root.tsx +79 -0
  946. package/dist/frontend-core/template/src/routes/_auth-routes/dashboard.lazy.tsx +6 -0
  947. package/dist/frontend-core/template/src/routes/_auth-routes.tsx +19 -0
  948. package/dist/frontend-core/template/src/routes/index.tsx +8 -0
  949. package/dist/frontend-core/template/src/routes/login.tsx +6 -0
  950. package/dist/frontend-core/template/src/routes/unauthorized.tsx +6 -0
  951. package/dist/frontend-core/template/src/stories/Configure.mdx +363 -0
  952. package/dist/frontend-core/template/src/stories/assets/accessibility.png +0 -0
  953. package/dist/frontend-core/template/src/stories/assets/accessibility.svg +1 -0
  954. package/dist/frontend-core/template/src/stories/assets/addon-library.png +0 -0
  955. package/dist/frontend-core/template/src/stories/assets/assets.png +0 -0
  956. package/dist/frontend-core/template/src/stories/assets/avif-test-image.avif +0 -0
  957. package/dist/frontend-core/template/src/stories/assets/context.png +0 -0
  958. package/dist/frontend-core/template/src/stories/assets/discord.svg +1 -0
  959. package/dist/frontend-core/template/src/stories/assets/docs.png +0 -0
  960. package/dist/frontend-core/template/src/stories/assets/figma-plugin.png +0 -0
  961. package/dist/frontend-core/template/src/stories/assets/github.svg +1 -0
  962. package/dist/frontend-core/template/src/stories/assets/share.png +0 -0
  963. package/dist/frontend-core/template/src/stories/assets/styling.png +0 -0
  964. package/dist/frontend-core/template/src/stories/assets/testing.png +0 -0
  965. package/dist/frontend-core/template/src/stories/assets/theming.png +0 -0
  966. package/dist/frontend-core/template/src/stories/assets/tutorials.svg +1 -0
  967. package/dist/frontend-core/template/src/stories/assets/youtube.svg +1 -0
  968. package/dist/frontend-core/template/src/styles/styles.css +33 -0
  969. package/dist/frontend-core/template/src/styles/theme-default.css +183 -0
  970. package/dist/frontend-core/template/src/vite-env.d.ts +2 -0
  971. package/dist/frontend-core/template/tsconfig.json +103 -0
  972. package/dist/frontend-core/template/vite.config.ts +167 -0
  973. package/dist/frontend-core/template/vitest.shims.d.ts +1 -0
  974. package/dist/frontend-core/types/component.d.ts +1 -0
  975. package/dist/frontend-core/types/component.js +3 -0
  976. package/dist/frontend-core/types/component.js.map +1 -0
  977. package/dist/frontend-core/types/contextprovider.d.ts +1 -0
  978. package/dist/frontend-core/types/contextprovider.js +3 -0
  979. package/dist/frontend-core/types/contextprovider.js.map +1 -0
  980. package/dist/frontend-core/types/hook.d.ts +1 -0
  981. package/dist/frontend-core/types/hook.js +3 -0
  982. package/dist/frontend-core/types/hook.js.map +1 -0
  983. package/dist/frontend-core/types.d.ts +35 -0
  984. package/dist/frontend-core/types.js +3 -0
  985. package/dist/frontend-core/types.js.map +1 -0
  986. package/dist/frontend-forms/forms.generator.d.ts +54 -0
  987. package/dist/frontend-forms/forms.generator.js +190 -0
  988. package/dist/frontend-forms/forms.generator.js.map +1 -0
  989. package/dist/frontend-forms/generators/discriminated-union/fields.generator.d.ts +11 -0
  990. package/dist/frontend-forms/generators/discriminated-union/fields.generator.js +310 -0
  991. package/dist/frontend-forms/generators/discriminated-union/fields.generator.js.map +1 -0
  992. package/dist/frontend-forms/generators/discriminated-union/inputs.generator.d.ts +7 -0
  993. package/dist/frontend-forms/generators/discriminated-union/inputs.generator.js +69 -0
  994. package/dist/frontend-forms/generators/discriminated-union/inputs.generator.js.map +1 -0
  995. package/dist/frontend-forms/generators/enum/inputs.generator.d.ts +5 -0
  996. package/dist/frontend-forms/generators/enum/inputs.generator.js +69 -0
  997. package/dist/frontend-forms/generators/enum/inputs.generator.js.map +1 -0
  998. package/dist/frontend-forms/generators/model/forms.generator.d.ts +11 -0
  999. package/dist/frontend-forms/generators/model/forms.generator.js +549 -0
  1000. package/dist/frontend-forms/generators/model/forms.generator.js.map +1 -0
  1001. package/dist/frontend-forms/generators/model/inputs.generator.d.ts +5 -0
  1002. package/dist/frontend-forms/generators/model/inputs.generator.js +148 -0
  1003. package/dist/frontend-forms/generators/model/inputs.generator.js.map +1 -0
  1004. package/dist/frontend-forms/index.d.ts +5 -0
  1005. package/dist/frontend-forms/index.js +40 -0
  1006. package/dist/frontend-forms/index.js.map +1 -0
  1007. package/dist/frontend-forms/template/src/components/ui/field/field.tsx +226 -0
  1008. package/dist/frontend-tables/generators/model-context.generator.d.ts +5 -0
  1009. package/dist/frontend-tables/generators/model-context.generator.js +72 -0
  1010. package/dist/frontend-tables/generators/model-context.generator.js.map +1 -0
  1011. package/dist/frontend-tables/generators/model-table.generator.d.ts +5 -0
  1012. package/dist/frontend-tables/generators/model-table.generator.js +339 -0
  1013. package/dist/frontend-tables/generators/model-table.generator.js.map +1 -0
  1014. package/dist/frontend-tables/index.d.ts +5 -0
  1015. package/dist/frontend-tables/index.js +40 -0
  1016. package/dist/frontend-tables/index.js.map +1 -0
  1017. package/dist/frontend-tables/tables.generator.d.ts +49 -0
  1018. package/dist/frontend-tables/tables.generator.js +104 -0
  1019. package/dist/frontend-tables/tables.generator.js.map +1 -0
  1020. package/dist/frontend-trpc-client/generators/model-hook.generator.d.ts +5 -0
  1021. package/dist/frontend-trpc-client/generators/model-hook.generator.js +107 -0
  1022. package/dist/frontend-trpc-client/generators/model-hook.generator.js.map +1 -0
  1023. package/dist/frontend-trpc-client/generators/trpc-client.generator.d.ts +5 -0
  1024. package/dist/frontend-trpc-client/generators/trpc-client.generator.js +64 -0
  1025. package/dist/frontend-trpc-client/generators/trpc-client.generator.js.map +1 -0
  1026. package/dist/frontend-trpc-client/index.d.ts +4 -0
  1027. package/dist/frontend-trpc-client/index.js +40 -0
  1028. package/dist/frontend-trpc-client/index.js.map +1 -0
  1029. package/dist/frontend-trpc-client/trpc-client.generator.d.ts +82 -0
  1030. package/dist/frontend-trpc-client/trpc-client.generator.js +125 -0
  1031. package/dist/frontend-trpc-client/trpc-client.generator.js.map +1 -0
  1032. package/dist/generators.d.ts +2 -0
  1033. package/dist/generators.js +59 -0
  1034. package/dist/generators.js.map +1 -0
  1035. package/dist/index.d.ts +28 -0
  1036. package/dist/index.js +125 -0
  1037. package/dist/index.js.map +1 -0
  1038. package/dist/mock-data/generators/data-mocker.generator.d.ts +2 -0
  1039. package/dist/mock-data/generators/data-mocker.generator.js +235 -0
  1040. package/dist/mock-data/generators/data-mocker.generator.js.map +1 -0
  1041. package/dist/mock-data/generators/id-tracker.generator.d.ts +2 -0
  1042. package/dist/mock-data/generators/id-tracker.generator.js +101 -0
  1043. package/dist/mock-data/generators/id-tracker.generator.js.map +1 -0
  1044. package/dist/mock-data/generators/model-stub.generator.d.ts +10 -0
  1045. package/dist/mock-data/generators/model-stub.generator.js +179 -0
  1046. package/dist/mock-data/generators/model-stub.generator.js.map +1 -0
  1047. package/dist/mock-data/index.d.ts +4 -0
  1048. package/dist/mock-data/index.js +40 -0
  1049. package/dist/mock-data/index.js.map +1 -0
  1050. package/dist/mock-data/mock-data.generator.d.ts +34 -0
  1051. package/dist/mock-data/mock-data.generator.js +121 -0
  1052. package/dist/mock-data/mock-data.generator.js.map +1 -0
  1053. package/dist/seed-data/generator/excel-template.generator.d.ts +8 -0
  1054. package/dist/seed-data/generator/excel-template.generator.js +221 -0
  1055. package/dist/seed-data/generator/excel-template.generator.js.map +1 -0
  1056. package/dist/seed-data/generator/model-seed-data.generator.d.ts +15 -0
  1057. package/dist/seed-data/generator/model-seed-data.generator.js +231 -0
  1058. package/dist/seed-data/generator/model-seed-data.generator.js.map +1 -0
  1059. package/dist/seed-data/generator/seed-migration-types.generator.d.ts +2 -0
  1060. package/dist/seed-data/generator/seed-migration-types.generator.js +44 -0
  1061. package/dist/seed-data/generator/seed-migration-types.generator.js.map +1 -0
  1062. package/dist/seed-data/generator/seed-migrations.generator.d.ts +2 -0
  1063. package/dist/seed-data/generator/seed-migrations.generator.js +57 -0
  1064. package/dist/seed-data/generator/seed-migrations.generator.js.map +1 -0
  1065. package/dist/seed-data/index.d.ts +5 -0
  1066. package/dist/seed-data/index.js +40 -0
  1067. package/dist/seed-data/index.js.map +1 -0
  1068. package/dist/seed-data/seed-data.generator.d.ts +74 -0
  1069. package/dist/seed-data/seed-data.generator.js +131 -0
  1070. package/dist/seed-data/seed-data.generator.js.map +1 -0
  1071. package/dist/types/generators/discriminated-union.generator.d.ts +6 -0
  1072. package/dist/types/generators/discriminated-union.generator.js +86 -0
  1073. package/dist/types/generators/discriminated-union.generator.js.map +1 -0
  1074. package/dist/types/generators/dto-types.generator.d.ts +2 -0
  1075. package/dist/types/generators/dto-types.generator.js +32 -0
  1076. package/dist/types/generators/dto-types.generator.js.map +1 -0
  1077. package/dist/types/generators/enum-type.generator.d.ts +2 -0
  1078. package/dist/types/generators/enum-type.generator.js +65 -0
  1079. package/dist/types/generators/enum-type.generator.js.map +1 -0
  1080. package/dist/types/generators/model-type.generator.d.ts +13 -0
  1081. package/dist/types/generators/model-type.generator.js +171 -0
  1082. package/dist/types/generators/model-type.generator.js.map +1 -0
  1083. package/dist/types/generators/models.generator.d.ts +2 -0
  1084. package/dist/types/generators/models.generator.js +9 -0
  1085. package/dist/types/generators/models.generator.js.map +1 -0
  1086. package/dist/types/index.d.ts +6 -0
  1087. package/dist/types/index.js +10 -0
  1088. package/dist/types/index.js.map +1 -0
  1089. package/dist/types/types.generator.d.ts +179 -0
  1090. package/dist/types/types.generator.js +220 -0
  1091. package/dist/types/types.generator.js.map +1 -0
  1092. package/dist/types/types.generator.mock.d.ts +2 -0
  1093. package/dist/types/types.generator.mock.js +16 -0
  1094. package/dist/types/types.generator.mock.js.map +1 -0
  1095. package/package.json +70 -0
@@ -0,0 +1,2877 @@
1
+ {
2
+ "rows": 7,
3
+ "cols": 20,
4
+ "colWidths": [167, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 62],
5
+ "rowHeights": [19, 19, 19, 19, 20, 19, 19],
6
+ "merged": [],
7
+ "cells": [
8
+ {
9
+ "r": 0,
10
+ "c": 0,
11
+ "value": null,
12
+ "fmt": { "numberFormat": "General" },
13
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
14
+ "font": {
15
+ "name": "Aptos Narrow",
16
+ "size": 11,
17
+ "bold": false,
18
+ "italic": false,
19
+ "underline": false,
20
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
21
+ },
22
+ "borders": {
23
+ "top": null,
24
+ "right": null,
25
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
26
+ "left": null
27
+ }
28
+ },
29
+ {
30
+ "r": 0,
31
+ "c": 1,
32
+ "value": "Unit",
33
+ "fmt": { "numberFormat": "General" },
34
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
35
+ "font": {
36
+ "name": "Aptos Narrow",
37
+ "size": 11,
38
+ "bold": false,
39
+ "italic": false,
40
+ "underline": false,
41
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
42
+ },
43
+ "borders": {
44
+ "top": null,
45
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
46
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
47
+ "left": null
48
+ }
49
+ },
50
+ {
51
+ "r": 0,
52
+ "c": 2,
53
+ "value": "Q4/25",
54
+ "fmt": { "numberFormat": "General" },
55
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
56
+ "font": {
57
+ "name": "Aptos Narrow",
58
+ "size": 11,
59
+ "bold": false,
60
+ "italic": false,
61
+ "underline": false,
62
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
63
+ },
64
+ "borders": {
65
+ "top": null,
66
+ "right": null,
67
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
68
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
69
+ }
70
+ },
71
+ {
72
+ "r": 0,
73
+ "c": 3,
74
+ "value": 2025,
75
+ "fmt": { "numberFormat": "General" },
76
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
77
+ "font": {
78
+ "name": "Aptos Narrow",
79
+ "size": 11,
80
+ "bold": true,
81
+ "italic": false,
82
+ "underline": false,
83
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
84
+ },
85
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
86
+ "borders": {
87
+ "top": null,
88
+ "right": null,
89
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
90
+ "left": null
91
+ }
92
+ },
93
+ {
94
+ "r": 0,
95
+ "c": 4,
96
+ "value": "Q1/26",
97
+ "fmt": { "numberFormat": "General" },
98
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
99
+ "font": {
100
+ "name": "Aptos Narrow",
101
+ "size": 11,
102
+ "bold": false,
103
+ "italic": false,
104
+ "underline": false,
105
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
106
+ },
107
+ "borders": {
108
+ "top": null,
109
+ "right": null,
110
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
111
+ "left": null
112
+ }
113
+ },
114
+ {
115
+ "r": 0,
116
+ "c": 5,
117
+ "value": "Q2/26",
118
+ "fmt": { "numberFormat": "General" },
119
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
120
+ "font": {
121
+ "name": "Aptos Narrow",
122
+ "size": 11,
123
+ "bold": false,
124
+ "italic": false,
125
+ "underline": false,
126
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
127
+ },
128
+ "borders": {
129
+ "top": null,
130
+ "right": null,
131
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
132
+ "left": null
133
+ }
134
+ },
135
+ {
136
+ "r": 0,
137
+ "c": 6,
138
+ "value": "Q3/26",
139
+ "fmt": { "numberFormat": "General" },
140
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
141
+ "font": {
142
+ "name": "Aptos Narrow",
143
+ "size": 11,
144
+ "bold": false,
145
+ "italic": false,
146
+ "underline": false,
147
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
148
+ },
149
+ "borders": {
150
+ "top": null,
151
+ "right": null,
152
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
153
+ "left": null
154
+ }
155
+ },
156
+ {
157
+ "r": 0,
158
+ "c": 7,
159
+ "value": "Q4/26",
160
+ "fmt": { "numberFormat": "General" },
161
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
162
+ "font": {
163
+ "name": "Aptos Narrow",
164
+ "size": 11,
165
+ "bold": false,
166
+ "italic": false,
167
+ "underline": false,
168
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
169
+ },
170
+ "borders": {
171
+ "top": null,
172
+ "right": null,
173
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
174
+ "left": null
175
+ }
176
+ },
177
+ {
178
+ "r": 0,
179
+ "c": 8,
180
+ "value": 2026,
181
+ "fmt": { "numberFormat": "General" },
182
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
183
+ "font": {
184
+ "name": "Aptos Narrow",
185
+ "size": 11,
186
+ "bold": true,
187
+ "italic": false,
188
+ "underline": false,
189
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
190
+ },
191
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
192
+ "borders": {
193
+ "top": null,
194
+ "right": null,
195
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
196
+ "left": null
197
+ }
198
+ },
199
+ {
200
+ "r": 0,
201
+ "c": 9,
202
+ "value": "Q1/27",
203
+ "fmt": { "numberFormat": "General" },
204
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
205
+ "font": {
206
+ "name": "Aptos Narrow",
207
+ "size": 11,
208
+ "bold": false,
209
+ "italic": false,
210
+ "underline": false,
211
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
212
+ },
213
+ "borders": {
214
+ "top": null,
215
+ "right": null,
216
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
217
+ "left": null
218
+ }
219
+ },
220
+ {
221
+ "r": 0,
222
+ "c": 10,
223
+ "value": "Q2/27",
224
+ "fmt": { "numberFormat": "General" },
225
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
226
+ "font": {
227
+ "name": "Aptos Narrow",
228
+ "size": 11,
229
+ "bold": false,
230
+ "italic": false,
231
+ "underline": false,
232
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
233
+ },
234
+ "borders": {
235
+ "top": null,
236
+ "right": null,
237
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
238
+ "left": null
239
+ }
240
+ },
241
+ {
242
+ "r": 0,
243
+ "c": 11,
244
+ "value": "Q3/27",
245
+ "fmt": { "numberFormat": "General" },
246
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
247
+ "font": {
248
+ "name": "Aptos Narrow",
249
+ "size": 11,
250
+ "bold": false,
251
+ "italic": false,
252
+ "underline": false,
253
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
254
+ },
255
+ "borders": {
256
+ "top": null,
257
+ "right": null,
258
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
259
+ "left": null
260
+ }
261
+ },
262
+ {
263
+ "r": 0,
264
+ "c": 12,
265
+ "value": "Q4/27",
266
+ "fmt": { "numberFormat": "General" },
267
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
268
+ "font": {
269
+ "name": "Aptos Narrow",
270
+ "size": 11,
271
+ "bold": false,
272
+ "italic": false,
273
+ "underline": false,
274
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
275
+ },
276
+ "borders": {
277
+ "top": null,
278
+ "right": null,
279
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
280
+ "left": null
281
+ }
282
+ },
283
+ {
284
+ "r": 0,
285
+ "c": 13,
286
+ "value": 2027,
287
+ "fmt": { "numberFormat": "General" },
288
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
289
+ "font": {
290
+ "name": "Aptos Narrow",
291
+ "size": 11,
292
+ "bold": true,
293
+ "italic": false,
294
+ "underline": false,
295
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
296
+ },
297
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
298
+ "borders": {
299
+ "top": null,
300
+ "right": null,
301
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
302
+ "left": null
303
+ }
304
+ },
305
+ {
306
+ "r": 0,
307
+ "c": 14,
308
+ "value": "Q1/28",
309
+ "fmt": { "numberFormat": "General" },
310
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
311
+ "font": {
312
+ "name": "Aptos Narrow",
313
+ "size": 11,
314
+ "bold": false,
315
+ "italic": false,
316
+ "underline": false,
317
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
318
+ },
319
+ "borders": {
320
+ "top": null,
321
+ "right": null,
322
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
323
+ "left": null
324
+ }
325
+ },
326
+ {
327
+ "r": 0,
328
+ "c": 15,
329
+ "value": "Q2/28",
330
+ "fmt": { "numberFormat": "General" },
331
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
332
+ "font": {
333
+ "name": "Aptos Narrow",
334
+ "size": 11,
335
+ "bold": false,
336
+ "italic": false,
337
+ "underline": false,
338
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
339
+ },
340
+ "borders": {
341
+ "top": null,
342
+ "right": null,
343
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
344
+ "left": null
345
+ }
346
+ },
347
+ {
348
+ "r": 0,
349
+ "c": 16,
350
+ "value": "Q3/28",
351
+ "fmt": { "numberFormat": "General" },
352
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
353
+ "font": {
354
+ "name": "Aptos Narrow",
355
+ "size": 11,
356
+ "bold": false,
357
+ "italic": false,
358
+ "underline": false,
359
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
360
+ },
361
+ "borders": {
362
+ "top": null,
363
+ "right": null,
364
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
365
+ "left": null
366
+ }
367
+ },
368
+ {
369
+ "r": 0,
370
+ "c": 17,
371
+ "value": "Q4/28",
372
+ "fmt": { "numberFormat": "General" },
373
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
374
+ "font": {
375
+ "name": "Aptos Narrow",
376
+ "size": 11,
377
+ "bold": false,
378
+ "italic": false,
379
+ "underline": false,
380
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
381
+ },
382
+ "borders": {
383
+ "top": null,
384
+ "right": null,
385
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
386
+ "left": null
387
+ }
388
+ },
389
+ {
390
+ "r": 0,
391
+ "c": 18,
392
+ "value": 2028,
393
+ "fmt": { "numberFormat": "General" },
394
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
395
+ "font": {
396
+ "name": "Aptos Narrow",
397
+ "size": 11,
398
+ "bold": true,
399
+ "italic": false,
400
+ "underline": false,
401
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
402
+ },
403
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
404
+ "borders": {
405
+ "top": null,
406
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
407
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
408
+ "left": null
409
+ }
410
+ },
411
+ {
412
+ "r": 0,
413
+ "c": 19,
414
+ "value": "Total",
415
+ "fmt": { "numberFormat": "General" },
416
+ "align": { "horizontal": "left", "vertical": "bottom", "wrapText": false },
417
+ "font": {
418
+ "name": "Aptos Narrow",
419
+ "size": 11,
420
+ "bold": true,
421
+ "italic": false,
422
+ "underline": false,
423
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
424
+ },
425
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
426
+ "borders": {
427
+ "top": null,
428
+ "right": null,
429
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
430
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
431
+ }
432
+ },
433
+ {
434
+ "r": 1,
435
+ "c": 0,
436
+ "value": "Sales / Revenue Impact",
437
+ "fmt": { "numberFormat": "General" },
438
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
439
+ "font": {
440
+ "name": "Aptos Narrow",
441
+ "size": 11,
442
+ "bold": false,
443
+ "italic": false,
444
+ "underline": false,
445
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
446
+ },
447
+ "borders": {
448
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
449
+ "right": null,
450
+ "bottom": null,
451
+ "left": null
452
+ }
453
+ },
454
+ {
455
+ "r": 1,
456
+ "c": 1,
457
+ "value": "$",
458
+ "fmt": { "numberFormat": "General" },
459
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
460
+ "font": {
461
+ "name": "Aptos Narrow",
462
+ "size": 11,
463
+ "bold": false,
464
+ "italic": false,
465
+ "underline": false,
466
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
467
+ },
468
+ "borders": {
469
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
470
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
471
+ "bottom": null,
472
+ "left": null
473
+ }
474
+ },
475
+ {
476
+ "r": 1,
477
+ "c": 2,
478
+ "value": 38,
479
+ "fmt": { "numberFormat": "#,##0" },
480
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
481
+ "font": {
482
+ "name": "Aptos Narrow",
483
+ "size": 11,
484
+ "bold": false,
485
+ "italic": false,
486
+ "underline": false,
487
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
488
+ },
489
+ "borders": {
490
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
491
+ "right": null,
492
+ "bottom": null,
493
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
494
+ },
495
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 0 }
496
+ },
497
+ {
498
+ "r": 1,
499
+ "c": 4,
500
+ "value": 147,
501
+ "fmt": { "numberFormat": "#,##0" },
502
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
503
+ "font": {
504
+ "name": "Aptos Narrow",
505
+ "size": 11,
506
+ "bold": false,
507
+ "italic": false,
508
+ "underline": false,
509
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
510
+ },
511
+ "borders": {
512
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
513
+ "right": null,
514
+ "bottom": null,
515
+ "left": null
516
+ },
517
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 2 }
518
+ },
519
+ {
520
+ "r": 1,
521
+ "c": 5,
522
+ "value": 14,
523
+ "fmt": { "numberFormat": "#,##0" },
524
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
525
+ "font": {
526
+ "name": "Aptos Narrow",
527
+ "size": 11,
528
+ "bold": false,
529
+ "italic": false,
530
+ "underline": false,
531
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
532
+ },
533
+ "borders": {
534
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
535
+ "right": null,
536
+ "bottom": null,
537
+ "left": null
538
+ },
539
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 3 }
540
+ },
541
+ {
542
+ "r": 1,
543
+ "c": 6,
544
+ "value": 183,
545
+ "fmt": { "numberFormat": "#,##0" },
546
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
547
+ "font": {
548
+ "name": "Aptos Narrow",
549
+ "size": 11,
550
+ "bold": false,
551
+ "italic": false,
552
+ "underline": false,
553
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
554
+ },
555
+ "borders": {
556
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
557
+ "right": null,
558
+ "bottom": null,
559
+ "left": null
560
+ },
561
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 4 }
562
+ },
563
+ {
564
+ "r": 1,
565
+ "c": 7,
566
+ "value": 19,
567
+ "fmt": { "numberFormat": "#,##0" },
568
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
569
+ "font": {
570
+ "name": "Aptos Narrow",
571
+ "size": 11,
572
+ "bold": false,
573
+ "italic": false,
574
+ "underline": false,
575
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
576
+ },
577
+ "borders": {
578
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
579
+ "right": null,
580
+ "bottom": null,
581
+ "left": null
582
+ },
583
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 5 }
584
+ },
585
+ {
586
+ "r": 1,
587
+ "c": 9,
588
+ "value": 49,
589
+ "fmt": { "numberFormat": "#,##0" },
590
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
591
+ "font": {
592
+ "name": "Aptos Narrow",
593
+ "size": 11,
594
+ "bold": false,
595
+ "italic": false,
596
+ "underline": false,
597
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
598
+ },
599
+ "borders": {
600
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
601
+ "right": null,
602
+ "bottom": null,
603
+ "left": null
604
+ },
605
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 7 }
606
+ },
607
+ {
608
+ "r": 1,
609
+ "c": 10,
610
+ "value": 85,
611
+ "fmt": { "numberFormat": "#,##0" },
612
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
613
+ "font": {
614
+ "name": "Aptos Narrow",
615
+ "size": 11,
616
+ "bold": false,
617
+ "italic": false,
618
+ "underline": false,
619
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
620
+ },
621
+ "borders": {
622
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
623
+ "right": null,
624
+ "bottom": null,
625
+ "left": null
626
+ },
627
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 8 }
628
+ },
629
+ {
630
+ "r": 1,
631
+ "c": 11,
632
+ "value": 5,
633
+ "fmt": { "numberFormat": "#,##0" },
634
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
635
+ "font": {
636
+ "name": "Aptos Narrow",
637
+ "size": 11,
638
+ "bold": false,
639
+ "italic": false,
640
+ "underline": false,
641
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
642
+ },
643
+ "borders": {
644
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
645
+ "right": null,
646
+ "bottom": null,
647
+ "left": null
648
+ },
649
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 9 }
650
+ },
651
+ {
652
+ "r": 1,
653
+ "c": 12,
654
+ "value": 161,
655
+ "fmt": { "numberFormat": "#,##0" },
656
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
657
+ "font": {
658
+ "name": "Aptos Narrow",
659
+ "size": 11,
660
+ "bold": false,
661
+ "italic": false,
662
+ "underline": false,
663
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
664
+ },
665
+ "borders": {
666
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
667
+ "right": null,
668
+ "bottom": null,
669
+ "left": null
670
+ },
671
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 10 }
672
+ },
673
+ {
674
+ "r": 1,
675
+ "c": 14,
676
+ "value": 8,
677
+ "fmt": { "numberFormat": "#,##0" },
678
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
679
+ "font": {
680
+ "name": "Aptos Narrow",
681
+ "size": 11,
682
+ "bold": false,
683
+ "italic": false,
684
+ "underline": false,
685
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
686
+ },
687
+ "borders": {
688
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
689
+ "right": null,
690
+ "bottom": null,
691
+ "left": null
692
+ },
693
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 12 }
694
+ },
695
+ {
696
+ "r": 1,
697
+ "c": 15,
698
+ "value": 49,
699
+ "fmt": { "numberFormat": "#,##0" },
700
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
701
+ "font": {
702
+ "name": "Aptos Narrow",
703
+ "size": 11,
704
+ "bold": false,
705
+ "italic": false,
706
+ "underline": false,
707
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
708
+ },
709
+ "borders": {
710
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
711
+ "right": null,
712
+ "bottom": null,
713
+ "left": null
714
+ },
715
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 13 }
716
+ },
717
+ {
718
+ "r": 1,
719
+ "c": 16,
720
+ "value": 105,
721
+ "fmt": { "numberFormat": "#,##0" },
722
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
723
+ "font": {
724
+ "name": "Aptos Narrow",
725
+ "size": 11,
726
+ "bold": false,
727
+ "italic": false,
728
+ "underline": false,
729
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
730
+ },
731
+ "borders": {
732
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
733
+ "right": null,
734
+ "bottom": null,
735
+ "left": null
736
+ },
737
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 14 }
738
+ },
739
+ {
740
+ "r": 1,
741
+ "c": 17,
742
+ "value": 163,
743
+ "fmt": { "numberFormat": "#,##0" },
744
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
745
+ "font": {
746
+ "name": "Aptos Narrow",
747
+ "size": 11,
748
+ "bold": false,
749
+ "italic": false,
750
+ "underline": false,
751
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
752
+ },
753
+ "borders": {
754
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
755
+ "right": null,
756
+ "bottom": null,
757
+ "left": null
758
+ },
759
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 15 }
760
+ },
761
+ {
762
+ "r": 2,
763
+ "c": 0,
764
+ "value": "COGS",
765
+ "fmt": { "numberFormat": "General" },
766
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
767
+ "font": {
768
+ "name": "Aptos Narrow",
769
+ "size": 11,
770
+ "bold": false,
771
+ "italic": false,
772
+ "underline": false,
773
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
774
+ }
775
+ },
776
+ {
777
+ "r": 2,
778
+ "c": 1,
779
+ "value": "$",
780
+ "fmt": { "numberFormat": "General" },
781
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
782
+ "font": {
783
+ "name": "Aptos Narrow",
784
+ "size": 11,
785
+ "bold": false,
786
+ "italic": false,
787
+ "underline": false,
788
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
789
+ },
790
+ "borders": {
791
+ "top": null,
792
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
793
+ "bottom": null,
794
+ "left": null
795
+ }
796
+ },
797
+ {
798
+ "r": 2,
799
+ "c": 2,
800
+ "value": -35,
801
+ "fmt": { "numberFormat": "#,##0" },
802
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
803
+ "font": {
804
+ "name": "Aptos Narrow",
805
+ "size": 11,
806
+ "bold": false,
807
+ "italic": false,
808
+ "underline": false,
809
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
810
+ },
811
+ "borders": {
812
+ "top": null,
813
+ "right": null,
814
+ "bottom": null,
815
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
816
+ },
817
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 0 }
818
+ },
819
+ {
820
+ "r": 2,
821
+ "c": 4,
822
+ "value": -28,
823
+ "fmt": { "numberFormat": "#,##0" },
824
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
825
+ "font": {
826
+ "name": "Aptos Narrow",
827
+ "size": 11,
828
+ "bold": false,
829
+ "italic": false,
830
+ "underline": false,
831
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
832
+ },
833
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 2 }
834
+ },
835
+ {
836
+ "r": 2,
837
+ "c": 5,
838
+ "value": -18,
839
+ "fmt": { "numberFormat": "#,##0" },
840
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
841
+ "font": {
842
+ "name": "Aptos Narrow",
843
+ "size": 11,
844
+ "bold": false,
845
+ "italic": false,
846
+ "underline": false,
847
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
848
+ },
849
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 3 }
850
+ },
851
+ {
852
+ "r": 2,
853
+ "c": 6,
854
+ "value": -22,
855
+ "fmt": { "numberFormat": "#,##0" },
856
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
857
+ "font": {
858
+ "name": "Aptos Narrow",
859
+ "size": 11,
860
+ "bold": false,
861
+ "italic": false,
862
+ "underline": false,
863
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
864
+ },
865
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 4 }
866
+ },
867
+ {
868
+ "r": 2,
869
+ "c": 7,
870
+ "value": -26,
871
+ "fmt": { "numberFormat": "#,##0" },
872
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
873
+ "font": {
874
+ "name": "Aptos Narrow",
875
+ "size": 11,
876
+ "bold": false,
877
+ "italic": false,
878
+ "underline": false,
879
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
880
+ },
881
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 5 }
882
+ },
883
+ {
884
+ "r": 2,
885
+ "c": 9,
886
+ "value": -12,
887
+ "fmt": { "numberFormat": "#,##0" },
888
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
889
+ "font": {
890
+ "name": "Aptos Narrow",
891
+ "size": 11,
892
+ "bold": false,
893
+ "italic": false,
894
+ "underline": false,
895
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
896
+ },
897
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 7 }
898
+ },
899
+ {
900
+ "r": 2,
901
+ "c": 10,
902
+ "value": -5,
903
+ "fmt": { "numberFormat": "#,##0" },
904
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
905
+ "font": {
906
+ "name": "Aptos Narrow",
907
+ "size": 11,
908
+ "bold": false,
909
+ "italic": false,
910
+ "underline": false,
911
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
912
+ },
913
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 8 }
914
+ },
915
+ {
916
+ "r": 2,
917
+ "c": 11,
918
+ "value": -40,
919
+ "fmt": { "numberFormat": "#,##0" },
920
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
921
+ "font": {
922
+ "name": "Aptos Narrow",
923
+ "size": 11,
924
+ "bold": false,
925
+ "italic": false,
926
+ "underline": false,
927
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
928
+ },
929
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 9 }
930
+ },
931
+ {
932
+ "r": 2,
933
+ "c": 12,
934
+ "value": -22,
935
+ "fmt": { "numberFormat": "#,##0" },
936
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
937
+ "font": {
938
+ "name": "Aptos Narrow",
939
+ "size": 11,
940
+ "bold": false,
941
+ "italic": false,
942
+ "underline": false,
943
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
944
+ },
945
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 10 }
946
+ },
947
+ {
948
+ "r": 2,
949
+ "c": 14,
950
+ "value": -36,
951
+ "fmt": { "numberFormat": "#,##0" },
952
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
953
+ "font": {
954
+ "name": "Aptos Narrow",
955
+ "size": 11,
956
+ "bold": false,
957
+ "italic": false,
958
+ "underline": false,
959
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
960
+ },
961
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 12 }
962
+ },
963
+ {
964
+ "r": 2,
965
+ "c": 15,
966
+ "value": -7,
967
+ "fmt": { "numberFormat": "#,##0" },
968
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
969
+ "font": {
970
+ "name": "Aptos Narrow",
971
+ "size": 11,
972
+ "bold": false,
973
+ "italic": false,
974
+ "underline": false,
975
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
976
+ },
977
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 13 }
978
+ },
979
+ {
980
+ "r": 2,
981
+ "c": 16,
982
+ "value": -3,
983
+ "fmt": { "numberFormat": "#,##0" },
984
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
985
+ "font": {
986
+ "name": "Aptos Narrow",
987
+ "size": 11,
988
+ "bold": false,
989
+ "italic": false,
990
+ "underline": false,
991
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
992
+ },
993
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 14 }
994
+ },
995
+ {
996
+ "r": 2,
997
+ "c": 17,
998
+ "value": -48,
999
+ "fmt": { "numberFormat": "#,##0" },
1000
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1001
+ "font": {
1002
+ "name": "Aptos Narrow",
1003
+ "size": 11,
1004
+ "bold": false,
1005
+ "italic": false,
1006
+ "underline": false,
1007
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1008
+ },
1009
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 15 }
1010
+ },
1011
+ {
1012
+ "r": 3,
1013
+ "c": 0,
1014
+ "value": "SG&A",
1015
+ "fmt": { "numberFormat": "General" },
1016
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
1017
+ "font": {
1018
+ "name": "Aptos Narrow",
1019
+ "size": 11,
1020
+ "bold": false,
1021
+ "italic": false,
1022
+ "underline": false,
1023
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1024
+ },
1025
+ "borders": {
1026
+ "top": null,
1027
+ "right": null,
1028
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1029
+ "left": null
1030
+ }
1031
+ },
1032
+ {
1033
+ "r": 3,
1034
+ "c": 1,
1035
+ "value": "$",
1036
+ "fmt": { "numberFormat": "General" },
1037
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
1038
+ "font": {
1039
+ "name": "Aptos Narrow",
1040
+ "size": 11,
1041
+ "bold": false,
1042
+ "italic": false,
1043
+ "underline": false,
1044
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1045
+ },
1046
+ "borders": {
1047
+ "top": null,
1048
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1049
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1050
+ "left": null
1051
+ }
1052
+ },
1053
+ {
1054
+ "r": 3,
1055
+ "c": 2,
1056
+ "value": -22,
1057
+ "fmt": { "numberFormat": "#,##0" },
1058
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1059
+ "font": {
1060
+ "name": "Aptos Narrow",
1061
+ "size": 11,
1062
+ "bold": false,
1063
+ "italic": false,
1064
+ "underline": false,
1065
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1066
+ },
1067
+ "borders": {
1068
+ "top": null,
1069
+ "right": null,
1070
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1071
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
1072
+ },
1073
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 0 }
1074
+ },
1075
+ {
1076
+ "r": 3,
1077
+ "c": 4,
1078
+ "value": -37,
1079
+ "fmt": { "numberFormat": "#,##0" },
1080
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1081
+ "font": {
1082
+ "name": "Aptos Narrow",
1083
+ "size": 11,
1084
+ "bold": false,
1085
+ "italic": false,
1086
+ "underline": false,
1087
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1088
+ },
1089
+ "borders": {
1090
+ "top": null,
1091
+ "right": null,
1092
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1093
+ "left": null
1094
+ },
1095
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 2 }
1096
+ },
1097
+ {
1098
+ "r": 3,
1099
+ "c": 5,
1100
+ "value": -27,
1101
+ "fmt": { "numberFormat": "#,##0" },
1102
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1103
+ "font": {
1104
+ "name": "Aptos Narrow",
1105
+ "size": 11,
1106
+ "bold": false,
1107
+ "italic": false,
1108
+ "underline": false,
1109
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1110
+ },
1111
+ "borders": {
1112
+ "top": null,
1113
+ "right": null,
1114
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1115
+ "left": null
1116
+ },
1117
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 3 }
1118
+ },
1119
+ {
1120
+ "r": 3,
1121
+ "c": 6,
1122
+ "value": -40,
1123
+ "fmt": { "numberFormat": "#,##0" },
1124
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1125
+ "font": {
1126
+ "name": "Aptos Narrow",
1127
+ "size": 11,
1128
+ "bold": false,
1129
+ "italic": false,
1130
+ "underline": false,
1131
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1132
+ },
1133
+ "borders": {
1134
+ "top": null,
1135
+ "right": null,
1136
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1137
+ "left": null
1138
+ },
1139
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 4 }
1140
+ },
1141
+ {
1142
+ "r": 3,
1143
+ "c": 7,
1144
+ "value": -33,
1145
+ "fmt": { "numberFormat": "#,##0" },
1146
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1147
+ "font": {
1148
+ "name": "Aptos Narrow",
1149
+ "size": 11,
1150
+ "bold": false,
1151
+ "italic": false,
1152
+ "underline": false,
1153
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1154
+ },
1155
+ "borders": {
1156
+ "top": null,
1157
+ "right": null,
1158
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1159
+ "left": null
1160
+ },
1161
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 5 }
1162
+ },
1163
+ {
1164
+ "r": 3,
1165
+ "c": 9,
1166
+ "value": -11,
1167
+ "fmt": { "numberFormat": "#,##0" },
1168
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1169
+ "font": {
1170
+ "name": "Aptos Narrow",
1171
+ "size": 11,
1172
+ "bold": false,
1173
+ "italic": false,
1174
+ "underline": false,
1175
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1176
+ },
1177
+ "borders": {
1178
+ "top": null,
1179
+ "right": null,
1180
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1181
+ "left": null
1182
+ },
1183
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 7 }
1184
+ },
1185
+ {
1186
+ "r": 3,
1187
+ "c": 10,
1188
+ "value": -48,
1189
+ "fmt": { "numberFormat": "#,##0" },
1190
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1191
+ "font": {
1192
+ "name": "Aptos Narrow",
1193
+ "size": 11,
1194
+ "bold": false,
1195
+ "italic": false,
1196
+ "underline": false,
1197
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1198
+ },
1199
+ "borders": {
1200
+ "top": null,
1201
+ "right": null,
1202
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1203
+ "left": null
1204
+ },
1205
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 8 }
1206
+ },
1207
+ {
1208
+ "r": 3,
1209
+ "c": 11,
1210
+ "value": -20,
1211
+ "fmt": { "numberFormat": "#,##0" },
1212
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1213
+ "font": {
1214
+ "name": "Aptos Narrow",
1215
+ "size": 11,
1216
+ "bold": false,
1217
+ "italic": false,
1218
+ "underline": false,
1219
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1220
+ },
1221
+ "borders": {
1222
+ "top": null,
1223
+ "right": null,
1224
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1225
+ "left": null
1226
+ },
1227
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 9 }
1228
+ },
1229
+ {
1230
+ "r": 3,
1231
+ "c": 12,
1232
+ "value": -36,
1233
+ "fmt": { "numberFormat": "#,##0" },
1234
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1235
+ "font": {
1236
+ "name": "Aptos Narrow",
1237
+ "size": 11,
1238
+ "bold": false,
1239
+ "italic": false,
1240
+ "underline": false,
1241
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1242
+ },
1243
+ "borders": {
1244
+ "top": null,
1245
+ "right": null,
1246
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1247
+ "left": null
1248
+ },
1249
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 10 }
1250
+ },
1251
+ {
1252
+ "r": 3,
1253
+ "c": 14,
1254
+ "value": -47,
1255
+ "fmt": { "numberFormat": "#,##0" },
1256
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1257
+ "font": {
1258
+ "name": "Aptos Narrow",
1259
+ "size": 11,
1260
+ "bold": false,
1261
+ "italic": false,
1262
+ "underline": false,
1263
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1264
+ },
1265
+ "borders": {
1266
+ "top": null,
1267
+ "right": null,
1268
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1269
+ "left": null
1270
+ },
1271
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 12 }
1272
+ },
1273
+ {
1274
+ "r": 3,
1275
+ "c": 15,
1276
+ "value": -8,
1277
+ "fmt": { "numberFormat": "#,##0" },
1278
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1279
+ "font": {
1280
+ "name": "Aptos Narrow",
1281
+ "size": 11,
1282
+ "bold": false,
1283
+ "italic": false,
1284
+ "underline": false,
1285
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1286
+ },
1287
+ "borders": {
1288
+ "top": null,
1289
+ "right": null,
1290
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1291
+ "left": null
1292
+ },
1293
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 13 }
1294
+ },
1295
+ {
1296
+ "r": 3,
1297
+ "c": 16,
1298
+ "value": -41,
1299
+ "fmt": { "numberFormat": "#,##0" },
1300
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1301
+ "font": {
1302
+ "name": "Aptos Narrow",
1303
+ "size": 11,
1304
+ "bold": false,
1305
+ "italic": false,
1306
+ "underline": false,
1307
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1308
+ },
1309
+ "borders": {
1310
+ "top": null,
1311
+ "right": null,
1312
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1313
+ "left": null
1314
+ },
1315
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 14 }
1316
+ },
1317
+ {
1318
+ "r": 3,
1319
+ "c": 17,
1320
+ "value": -41,
1321
+ "fmt": { "numberFormat": "#,##0" },
1322
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1323
+ "font": {
1324
+ "name": "Aptos Narrow",
1325
+ "size": 11,
1326
+ "bold": false,
1327
+ "italic": false,
1328
+ "underline": false,
1329
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1330
+ },
1331
+ "borders": {
1332
+ "top": null,
1333
+ "right": null,
1334
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1335
+ "left": null
1336
+ },
1337
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 15 }
1338
+ },
1339
+ {
1340
+ "r": 4,
1341
+ "c": 0,
1342
+ "value": "EBITDA Impact",
1343
+ "fmt": { "numberFormat": "General" },
1344
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
1345
+ "font": {
1346
+ "name": "Aptos Narrow",
1347
+ "size": 11,
1348
+ "bold": true,
1349
+ "italic": false,
1350
+ "underline": false,
1351
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1352
+ },
1353
+ "borders": {
1354
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1355
+ "right": null,
1356
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1357
+ "left": null
1358
+ }
1359
+ },
1360
+ {
1361
+ "r": 4,
1362
+ "c": 1,
1363
+ "value": "$",
1364
+ "fmt": { "numberFormat": "General" },
1365
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
1366
+ "font": {
1367
+ "name": "Aptos Narrow",
1368
+ "size": 11,
1369
+ "bold": true,
1370
+ "italic": false,
1371
+ "underline": false,
1372
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1373
+ },
1374
+ "borders": {
1375
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1376
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1377
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1378
+ "left": null
1379
+ }
1380
+ },
1381
+ {
1382
+ "r": 5,
1383
+ "c": 0,
1384
+ "value": "FTE Impact",
1385
+ "fmt": { "numberFormat": "General" },
1386
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
1387
+ "font": {
1388
+ "name": "Aptos Narrow",
1389
+ "size": 11,
1390
+ "bold": false,
1391
+ "italic": false,
1392
+ "underline": false,
1393
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1394
+ },
1395
+ "borders": {
1396
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1397
+ "right": null,
1398
+ "bottom": null,
1399
+ "left": null
1400
+ }
1401
+ },
1402
+ {
1403
+ "r": 5,
1404
+ "c": 1,
1405
+ "value": "FTE",
1406
+ "fmt": { "numberFormat": "General" },
1407
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
1408
+ "font": {
1409
+ "name": "Aptos Narrow",
1410
+ "size": 11,
1411
+ "bold": false,
1412
+ "italic": false,
1413
+ "underline": false,
1414
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1415
+ },
1416
+ "borders": {
1417
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1418
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1419
+ "bottom": null,
1420
+ "left": null
1421
+ }
1422
+ },
1423
+ {
1424
+ "r": 5,
1425
+ "c": 2,
1426
+ "value": -18.9,
1427
+ "fmt": { "numberFormat": "#,##0.0" },
1428
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1429
+ "font": {
1430
+ "name": "Aptos Narrow",
1431
+ "size": 11,
1432
+ "bold": false,
1433
+ "italic": false,
1434
+ "underline": false,
1435
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1436
+ },
1437
+ "borders": {
1438
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1439
+ "right": null,
1440
+ "bottom": null,
1441
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
1442
+ },
1443
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 0 }
1444
+ },
1445
+ {
1446
+ "r": 5,
1447
+ "c": 4,
1448
+ "value": -6.3,
1449
+ "fmt": { "numberFormat": "#,##0.0" },
1450
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1451
+ "font": {
1452
+ "name": "Aptos Narrow",
1453
+ "size": 11,
1454
+ "bold": false,
1455
+ "italic": false,
1456
+ "underline": false,
1457
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1458
+ },
1459
+ "borders": {
1460
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1461
+ "right": null,
1462
+ "bottom": null,
1463
+ "left": null
1464
+ },
1465
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 2 }
1466
+ },
1467
+ {
1468
+ "r": 5,
1469
+ "c": 5,
1470
+ "value": -19.6,
1471
+ "fmt": { "numberFormat": "#,##0.0" },
1472
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1473
+ "font": {
1474
+ "name": "Aptos Narrow",
1475
+ "size": 11,
1476
+ "bold": false,
1477
+ "italic": false,
1478
+ "underline": false,
1479
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1480
+ },
1481
+ "borders": {
1482
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1483
+ "right": null,
1484
+ "bottom": null,
1485
+ "left": null
1486
+ },
1487
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 3 }
1488
+ },
1489
+ {
1490
+ "r": 5,
1491
+ "c": 6,
1492
+ "value": -17.1,
1493
+ "fmt": { "numberFormat": "#,##0.0" },
1494
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1495
+ "font": {
1496
+ "name": "Aptos Narrow",
1497
+ "size": 11,
1498
+ "bold": false,
1499
+ "italic": false,
1500
+ "underline": false,
1501
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1502
+ },
1503
+ "borders": {
1504
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1505
+ "right": null,
1506
+ "bottom": null,
1507
+ "left": null
1508
+ },
1509
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 4 }
1510
+ },
1511
+ {
1512
+ "r": 5,
1513
+ "c": 7,
1514
+ "value": -15.9,
1515
+ "fmt": { "numberFormat": "#,##0.0" },
1516
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1517
+ "font": {
1518
+ "name": "Aptos Narrow",
1519
+ "size": 11,
1520
+ "bold": false,
1521
+ "italic": false,
1522
+ "underline": false,
1523
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1524
+ },
1525
+ "borders": {
1526
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1527
+ "right": null,
1528
+ "bottom": null,
1529
+ "left": null
1530
+ },
1531
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 5 }
1532
+ },
1533
+ {
1534
+ "r": 5,
1535
+ "c": 9,
1536
+ "value": -15.4,
1537
+ "fmt": { "numberFormat": "#,##0.0" },
1538
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1539
+ "font": {
1540
+ "name": "Aptos Narrow",
1541
+ "size": 11,
1542
+ "bold": false,
1543
+ "italic": false,
1544
+ "underline": false,
1545
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1546
+ },
1547
+ "borders": {
1548
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1549
+ "right": null,
1550
+ "bottom": null,
1551
+ "left": null
1552
+ },
1553
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 7 }
1554
+ },
1555
+ {
1556
+ "r": 5,
1557
+ "c": 10,
1558
+ "value": -4.5,
1559
+ "fmt": { "numberFormat": "#,##0.0" },
1560
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1561
+ "font": {
1562
+ "name": "Aptos Narrow",
1563
+ "size": 11,
1564
+ "bold": false,
1565
+ "italic": false,
1566
+ "underline": false,
1567
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1568
+ },
1569
+ "borders": {
1570
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1571
+ "right": null,
1572
+ "bottom": null,
1573
+ "left": null
1574
+ },
1575
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 8 }
1576
+ },
1577
+ {
1578
+ "r": 5,
1579
+ "c": 11,
1580
+ "value": -7.2,
1581
+ "fmt": { "numberFormat": "#,##0.0" },
1582
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1583
+ "font": {
1584
+ "name": "Aptos Narrow",
1585
+ "size": 11,
1586
+ "bold": false,
1587
+ "italic": false,
1588
+ "underline": false,
1589
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1590
+ },
1591
+ "borders": {
1592
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1593
+ "right": null,
1594
+ "bottom": null,
1595
+ "left": null
1596
+ },
1597
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 9 }
1598
+ },
1599
+ {
1600
+ "r": 5,
1601
+ "c": 12,
1602
+ "value": -5,
1603
+ "fmt": { "numberFormat": "#,##0.0" },
1604
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1605
+ "font": {
1606
+ "name": "Aptos Narrow",
1607
+ "size": 11,
1608
+ "bold": false,
1609
+ "italic": false,
1610
+ "underline": false,
1611
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1612
+ },
1613
+ "borders": {
1614
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1615
+ "right": null,
1616
+ "bottom": null,
1617
+ "left": null
1618
+ },
1619
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 10 }
1620
+ },
1621
+ {
1622
+ "r": 5,
1623
+ "c": 14,
1624
+ "value": -9.7,
1625
+ "fmt": { "numberFormat": "#,##0.0" },
1626
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1627
+ "font": {
1628
+ "name": "Aptos Narrow",
1629
+ "size": 11,
1630
+ "bold": false,
1631
+ "italic": false,
1632
+ "underline": false,
1633
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1634
+ },
1635
+ "borders": {
1636
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1637
+ "right": null,
1638
+ "bottom": null,
1639
+ "left": null
1640
+ },
1641
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 12 }
1642
+ },
1643
+ {
1644
+ "r": 5,
1645
+ "c": 15,
1646
+ "value": -4.4,
1647
+ "fmt": { "numberFormat": "#,##0.0" },
1648
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1649
+ "font": {
1650
+ "name": "Aptos Narrow",
1651
+ "size": 11,
1652
+ "bold": false,
1653
+ "italic": false,
1654
+ "underline": false,
1655
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1656
+ },
1657
+ "borders": {
1658
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1659
+ "right": null,
1660
+ "bottom": null,
1661
+ "left": null
1662
+ },
1663
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 13 }
1664
+ },
1665
+ {
1666
+ "r": 5,
1667
+ "c": 16,
1668
+ "value": -5.6,
1669
+ "fmt": { "numberFormat": "#,##0.0" },
1670
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1671
+ "font": {
1672
+ "name": "Aptos Narrow",
1673
+ "size": 11,
1674
+ "bold": false,
1675
+ "italic": false,
1676
+ "underline": false,
1677
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1678
+ },
1679
+ "borders": {
1680
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1681
+ "right": null,
1682
+ "bottom": null,
1683
+ "left": null
1684
+ },
1685
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 14 }
1686
+ },
1687
+ {
1688
+ "r": 5,
1689
+ "c": 17,
1690
+ "value": -2.8,
1691
+ "fmt": { "numberFormat": "#,##0.0" },
1692
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1693
+ "font": {
1694
+ "name": "Aptos Narrow",
1695
+ "size": 11,
1696
+ "bold": false,
1697
+ "italic": false,
1698
+ "underline": false,
1699
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1700
+ },
1701
+ "borders": {
1702
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1703
+ "right": null,
1704
+ "bottom": null,
1705
+ "left": null
1706
+ },
1707
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 15 }
1708
+ },
1709
+ {
1710
+ "r": 6,
1711
+ "c": 0,
1712
+ "value": "CO2 Emissions reduction",
1713
+ "fmt": { "numberFormat": "General" },
1714
+ "align": { "horizontal": null, "vertical": "bottom", "wrapText": false },
1715
+ "font": {
1716
+ "name": "Aptos Narrow",
1717
+ "size": 11,
1718
+ "bold": false,
1719
+ "italic": false,
1720
+ "underline": false,
1721
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1722
+ }
1723
+ },
1724
+ {
1725
+ "r": 6,
1726
+ "c": 1,
1727
+ "value": "t CO2",
1728
+ "fmt": { "numberFormat": "General" },
1729
+ "align": { "horizontal": "center", "vertical": "bottom", "wrapText": false },
1730
+ "font": {
1731
+ "name": "Aptos Narrow",
1732
+ "size": 11,
1733
+ "bold": false,
1734
+ "italic": false,
1735
+ "underline": false,
1736
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1737
+ },
1738
+ "borders": {
1739
+ "top": null,
1740
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1741
+ "bottom": null,
1742
+ "left": null
1743
+ }
1744
+ },
1745
+ {
1746
+ "r": 6,
1747
+ "c": 2,
1748
+ "value": -87.6,
1749
+ "fmt": { "numberFormat": "#,##0" },
1750
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1751
+ "font": {
1752
+ "name": "Aptos Narrow",
1753
+ "size": 11,
1754
+ "bold": false,
1755
+ "italic": false,
1756
+ "underline": false,
1757
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1758
+ },
1759
+ "borders": {
1760
+ "top": null,
1761
+ "right": null,
1762
+ "bottom": null,
1763
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
1764
+ },
1765
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 0 }
1766
+ },
1767
+ {
1768
+ "r": 6,
1769
+ "c": 4,
1770
+ "value": -87.5,
1771
+ "fmt": { "numberFormat": "#,##0" },
1772
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1773
+ "font": {
1774
+ "name": "Aptos Narrow",
1775
+ "size": 11,
1776
+ "bold": false,
1777
+ "italic": false,
1778
+ "underline": false,
1779
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1780
+ },
1781
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 2 }
1782
+ },
1783
+ {
1784
+ "r": 6,
1785
+ "c": 5,
1786
+ "value": -78,
1787
+ "fmt": { "numberFormat": "#,##0" },
1788
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1789
+ "font": {
1790
+ "name": "Aptos Narrow",
1791
+ "size": 11,
1792
+ "bold": false,
1793
+ "italic": false,
1794
+ "underline": false,
1795
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1796
+ },
1797
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 3 }
1798
+ },
1799
+ {
1800
+ "r": 6,
1801
+ "c": 6,
1802
+ "value": -79.9,
1803
+ "fmt": { "numberFormat": "#,##0" },
1804
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1805
+ "font": {
1806
+ "name": "Aptos Narrow",
1807
+ "size": 11,
1808
+ "bold": false,
1809
+ "italic": false,
1810
+ "underline": false,
1811
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1812
+ },
1813
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 4 }
1814
+ },
1815
+ {
1816
+ "r": 6,
1817
+ "c": 7,
1818
+ "value": -26.3,
1819
+ "fmt": { "numberFormat": "#,##0" },
1820
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1821
+ "font": {
1822
+ "name": "Aptos Narrow",
1823
+ "size": 11,
1824
+ "bold": false,
1825
+ "italic": false,
1826
+ "underline": false,
1827
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1828
+ },
1829
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 5 }
1830
+ },
1831
+ {
1832
+ "r": 6,
1833
+ "c": 9,
1834
+ "value": -92.9,
1835
+ "fmt": { "numberFormat": "#,##0" },
1836
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1837
+ "font": {
1838
+ "name": "Aptos Narrow",
1839
+ "size": 11,
1840
+ "bold": false,
1841
+ "italic": false,
1842
+ "underline": false,
1843
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1844
+ },
1845
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 7 }
1846
+ },
1847
+ {
1848
+ "r": 6,
1849
+ "c": 10,
1850
+ "value": -70.9,
1851
+ "fmt": { "numberFormat": "#,##0" },
1852
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1853
+ "font": {
1854
+ "name": "Aptos Narrow",
1855
+ "size": 11,
1856
+ "bold": false,
1857
+ "italic": false,
1858
+ "underline": false,
1859
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1860
+ },
1861
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 8 }
1862
+ },
1863
+ {
1864
+ "r": 6,
1865
+ "c": 11,
1866
+ "value": -39.1,
1867
+ "fmt": { "numberFormat": "#,##0" },
1868
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1869
+ "font": {
1870
+ "name": "Aptos Narrow",
1871
+ "size": 11,
1872
+ "bold": false,
1873
+ "italic": false,
1874
+ "underline": false,
1875
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1876
+ },
1877
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 9 }
1878
+ },
1879
+ {
1880
+ "r": 6,
1881
+ "c": 12,
1882
+ "value": -37.8,
1883
+ "fmt": { "numberFormat": "#,##0" },
1884
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1885
+ "font": {
1886
+ "name": "Aptos Narrow",
1887
+ "size": 11,
1888
+ "bold": false,
1889
+ "italic": false,
1890
+ "underline": false,
1891
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1892
+ },
1893
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 10 }
1894
+ },
1895
+ {
1896
+ "r": 6,
1897
+ "c": 14,
1898
+ "value": -26,
1899
+ "fmt": { "numberFormat": "#,##0" },
1900
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1901
+ "font": {
1902
+ "name": "Aptos Narrow",
1903
+ "size": 11,
1904
+ "bold": false,
1905
+ "italic": false,
1906
+ "underline": false,
1907
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1908
+ },
1909
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 12 }
1910
+ },
1911
+ {
1912
+ "r": 6,
1913
+ "c": 15,
1914
+ "value": -19.6,
1915
+ "fmt": { "numberFormat": "#,##0" },
1916
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1917
+ "font": {
1918
+ "name": "Aptos Narrow",
1919
+ "size": 11,
1920
+ "bold": false,
1921
+ "italic": false,
1922
+ "underline": false,
1923
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1924
+ },
1925
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 13 }
1926
+ },
1927
+ {
1928
+ "r": 6,
1929
+ "c": 16,
1930
+ "value": -4.1,
1931
+ "fmt": { "numberFormat": "#,##0" },
1932
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1933
+ "font": {
1934
+ "name": "Aptos Narrow",
1935
+ "size": 11,
1936
+ "bold": false,
1937
+ "italic": false,
1938
+ "underline": false,
1939
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1940
+ },
1941
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 14 }
1942
+ },
1943
+ {
1944
+ "r": 6,
1945
+ "c": 17,
1946
+ "value": -5.7,
1947
+ "fmt": { "numberFormat": "#,##0" },
1948
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1949
+ "font": {
1950
+ "name": "Aptos Narrow",
1951
+ "size": 11,
1952
+ "bold": false,
1953
+ "italic": false,
1954
+ "underline": false,
1955
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1956
+ },
1957
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 15 }
1958
+ },
1959
+ {
1960
+ "r": 1,
1961
+ "c": 3,
1962
+ "formula": "=RC[-1]",
1963
+ "fmt": { "numberFormat": "#,##0" },
1964
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1965
+ "font": {
1966
+ "name": "Aptos Narrow",
1967
+ "size": 11,
1968
+ "bold": false,
1969
+ "italic": false,
1970
+ "underline": false,
1971
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1972
+ },
1973
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
1974
+ "borders": {
1975
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1976
+ "right": null,
1977
+ "bottom": null,
1978
+ "left": null
1979
+ },
1980
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 1 }
1981
+ },
1982
+ {
1983
+ "r": 1,
1984
+ "c": 8,
1985
+ "formula": "=SUM(RC[-4]:RC[-1])",
1986
+ "fmt": { "numberFormat": "#,##0" },
1987
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
1988
+ "font": {
1989
+ "name": "Aptos Narrow",
1990
+ "size": 11,
1991
+ "bold": false,
1992
+ "italic": false,
1993
+ "underline": false,
1994
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
1995
+ },
1996
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
1997
+ "borders": {
1998
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
1999
+ "right": null,
2000
+ "bottom": null,
2001
+ "left": null
2002
+ },
2003
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 6 }
2004
+ },
2005
+ {
2006
+ "r": 1,
2007
+ "c": 13,
2008
+ "formula": "=SUM(RC[-4]:RC[-1])",
2009
+ "fmt": { "numberFormat": "#,##0" },
2010
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2011
+ "font": {
2012
+ "name": "Aptos Narrow",
2013
+ "size": 11,
2014
+ "bold": false,
2015
+ "italic": false,
2016
+ "underline": false,
2017
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2018
+ },
2019
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2020
+ "borders": {
2021
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2022
+ "right": null,
2023
+ "bottom": null,
2024
+ "left": null
2025
+ },
2026
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 11 }
2027
+ },
2028
+ {
2029
+ "r": 1,
2030
+ "c": 18,
2031
+ "formula": "=SUM(RC[-4]:RC[-1])",
2032
+ "fmt": { "numberFormat": "#,##0" },
2033
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2034
+ "font": {
2035
+ "name": "Aptos Narrow",
2036
+ "size": 11,
2037
+ "bold": false,
2038
+ "italic": false,
2039
+ "underline": false,
2040
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2041
+ },
2042
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2043
+ "borders": {
2044
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2045
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2046
+ "bottom": null,
2047
+ "left": null
2048
+ },
2049
+ "binding": { "kind": "block", "name": "Sales", "rOff": 0, "cOff": 16 }
2050
+ },
2051
+ {
2052
+ "r": 2,
2053
+ "c": 3,
2054
+ "formula": "=RC[-1]",
2055
+ "fmt": { "numberFormat": "#,##0" },
2056
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2057
+ "font": {
2058
+ "name": "Aptos Narrow",
2059
+ "size": 11,
2060
+ "bold": false,
2061
+ "italic": false,
2062
+ "underline": false,
2063
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2064
+ },
2065
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2066
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 1 }
2067
+ },
2068
+ {
2069
+ "r": 2,
2070
+ "c": 8,
2071
+ "formula": "=SUM(RC[-4]:RC[-1])",
2072
+ "fmt": { "numberFormat": "#,##0" },
2073
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2074
+ "font": {
2075
+ "name": "Aptos Narrow",
2076
+ "size": 11,
2077
+ "bold": false,
2078
+ "italic": false,
2079
+ "underline": false,
2080
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2081
+ },
2082
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2083
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 6 }
2084
+ },
2085
+ {
2086
+ "r": 2,
2087
+ "c": 13,
2088
+ "formula": "=SUM(RC[-4]:RC[-1])",
2089
+ "fmt": { "numberFormat": "#,##0" },
2090
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2091
+ "font": {
2092
+ "name": "Aptos Narrow",
2093
+ "size": 11,
2094
+ "bold": false,
2095
+ "italic": false,
2096
+ "underline": false,
2097
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2098
+ },
2099
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2100
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 11 }
2101
+ },
2102
+ {
2103
+ "r": 2,
2104
+ "c": 18,
2105
+ "formula": "=SUM(RC[-4]:RC[-1])",
2106
+ "fmt": { "numberFormat": "#,##0" },
2107
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2108
+ "font": {
2109
+ "name": "Aptos Narrow",
2110
+ "size": 11,
2111
+ "bold": false,
2112
+ "italic": false,
2113
+ "underline": false,
2114
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2115
+ },
2116
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2117
+ "borders": {
2118
+ "top": null,
2119
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2120
+ "bottom": null,
2121
+ "left": null
2122
+ },
2123
+ "binding": { "kind": "block", "name": "COGS", "rOff": 0, "cOff": 16 }
2124
+ },
2125
+ {
2126
+ "r": 3,
2127
+ "c": 3,
2128
+ "formula": "=RC[-1]",
2129
+ "fmt": { "numberFormat": "#,##0" },
2130
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2131
+ "font": {
2132
+ "name": "Aptos Narrow",
2133
+ "size": 11,
2134
+ "bold": false,
2135
+ "italic": false,
2136
+ "underline": false,
2137
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2138
+ },
2139
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2140
+ "borders": {
2141
+ "top": null,
2142
+ "right": null,
2143
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2144
+ "left": null
2145
+ },
2146
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 1 }
2147
+ },
2148
+ {
2149
+ "r": 4,
2150
+ "c": 2,
2151
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2152
+ "fmt": { "numberFormat": "#,##0" },
2153
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2154
+ "font": {
2155
+ "name": "Aptos Narrow",
2156
+ "size": 11,
2157
+ "bold": true,
2158
+ "italic": false,
2159
+ "underline": false,
2160
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2161
+ },
2162
+ "borders": {
2163
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2164
+ "right": null,
2165
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2166
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2167
+ }
2168
+ },
2169
+ {
2170
+ "r": 4,
2171
+ "c": 4,
2172
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2173
+ "fmt": { "numberFormat": "#,##0" },
2174
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2175
+ "font": {
2176
+ "name": "Aptos Narrow",
2177
+ "size": 11,
2178
+ "bold": true,
2179
+ "italic": false,
2180
+ "underline": false,
2181
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2182
+ },
2183
+ "borders": {
2184
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2185
+ "right": null,
2186
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2187
+ "left": null
2188
+ }
2189
+ },
2190
+ {
2191
+ "r": 4,
2192
+ "c": 5,
2193
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2194
+ "fmt": { "numberFormat": "#,##0" },
2195
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2196
+ "font": {
2197
+ "name": "Aptos Narrow",
2198
+ "size": 11,
2199
+ "bold": true,
2200
+ "italic": false,
2201
+ "underline": false,
2202
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2203
+ },
2204
+ "borders": {
2205
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2206
+ "right": null,
2207
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2208
+ "left": null
2209
+ }
2210
+ },
2211
+ {
2212
+ "r": 4,
2213
+ "c": 6,
2214
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2215
+ "fmt": { "numberFormat": "#,##0" },
2216
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2217
+ "font": {
2218
+ "name": "Aptos Narrow",
2219
+ "size": 11,
2220
+ "bold": true,
2221
+ "italic": false,
2222
+ "underline": false,
2223
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2224
+ },
2225
+ "borders": {
2226
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2227
+ "right": null,
2228
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2229
+ "left": null
2230
+ }
2231
+ },
2232
+ {
2233
+ "r": 3,
2234
+ "c": 8,
2235
+ "formula": "=SUM(RC[-4]:RC[-1])",
2236
+ "fmt": { "numberFormat": "#,##0" },
2237
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2238
+ "font": {
2239
+ "name": "Aptos Narrow",
2240
+ "size": 11,
2241
+ "bold": false,
2242
+ "italic": false,
2243
+ "underline": false,
2244
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2245
+ },
2246
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2247
+ "borders": {
2248
+ "top": null,
2249
+ "right": null,
2250
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2251
+ "left": null
2252
+ },
2253
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 6 }
2254
+ },
2255
+ {
2256
+ "r": 4,
2257
+ "c": 7,
2258
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2259
+ "fmt": { "numberFormat": "#,##0" },
2260
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2261
+ "font": {
2262
+ "name": "Aptos Narrow",
2263
+ "size": 11,
2264
+ "bold": true,
2265
+ "italic": false,
2266
+ "underline": false,
2267
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2268
+ },
2269
+ "borders": {
2270
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2271
+ "right": null,
2272
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2273
+ "left": null
2274
+ }
2275
+ },
2276
+ {
2277
+ "r": 4,
2278
+ "c": 9,
2279
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2280
+ "fmt": { "numberFormat": "#,##0" },
2281
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2282
+ "font": {
2283
+ "name": "Aptos Narrow",
2284
+ "size": 11,
2285
+ "bold": true,
2286
+ "italic": false,
2287
+ "underline": false,
2288
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2289
+ },
2290
+ "borders": {
2291
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2292
+ "right": null,
2293
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2294
+ "left": null
2295
+ }
2296
+ },
2297
+ {
2298
+ "r": 4,
2299
+ "c": 10,
2300
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2301
+ "fmt": { "numberFormat": "#,##0" },
2302
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2303
+ "font": {
2304
+ "name": "Aptos Narrow",
2305
+ "size": 11,
2306
+ "bold": true,
2307
+ "italic": false,
2308
+ "underline": false,
2309
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2310
+ },
2311
+ "borders": {
2312
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2313
+ "right": null,
2314
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2315
+ "left": null
2316
+ }
2317
+ },
2318
+ {
2319
+ "r": 4,
2320
+ "c": 11,
2321
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2322
+ "fmt": { "numberFormat": "#,##0" },
2323
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2324
+ "font": {
2325
+ "name": "Aptos Narrow",
2326
+ "size": 11,
2327
+ "bold": true,
2328
+ "italic": false,
2329
+ "underline": false,
2330
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2331
+ },
2332
+ "borders": {
2333
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2334
+ "right": null,
2335
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2336
+ "left": null
2337
+ }
2338
+ },
2339
+ {
2340
+ "r": 3,
2341
+ "c": 13,
2342
+ "formula": "=SUM(RC[-4]:RC[-1])",
2343
+ "fmt": { "numberFormat": "#,##0" },
2344
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2345
+ "font": {
2346
+ "name": "Aptos Narrow",
2347
+ "size": 11,
2348
+ "bold": false,
2349
+ "italic": false,
2350
+ "underline": false,
2351
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2352
+ },
2353
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2354
+ "borders": {
2355
+ "top": null,
2356
+ "right": null,
2357
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2358
+ "left": null
2359
+ },
2360
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 11 }
2361
+ },
2362
+ {
2363
+ "r": 4,
2364
+ "c": 12,
2365
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2366
+ "fmt": { "numberFormat": "#,##0" },
2367
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2368
+ "font": {
2369
+ "name": "Aptos Narrow",
2370
+ "size": 11,
2371
+ "bold": true,
2372
+ "italic": false,
2373
+ "underline": false,
2374
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2375
+ },
2376
+ "borders": {
2377
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2378
+ "right": null,
2379
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2380
+ "left": null
2381
+ }
2382
+ },
2383
+ {
2384
+ "r": 4,
2385
+ "c": 14,
2386
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2387
+ "fmt": { "numberFormat": "#,##0" },
2388
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2389
+ "font": {
2390
+ "name": "Aptos Narrow",
2391
+ "size": 11,
2392
+ "bold": true,
2393
+ "italic": false,
2394
+ "underline": false,
2395
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2396
+ },
2397
+ "borders": {
2398
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2399
+ "right": null,
2400
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2401
+ "left": null
2402
+ }
2403
+ },
2404
+ {
2405
+ "r": 4,
2406
+ "c": 15,
2407
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2408
+ "fmt": { "numberFormat": "#,##0" },
2409
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2410
+ "font": {
2411
+ "name": "Aptos Narrow",
2412
+ "size": 11,
2413
+ "bold": true,
2414
+ "italic": false,
2415
+ "underline": false,
2416
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2417
+ },
2418
+ "borders": {
2419
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2420
+ "right": null,
2421
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2422
+ "left": null
2423
+ }
2424
+ },
2425
+ {
2426
+ "r": 4,
2427
+ "c": 16,
2428
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2429
+ "fmt": { "numberFormat": "#,##0" },
2430
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2431
+ "font": {
2432
+ "name": "Aptos Narrow",
2433
+ "size": 11,
2434
+ "bold": true,
2435
+ "italic": false,
2436
+ "underline": false,
2437
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2438
+ },
2439
+ "borders": {
2440
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2441
+ "right": null,
2442
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2443
+ "left": null
2444
+ }
2445
+ },
2446
+ {
2447
+ "r": 3,
2448
+ "c": 18,
2449
+ "formula": "=SUM(RC[-4]:RC[-1])",
2450
+ "fmt": { "numberFormat": "#,##0" },
2451
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2452
+ "font": {
2453
+ "name": "Aptos Narrow",
2454
+ "size": 11,
2455
+ "bold": false,
2456
+ "italic": false,
2457
+ "underline": false,
2458
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2459
+ },
2460
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2461
+ "borders": {
2462
+ "top": null,
2463
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2464
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2465
+ "left": null
2466
+ },
2467
+ "binding": { "kind": "block", "name": "SGNA", "rOff": 0, "cOff": 16 }
2468
+ },
2469
+ {
2470
+ "r": 4,
2471
+ "c": 17,
2472
+ "formula": "=SUM(R[-3]C:R[-1]C)",
2473
+ "fmt": { "numberFormat": "#,##0" },
2474
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2475
+ "font": {
2476
+ "name": "Aptos Narrow",
2477
+ "size": 11,
2478
+ "bold": true,
2479
+ "italic": false,
2480
+ "underline": false,
2481
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2482
+ },
2483
+ "borders": {
2484
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2485
+ "right": null,
2486
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2487
+ "left": null
2488
+ }
2489
+ },
2490
+ {
2491
+ "r": 5,
2492
+ "c": 3,
2493
+ "formula": "=RC[-1]",
2494
+ "fmt": { "numberFormat": "#,##0.0" },
2495
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2496
+ "font": {
2497
+ "name": "Aptos Narrow",
2498
+ "size": 11,
2499
+ "bold": false,
2500
+ "italic": false,
2501
+ "underline": false,
2502
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2503
+ },
2504
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2505
+ "borders": {
2506
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2507
+ "right": null,
2508
+ "bottom": null,
2509
+ "left": null
2510
+ },
2511
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 1 }
2512
+ },
2513
+ {
2514
+ "r": 5,
2515
+ "c": 8,
2516
+ "formula": "=SUM(RC[-4]:RC[-1])",
2517
+ "fmt": { "numberFormat": "#,##0.0" },
2518
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2519
+ "font": {
2520
+ "name": "Aptos Narrow",
2521
+ "size": 11,
2522
+ "bold": false,
2523
+ "italic": false,
2524
+ "underline": false,
2525
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2526
+ },
2527
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2528
+ "borders": {
2529
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2530
+ "right": null,
2531
+ "bottom": null,
2532
+ "left": null
2533
+ },
2534
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 6 }
2535
+ },
2536
+ {
2537
+ "r": 5,
2538
+ "c": 13,
2539
+ "formula": "=SUM(RC[-4]:RC[-1])",
2540
+ "fmt": { "numberFormat": "#,##0.0" },
2541
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2542
+ "font": {
2543
+ "name": "Aptos Narrow",
2544
+ "size": 11,
2545
+ "bold": false,
2546
+ "italic": false,
2547
+ "underline": false,
2548
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2549
+ },
2550
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2551
+ "borders": {
2552
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2553
+ "right": null,
2554
+ "bottom": null,
2555
+ "left": null
2556
+ },
2557
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 11 }
2558
+ },
2559
+ {
2560
+ "r": 5,
2561
+ "c": 18,
2562
+ "formula": "=SUM(RC[-4]:RC[-1])",
2563
+ "fmt": { "numberFormat": "#,##0.0" },
2564
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2565
+ "font": {
2566
+ "name": "Aptos Narrow",
2567
+ "size": 11,
2568
+ "bold": false,
2569
+ "italic": false,
2570
+ "underline": false,
2571
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2572
+ },
2573
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2574
+ "borders": {
2575
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2576
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2577
+ "bottom": null,
2578
+ "left": null
2579
+ },
2580
+ "binding": { "kind": "block", "name": "FTE", "rOff": 0, "cOff": 16 }
2581
+ },
2582
+ {
2583
+ "r": 6,
2584
+ "c": 3,
2585
+ "formula": "=RC[-1]",
2586
+ "fmt": { "numberFormat": "#,##0" },
2587
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2588
+ "font": {
2589
+ "name": "Aptos Narrow",
2590
+ "size": 11,
2591
+ "bold": false,
2592
+ "italic": false,
2593
+ "underline": false,
2594
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2595
+ },
2596
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2597
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 1 }
2598
+ },
2599
+ {
2600
+ "r": 6,
2601
+ "c": 8,
2602
+ "formula": "=SUM(RC[-4]:RC[-1])",
2603
+ "fmt": { "numberFormat": "#,##0" },
2604
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2605
+ "font": {
2606
+ "name": "Aptos Narrow",
2607
+ "size": 11,
2608
+ "bold": false,
2609
+ "italic": false,
2610
+ "underline": false,
2611
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2612
+ },
2613
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2614
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 6 }
2615
+ },
2616
+ {
2617
+ "r": 6,
2618
+ "c": 13,
2619
+ "formula": "=SUM(RC[-4]:RC[-1])",
2620
+ "fmt": { "numberFormat": "#,##0" },
2621
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2622
+ "font": {
2623
+ "name": "Aptos Narrow",
2624
+ "size": 11,
2625
+ "bold": false,
2626
+ "italic": false,
2627
+ "underline": false,
2628
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2629
+ },
2630
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2631
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 11 }
2632
+ },
2633
+ {
2634
+ "r": 6,
2635
+ "c": 18,
2636
+ "formula": "=SUM(RC[-4]:RC[-1])",
2637
+ "fmt": { "numberFormat": "#,##0" },
2638
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2639
+ "font": {
2640
+ "name": "Aptos Narrow",
2641
+ "size": 11,
2642
+ "bold": false,
2643
+ "italic": false,
2644
+ "underline": false,
2645
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2646
+ },
2647
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2648
+ "borders": {
2649
+ "top": null,
2650
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2651
+ "bottom": null,
2652
+ "left": null
2653
+ },
2654
+ "binding": { "kind": "block", "name": "CO2Impact", "rOff": 0, "cOff": 16 }
2655
+ },
2656
+ {
2657
+ "r": 1,
2658
+ "c": 19,
2659
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2660
+ "fmt": { "numberFormat": "#,##0" },
2661
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2662
+ "font": {
2663
+ "name": "Aptos Narrow",
2664
+ "size": 11,
2665
+ "bold": true,
2666
+ "italic": false,
2667
+ "underline": false,
2668
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2669
+ },
2670
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2671
+ "borders": {
2672
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2673
+ "right": null,
2674
+ "bottom": null,
2675
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2676
+ }
2677
+ },
2678
+ {
2679
+ "r": 2,
2680
+ "c": 19,
2681
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2682
+ "fmt": { "numberFormat": "#,##0" },
2683
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2684
+ "font": {
2685
+ "name": "Aptos Narrow",
2686
+ "size": 11,
2687
+ "bold": true,
2688
+ "italic": false,
2689
+ "underline": false,
2690
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2691
+ },
2692
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2693
+ "borders": {
2694
+ "top": null,
2695
+ "right": null,
2696
+ "bottom": null,
2697
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2698
+ }
2699
+ },
2700
+ {
2701
+ "r": 4,
2702
+ "c": 3,
2703
+ "formula": "=RC[-1]",
2704
+ "fmt": { "numberFormat": "#,##0" },
2705
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2706
+ "font": {
2707
+ "name": "Aptos Narrow",
2708
+ "size": 11,
2709
+ "bold": true,
2710
+ "italic": false,
2711
+ "underline": false,
2712
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2713
+ },
2714
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2715
+ "borders": {
2716
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2717
+ "right": null,
2718
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2719
+ "left": null
2720
+ }
2721
+ },
2722
+ {
2723
+ "r": 4,
2724
+ "c": 8,
2725
+ "formula": "=SUM(RC[-4]:RC[-1])",
2726
+ "fmt": { "numberFormat": "#,##0" },
2727
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2728
+ "font": {
2729
+ "name": "Aptos Narrow",
2730
+ "size": 11,
2731
+ "bold": true,
2732
+ "italic": false,
2733
+ "underline": false,
2734
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2735
+ },
2736
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2737
+ "borders": {
2738
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2739
+ "right": null,
2740
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2741
+ "left": null
2742
+ }
2743
+ },
2744
+ {
2745
+ "r": 4,
2746
+ "c": 13,
2747
+ "formula": "=SUM(RC[-4]:RC[-1])",
2748
+ "fmt": { "numberFormat": "#,##0" },
2749
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2750
+ "font": {
2751
+ "name": "Aptos Narrow",
2752
+ "size": 11,
2753
+ "bold": true,
2754
+ "italic": false,
2755
+ "underline": false,
2756
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2757
+ },
2758
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2759
+ "borders": {
2760
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2761
+ "right": null,
2762
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2763
+ "left": null
2764
+ }
2765
+ },
2766
+ {
2767
+ "r": 3,
2768
+ "c": 19,
2769
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2770
+ "fmt": { "numberFormat": "#,##0" },
2771
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2772
+ "font": {
2773
+ "name": "Aptos Narrow",
2774
+ "size": 11,
2775
+ "bold": true,
2776
+ "italic": false,
2777
+ "underline": false,
2778
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2779
+ },
2780
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2781
+ "borders": {
2782
+ "top": null,
2783
+ "right": null,
2784
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2785
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2786
+ }
2787
+ },
2788
+ {
2789
+ "r": 4,
2790
+ "c": 18,
2791
+ "formula": "=SUM(RC[-4]:RC[-1])",
2792
+ "fmt": { "numberFormat": "#,##0" },
2793
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2794
+ "font": {
2795
+ "name": "Aptos Narrow",
2796
+ "size": 11,
2797
+ "bold": true,
2798
+ "italic": false,
2799
+ "underline": false,
2800
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2801
+ },
2802
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2803
+ "borders": {
2804
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2805
+ "right": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2806
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2807
+ "left": null
2808
+ }
2809
+ },
2810
+ {
2811
+ "r": 5,
2812
+ "c": 19,
2813
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2814
+ "fmt": { "numberFormat": "#,##0.0" },
2815
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2816
+ "font": {
2817
+ "name": "Aptos Narrow",
2818
+ "size": 11,
2819
+ "bold": true,
2820
+ "italic": false,
2821
+ "underline": false,
2822
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2823
+ },
2824
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2825
+ "borders": {
2826
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2827
+ "right": null,
2828
+ "bottom": null,
2829
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2830
+ }
2831
+ },
2832
+ {
2833
+ "r": 6,
2834
+ "c": 19,
2835
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2836
+ "fmt": { "numberFormat": "#,##0" },
2837
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2838
+ "font": {
2839
+ "name": "Aptos Narrow",
2840
+ "size": 11,
2841
+ "bold": true,
2842
+ "italic": false,
2843
+ "underline": false,
2844
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2845
+ },
2846
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2847
+ "borders": {
2848
+ "top": null,
2849
+ "right": null,
2850
+ "bottom": null,
2851
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2852
+ }
2853
+ },
2854
+ {
2855
+ "r": 4,
2856
+ "c": 19,
2857
+ "formula": "=RC[-16]+RC[-11]+RC[-6]+RC[-1]",
2858
+ "fmt": { "numberFormat": "#,##0" },
2859
+ "align": { "horizontal": "right", "vertical": "bottom", "wrapText": false },
2860
+ "font": {
2861
+ "name": "Aptos Narrow",
2862
+ "size": 11,
2863
+ "bold": true,
2864
+ "italic": false,
2865
+ "underline": false,
2866
+ "color": { "r": 0, "g": 0, "b": 0, "a": 1 }
2867
+ },
2868
+ "fill": { "color": { "r": 232, "g": 232, "b": 232, "a": 1 } },
2869
+ "borders": {
2870
+ "top": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2871
+ "right": null,
2872
+ "bottom": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } },
2873
+ "left": { "style": "solid", "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }
2874
+ }
2875
+ }
2876
+ ]
2877
+ }