@ojiepermana/angular 22.1.13 → 22.2.0

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 (252) hide show
  1. package/README.md +8 -6
  2. package/SUPPORT.md +3 -3
  3. package/chart/README.md +1 -1
  4. package/component/README.md +2 -2
  5. package/component/calendar/README.md +3 -15
  6. package/component/drawer/README.md +1 -2
  7. package/fesm2022/ojiepermana-angular-chart-area.mjs +352 -137
  8. package/fesm2022/ojiepermana-angular-chart-bar.mjs +744 -524
  9. package/fesm2022/ojiepermana-angular-chart-core.mjs +1140 -1344
  10. package/fesm2022/ojiepermana-angular-chart-line.mjs +393 -147
  11. package/fesm2022/ojiepermana-angular-chart-pie.mjs +408 -179
  12. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1262 -920
  13. package/fesm2022/ojiepermana-angular-chart-radar.mjs +473 -205
  14. package/fesm2022/ojiepermana-angular-chart-radial.mjs +425 -182
  15. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +386 -210
  16. package/fesm2022/ojiepermana-angular-chart.mjs +3 -19
  17. package/fesm2022/ojiepermana-angular-component-accordion.mjs +485 -243
  18. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +963 -325
  19. package/fesm2022/ojiepermana-angular-component-alert.mjs +266 -103
  20. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +80 -35
  21. package/fesm2022/ojiepermana-angular-component-avatar.mjs +402 -135
  22. package/fesm2022/ojiepermana-angular-component-badge.mjs +109 -59
  23. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +410 -142
  24. package/fesm2022/ojiepermana-angular-component-button-group.mjs +249 -96
  25. package/fesm2022/ojiepermana-angular-component-button.mjs +153 -75
  26. package/fesm2022/ojiepermana-angular-component-calendar.mjs +531 -418
  27. package/fesm2022/ojiepermana-angular-component-card.mjs +457 -171
  28. package/fesm2022/ojiepermana-angular-component-carousel.mjs +642 -272
  29. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +312 -108
  30. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +299 -115
  31. package/fesm2022/ojiepermana-angular-component-combobox.mjs +396 -183
  32. package/fesm2022/ojiepermana-angular-component-command.mjs +807 -347
  33. package/fesm2022/ojiepermana-angular-component-composer.mjs +807 -330
  34. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +196 -161
  35. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +650 -338
  36. package/fesm2022/ojiepermana-angular-component-dialog.mjs +710 -316
  37. package/fesm2022/ojiepermana-angular-component-drawer.mjs +2 -5
  38. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +1212 -646
  39. package/fesm2022/ojiepermana-angular-component-editor.mjs +987 -502
  40. package/fesm2022/ojiepermana-angular-component-empty.mjs +350 -137
  41. package/fesm2022/ojiepermana-angular-component-form.mjs +813 -434
  42. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +486 -277
  43. package/fesm2022/ojiepermana-angular-component-icon.mjs +241 -140
  44. package/fesm2022/ojiepermana-angular-component-input-group.mjs +449 -176
  45. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +891 -488
  46. package/fesm2022/ojiepermana-angular-component-input.mjs +86 -55
  47. package/fesm2022/ojiepermana-angular-component-item.mjs +713 -261
  48. package/fesm2022/ojiepermana-angular-component-kanban.mjs +714 -216
  49. package/fesm2022/ojiepermana-angular-component-kbd.mjs +124 -52
  50. package/fesm2022/ojiepermana-angular-component-label.mjs +82 -31
  51. package/fesm2022/ojiepermana-angular-component-menubar.mjs +479 -329
  52. package/fesm2022/ojiepermana-angular-component-native-select.mjs +167 -65
  53. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +683 -380
  54. package/fesm2022/ojiepermana-angular-component-pagination.mjs +277 -94
  55. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +1283 -607
  56. package/fesm2022/ojiepermana-angular-component-popover.mjs +291 -204
  57. package/fesm2022/ojiepermana-angular-component-progress.mjs +176 -53
  58. package/fesm2022/ojiepermana-angular-component-radio.mjs +449 -142
  59. package/fesm2022/ojiepermana-angular-component-resizable.mjs +659 -453
  60. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +117 -39
  61. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +351 -172
  62. package/fesm2022/ojiepermana-angular-component-select.mjs +475 -345
  63. package/fesm2022/ojiepermana-angular-component-separator.mjs +102 -35
  64. package/fesm2022/ojiepermana-angular-component-sheet.mjs +797 -347
  65. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +62 -29
  66. package/fesm2022/ojiepermana-angular-component-slider.mjs +592 -376
  67. package/fesm2022/ojiepermana-angular-component-spinner.mjs +135 -38
  68. package/fesm2022/ojiepermana-angular-component-switch.mjs +315 -103
  69. package/fesm2022/ojiepermana-angular-component-table.mjs +440 -153
  70. package/fesm2022/ojiepermana-angular-component-tabs.mjs +590 -317
  71. package/fesm2022/ojiepermana-angular-component-textarea.mjs +85 -50
  72. package/fesm2022/ojiepermana-angular-component-timeline.mjs +609 -231
  73. package/fesm2022/ojiepermana-angular-component-toast.mjs +229 -243
  74. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +573 -288
  75. package/fesm2022/ojiepermana-angular-component-toggle.mjs +187 -78
  76. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +798 -517
  77. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +159 -292
  78. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +46 -58
  79. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +76 -38
  80. package/fesm2022/ojiepermana-angular-component-utils.mjs +2 -8
  81. package/fesm2022/ojiepermana-angular-component.mjs +0 -10
  82. package/fesm2022/ojiepermana-angular-navigation-core.mjs +13 -23
  83. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +35 -24
  84. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-BKCeWzml.mjs +129 -0
  85. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DFEJK2jD.mjs +811 -0
  86. package/fesm2022/{ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs → ojiepermana-angular-navigation-navigation-entry-grid.component-mpK9Ar08.mjs} +387 -183
  87. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BPgH7FJk.mjs +650 -0
  88. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-DMpYcD9t.mjs +662 -0
  89. package/fesm2022/ojiepermana-angular-navigation-navigation-item.component-Basp5SIk.mjs +1228 -0
  90. package/fesm2022/ojiepermana-angular-navigation-navigation-list.component-YUzHI9Pj.mjs +311 -0
  91. package/fesm2022/ojiepermana-angular-navigation-service.mjs +542 -724
  92. package/fesm2022/ojiepermana-angular-navigation-types.mjs +27 -56
  93. package/fesm2022/ojiepermana-angular-navigation.mjs +3052 -4
  94. package/fesm2022/ojiepermana-angular-sdk.mjs +91 -201
  95. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1115 -737
  96. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +245 -328
  97. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +35 -38
  98. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1719 -552
  99. package/fesm2022/ojiepermana-angular-theme-layout.mjs +847 -491
  100. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +288 -358
  101. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +362 -224
  102. package/fesm2022/ojiepermana-angular-theme-page-overview.mjs +88 -0
  103. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +576 -254
  104. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +317 -177
  105. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +256 -112
  106. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -12
  107. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +215 -326
  108. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +68 -129
  109. package/fesm2022/ojiepermana-angular-theme-shell.mjs +907 -378
  110. package/fesm2022/ojiepermana-angular-theme-styles.mjs +521 -720
  111. package/fesm2022/ojiepermana-angular-theme.mjs +0 -10
  112. package/fesm2022/ojiepermana-angular.mjs +5 -24
  113. package/navigation/README.md +1 -1
  114. package/package.json +16 -12
  115. package/sdk/README.md +1 -1
  116. package/sdk/src/writer/index.js +2 -2
  117. package/theme/README.md +1 -1
  118. package/theme/layout/README.md +2 -4
  119. package/theme/page/README.md +50 -0
  120. package/theme/styles/README.md +10 -10
  121. package/theme/styles/css/base/prefers-dark.css +1 -1
  122. package/theme/styles/css/base/status.css +1 -1
  123. package/theme/styles/css/color/amber.css +1 -1
  124. package/theme/styles/css/color/blue.css +1 -1
  125. package/theme/styles/css/color/cyan.css +1 -1
  126. package/theme/styles/css/color/emerald.css +1 -1
  127. package/theme/styles/css/color/fuchsia.css +1 -1
  128. package/theme/styles/css/color/green.css +1 -1
  129. package/theme/styles/css/color/indigo.css +1 -1
  130. package/theme/styles/css/color/lime.css +1 -1
  131. package/theme/styles/css/color/orange.css +1 -1
  132. package/theme/styles/css/color/pink.css +1 -1
  133. package/theme/styles/css/color/purple.css +1 -1
  134. package/theme/styles/css/color/red.css +1 -1
  135. package/theme/styles/css/color/rose.css +1 -1
  136. package/theme/styles/css/color/sky.css +1 -1
  137. package/theme/styles/css/color/teal.css +1 -1
  138. package/theme/styles/css/color/violet.css +1 -1
  139. package/theme/styles/css/color/yellow.css +1 -1
  140. package/theme/styles/css/neutral/gray.css +1 -1
  141. package/theme/styles/css/neutral/mauve.css +1 -1
  142. package/theme/styles/css/neutral/mist.css +1 -1
  143. package/theme/styles/css/neutral/neutral.css +1 -1
  144. package/theme/styles/css/neutral/olive.css +1 -1
  145. package/theme/styles/css/neutral/slate.css +1 -1
  146. package/theme/styles/css/neutral/stone.css +1 -1
  147. package/theme/styles/css/neutral/taupe.css +1 -1
  148. package/theme/styles/css/neutral/zinc.css +1 -1
  149. package/types/ojiepermana-angular-chart-area.d.ts +126 -63
  150. package/types/ojiepermana-angular-chart-bar.d.ts +244 -154
  151. package/types/ojiepermana-angular-chart-core.d.ts +409 -398
  152. package/types/ojiepermana-angular-chart-line.d.ts +141 -68
  153. package/types/ojiepermana-angular-chart-pie.d.ts +192 -121
  154. package/types/ojiepermana-angular-chart-primitives.d.ts +283 -214
  155. package/types/ojiepermana-angular-chart-radar.d.ts +189 -108
  156. package/types/ojiepermana-angular-chart-radial.d.ts +177 -106
  157. package/types/ojiepermana-angular-chart-scatter.d.ts +166 -110
  158. package/types/ojiepermana-angular-chart.d.ts +3 -2
  159. package/types/ojiepermana-angular-component-accordion.d.ts +135 -81
  160. package/types/ojiepermana-angular-component-alert-dialog.d.ts +271 -123
  161. package/types/ojiepermana-angular-component-alert.d.ts +69 -39
  162. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +20 -12
  163. package/types/ojiepermana-angular-component-avatar.d.ts +103 -49
  164. package/types/ojiepermana-angular-component-badge.d.ts +36 -24
  165. package/types/ojiepermana-angular-component-breadcrumb.d.ts +79 -40
  166. package/types/ojiepermana-angular-component-button-group.d.ts +48 -24
  167. package/types/ojiepermana-angular-component-button.d.ts +44 -27
  168. package/types/ojiepermana-angular-component-calendar.d.ts +145 -107
  169. package/types/ojiepermana-angular-component-card.d.ts +112 -63
  170. package/types/ojiepermana-angular-component-carousel.d.ts +150 -81
  171. package/types/ojiepermana-angular-component-checkbox.d.ts +96 -38
  172. package/types/ojiepermana-angular-component-collapsible.d.ts +65 -39
  173. package/types/ojiepermana-angular-component-combobox.d.ts +100 -55
  174. package/types/ojiepermana-angular-component-command.d.ts +206 -121
  175. package/types/ojiepermana-angular-component-composer.d.ts +184 -84
  176. package/types/ojiepermana-angular-component-context-menu.d.ts +51 -41
  177. package/types/ojiepermana-angular-component-date-picker.d.ts +199 -109
  178. package/types/ojiepermana-angular-component-dialog.d.ts +200 -105
  179. package/types/ojiepermana-angular-component-drawer.d.ts +2 -1
  180. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +324 -202
  181. package/types/ojiepermana-angular-component-editor.d.ts +215 -117
  182. package/types/ojiepermana-angular-component-empty.d.ts +80 -45
  183. package/types/ojiepermana-angular-component-form.d.ts +185 -121
  184. package/types/ojiepermana-angular-component-hover-card.d.ts +130 -72
  185. package/types/ojiepermana-angular-component-icon.d.ts +87 -57
  186. package/types/ojiepermana-angular-component-input-group.d.ts +93 -46
  187. package/types/ojiepermana-angular-component-input-otp.d.ts +243 -150
  188. package/types/ojiepermana-angular-component-input.d.ts +27 -17
  189. package/types/ojiepermana-angular-component-item.d.ts +160 -84
  190. package/types/ojiepermana-angular-component-kanban.d.ts +157 -62
  191. package/types/ojiepermana-angular-component-kbd.d.ts +24 -15
  192. package/types/ojiepermana-angular-component-label.d.ts +19 -11
  193. package/types/ojiepermana-angular-component-menubar.d.ts +120 -90
  194. package/types/ojiepermana-angular-component-native-select.d.ts +37 -24
  195. package/types/ojiepermana-angular-component-navigation-menu.d.ts +157 -98
  196. package/types/ojiepermana-angular-component-pagination.d.ts +78 -28
  197. package/types/ojiepermana-angular-component-pillbox.d.ts +361 -204
  198. package/types/ojiepermana-angular-component-popover.d.ts +94 -64
  199. package/types/ojiepermana-angular-component-progress.d.ts +45 -17
  200. package/types/ojiepermana-angular-component-radio.d.ts +129 -53
  201. package/types/ojiepermana-angular-component-resizable.d.ts +160 -112
  202. package/types/ojiepermana-angular-component-scroll-area.d.ts +33 -15
  203. package/types/ojiepermana-angular-component-segmented-control.d.ts +94 -50
  204. package/types/ojiepermana-angular-component-select.d.ts +94 -77
  205. package/types/ojiepermana-angular-component-separator.d.ts +26 -14
  206. package/types/ojiepermana-angular-component-sheet.d.ts +226 -116
  207. package/types/ojiepermana-angular-component-skeleton.d.ts +13 -10
  208. package/types/ojiepermana-angular-component-slider.d.ts +140 -75
  209. package/types/ojiepermana-angular-component-spinner.d.ts +31 -13
  210. package/types/ojiepermana-angular-component-switch.d.ts +97 -40
  211. package/types/ojiepermana-angular-component-table.d.ts +102 -50
  212. package/types/ojiepermana-angular-component-tabs.d.ts +174 -115
  213. package/types/ojiepermana-angular-component-textarea.d.ts +27 -17
  214. package/types/ojiepermana-angular-component-timeline.d.ts +141 -59
  215. package/types/ojiepermana-angular-component-toast.d.ts +51 -55
  216. package/types/ojiepermana-angular-component-toggle-group.d.ts +159 -88
  217. package/types/ojiepermana-angular-component-toggle.d.ts +47 -25
  218. package/types/ojiepermana-angular-component-tooltip.d.ts +222 -132
  219. package/types/ojiepermana-angular-component-utils-core.d.ts +81 -90
  220. package/types/ojiepermana-angular-component-utils-overlay.d.ts +7 -11
  221. package/types/ojiepermana-angular-component-utils-scale.d.ts +20 -12
  222. package/types/ojiepermana-angular-component-utils.d.ts +2 -2
  223. package/types/ojiepermana-angular-component.d.ts +1 -2
  224. package/types/ojiepermana-angular-navigation-core.d.ts +46 -50
  225. package/types/ojiepermana-angular-navigation-icon.d.ts +9 -12
  226. package/types/ojiepermana-angular-navigation-service.d.ts +112 -115
  227. package/types/ojiepermana-angular-navigation-types.d.ts +121 -125
  228. package/types/ojiepermana-angular-navigation.d.ts +663 -374
  229. package/types/ojiepermana-angular-sdk.d.ts +69 -71
  230. package/types/ojiepermana-angular-theme-component-settings.d.ts +115 -83
  231. package/types/ojiepermana-angular-theme-layout-services.d.ts +119 -124
  232. package/types/ojiepermana-angular-theme-layout-types.d.ts +27 -31
  233. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +399 -187
  234. package/types/ojiepermana-angular-theme-layout.d.ts +201 -112
  235. package/types/ojiepermana-angular-theme-page-core.d.ts +136 -142
  236. package/types/ojiepermana-angular-theme-page-filter.d.ts +112 -62
  237. package/types/ojiepermana-angular-theme-page-overview.d.ts +28 -0
  238. package/types/ojiepermana-angular-theme-page-root.d.ts +172 -88
  239. package/types/ojiepermana-angular-theme-page-side.d.ts +89 -49
  240. package/types/ojiepermana-angular-theme-page-slots.d.ts +58 -37
  241. package/types/ojiepermana-angular-theme-page.d.ts +7 -5
  242. package/types/ojiepermana-angular-theme-shell-services.d.ts +119 -125
  243. package/types/ojiepermana-angular-theme-shell-types.d.ts +38 -41
  244. package/types/ojiepermana-angular-theme-shell.d.ts +139 -61
  245. package/types/ojiepermana-angular-theme-styles.d.ts +184 -196
  246. package/types/ojiepermana-angular-theme.d.ts +1 -2
  247. package/types/ojiepermana-angular.d.ts +5 -5
  248. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +0 -91
  249. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +0 -512
  250. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +0 -404
  251. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +0 -466
  252. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +0 -2642
@@ -1,210 +1,100 @@
1
- /**
2
- * Tiny rendering helpers. We use template literals + small utilities rather
3
- * than a template engine to keep the generator dependency-free and the
4
- * emitter output predictable.
5
- */
6
- /** kebab-case (preserving digits) — matches the naming style in `old/api/`. */
7
- function kebabCase(input) {
8
- return String(input)
9
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
10
- .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
11
- .replace(/[^a-zA-Z0-9]+/g, '-')
12
- .replace(/^-+|-+$/g, '')
13
- .toLowerCase();
14
- }
15
- /** PascalCase — used for class/interface names when sanitizing tags. */
16
- function pascalCase(input) {
17
- const words = String(input)
18
- .replace(/[^a-zA-Z0-9]+/g, ' ')
19
- .trim()
20
- .split(/\s+/)
21
- .filter(Boolean)
22
- .map((w) => w[0].toUpperCase() + w.slice(1))
23
- .join('');
24
- return words ? safeIdentifier(words) : '';
25
- }
26
- /** camelCase — used for variable / method / fn names. */
27
- function camelCase(input) {
28
- const pc = pascalCase(input);
29
- return pc ? safeIdentifier(pc[0].toLowerCase() + pc.slice(1)) : '';
30
- }
31
- /**
32
- * Reserved words plus the identifiers a strict-mode module may not bind. An
33
- * `operationId` is arbitrary text from the OpenAPI document, so `delete` or
34
- * `2faVerify` reach the emitters as-is and would otherwise be written straight
35
- * into `export function <name>(`.
36
- */
37
- const RESERVED_WORDS = new Set([
38
- 'arguments',
39
- 'await',
40
- 'break',
41
- 'case',
42
- 'catch',
43
- 'class',
44
- 'const',
45
- 'continue',
46
- 'debugger',
47
- 'default',
48
- 'delete',
49
- 'do',
50
- 'else',
51
- 'enum',
52
- 'eval',
53
- 'export',
54
- 'extends',
55
- 'false',
56
- 'finally',
57
- 'for',
58
- 'function',
59
- 'if',
60
- 'implements',
61
- 'import',
62
- 'in',
63
- 'instanceof',
64
- 'interface',
65
- 'let',
66
- 'new',
67
- 'null',
68
- 'package',
69
- 'private',
70
- 'protected',
71
- 'public',
72
- 'return',
73
- 'static',
74
- 'super',
75
- 'switch',
76
- 'this',
77
- 'throw',
78
- 'true',
79
- 'try',
80
- 'typeof',
81
- 'undefined',
82
- 'var',
83
- 'void',
84
- 'while',
85
- 'with',
86
- 'yield',
1
+ const RESERVED_WORDS = /* @__PURE__ */ new Set([
2
+ "arguments",
3
+ "await",
4
+ "break",
5
+ "case",
6
+ "catch",
7
+ "class",
8
+ "const",
9
+ "continue",
10
+ "debugger",
11
+ "default",
12
+ "delete",
13
+ "do",
14
+ "else",
15
+ "enum",
16
+ "eval",
17
+ "export",
18
+ "extends",
19
+ "false",
20
+ "finally",
21
+ "for",
22
+ "function",
23
+ "if",
24
+ "implements",
25
+ "import",
26
+ "in",
27
+ "instanceof",
28
+ "interface",
29
+ "let",
30
+ "new",
31
+ "null",
32
+ "package",
33
+ "private",
34
+ "protected",
35
+ "public",
36
+ "return",
37
+ "static",
38
+ "super",
39
+ "switch",
40
+ "this",
41
+ "throw",
42
+ "true",
43
+ "try",
44
+ "typeof",
45
+ "undefined",
46
+ "var",
47
+ "void",
48
+ "while",
49
+ "with",
50
+ "yield"
87
51
  ]);
88
- /**
89
- * Make an unquoted identifier legal: prefix a leading digit, suffix a reserved
90
- * word. Every generated function, class, interface and variable name goes
91
- * through here, so a name and every reference to it stay in step.
92
- */
93
52
  function safeIdentifier(name) {
94
- const prefixed = /^[0-9]/.test(name) ? `_${name}` : name;
95
- return RESERVED_WORDS.has(prefixed) ? `${prefixed}_` : prefixed;
96
- }
97
- const IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
98
- /**
99
- * A single-quoted TypeScript string literal. Every quoted identifier the
100
- * emitters produce must go through here — a schema property, a parameter name,
101
- * or a path template is arbitrary text from the OpenAPI document, and an
102
- * apostrophe in it would otherwise close the literal and emit broken source.
103
- */
104
- function quote(value) {
105
- const escaped = String(value)
106
- .replace(/\\/g, '\\\\')
107
- .replace(/'/g, "\\'")
108
- .replace(/\r/g, '\\r')
109
- .replace(/\n/g, '\\n');
110
- return `'${escaped}'`;
111
- }
112
- /** A property key for an interface or object literal — bare when safe, quoted otherwise. */
113
- function propertyKey(name) {
114
- return IDENTIFIER.test(name) ? name : quote(name);
115
- }
116
- /** A property access suffix — dotted when safe, bracketed otherwise. */
117
- function propertyAccess(name) {
118
- return IDENTIFIER.test(name) ? `.${name}` : `[${quote(name)}]`;
119
- }
120
- /** Trim trailing whitespace on every line and ensure a single trailing newline. */
121
- function finalize(text) {
122
- const trimmed = text
123
- .split('\n')
124
- .map((line) => line.replace(/\s+$/g, ''))
125
- .join('\n')
126
- .replace(/\n{3,}/g, '\n\n')
127
- .replace(/^\s*\n/, '');
128
- return trimmed.endsWith('\n') ? trimmed : trimmed + '\n';
129
- }
130
- /** Render an indented block-comment (1-line friendly). */
131
- function comment(text) {
132
- if (!text)
133
- return '';
134
- const safe = text.replace(/\*\//g, '*\\/');
135
- return `/** ${safe} */`;
136
- }
137
- /** Join non-empty blocks with a blank line between them. */
138
- function joinBlocks(blocks) {
139
- return blocks.filter(Boolean).join('\n\n');
53
+ const prefixed = /^[0-9]/.test(name) ? `_${name}` : name;
54
+ return RESERVED_WORDS.has(prefixed) ? `${prefixed}_` : prefixed;
140
55
  }
141
-
142
- /**
143
- * Public config shape for the SDK generator.
144
- *
145
- * Users place an `sdk.config.json` at the workspace root describing one or more
146
- * generation targets. All paths are resolved relative to the workspace root
147
- * (i.e. the directory containing the config file).
148
- */
149
- const DEFAULT_BANNER = '/* eslint-disable */\n/* Auto-generated by @ojiepermana/angular/sdk. DO NOT EDIT. */';
56
+ const DEFAULT_BANNER = "/* eslint-disable */\n/* Auto-generated by @ojiepermana/angular/sdk. DO NOT EDIT. */";
150
57
  const DEFAULT_FEATURES = {
151
- models: true,
152
- operations: true,
153
- services: true,
154
- client: true,
155
- metadata: true,
156
- navigation: true,
157
- resources: false,
58
+ models: true,
59
+ operations: true,
60
+ services: true,
61
+ client: true,
62
+ metadata: true,
63
+ navigation: true,
64
+ resources: false
158
65
  };
159
66
  function resolveTarget(raw) {
160
- if (!raw || typeof raw !== 'object') {
161
- throw new Error('Invalid target: expected object');
162
- }
163
- if (!raw.input)
164
- throw new Error('Target is missing required "input"');
165
- if (!raw.output)
166
- throw new Error('Target is missing required "output"');
167
- const mode = raw.mode ?? 'standalone';
168
- if (!['standalone', 'library', 'secondary-entrypoint'].includes(mode)) {
169
- throw new Error(`Invalid target mode: ${mode}`);
170
- }
171
- const splitByDomain = raw.splitByDomain ?? mode === 'library';
172
- return {
173
- input: raw.input,
174
- output: raw.output,
175
- mode,
176
- clientName: safeIdentifier(raw.clientName ?? 'Api'),
177
- packageName: raw.packageName ?? '@local/sdk',
178
- packageVersion: raw.packageVersion ?? '0.0.1',
179
- rootUrl: raw.rootUrl,
180
- features: { ...DEFAULT_FEATURES, ...(raw.features ?? {}) },
181
- splitByDomain,
182
- splitDepth: raw.splitDepth === 'tag' ? 'tag' : 'service',
183
- banner: raw.banner ?? DEFAULT_BANNER,
184
- };
67
+ if (!raw || typeof raw !== "object") throw new Error("Invalid target: expected object");
68
+ if (!raw.input) throw new Error("Target is missing required \"input\"");
69
+ if (!raw.output) throw new Error("Target is missing required \"output\"");
70
+ const mode = raw.mode ?? "standalone";
71
+ if (![
72
+ "standalone",
73
+ "library",
74
+ "secondary-entrypoint"
75
+ ].includes(mode)) throw new Error(`Invalid target mode: ${mode}`);
76
+ const splitByDomain = raw.splitByDomain ?? mode === "library";
77
+ return {
78
+ input: raw.input,
79
+ output: raw.output,
80
+ mode,
81
+ clientName: safeIdentifier(raw.clientName ?? "Api"),
82
+ packageName: raw.packageName ?? "@local/sdk",
83
+ packageVersion: raw.packageVersion ?? "0.0.1",
84
+ rootUrl: raw.rootUrl,
85
+ features: {
86
+ ...DEFAULT_FEATURES,
87
+ ...raw.features ?? {}
88
+ },
89
+ splitByDomain,
90
+ splitDepth: raw.splitDepth === "tag" ? "tag" : "service",
91
+ banner: raw.banner ?? DEFAULT_BANNER
92
+ };
185
93
  }
186
94
  function resolveConfig(raw) {
187
- if (!raw || typeof raw !== 'object') {
188
- throw new Error('Invalid SDK config: root must be an object');
189
- }
190
- const cfg = raw;
191
- if (!Array.isArray(cfg.targets) || cfg.targets.length === 0) {
192
- throw new Error('Invalid SDK config: "targets" must be a non-empty array');
193
- }
194
- return cfg.targets.map(resolveTarget);
95
+ if (!raw || typeof raw !== "object") throw new Error("Invalid SDK config: root must be an object");
96
+ const cfg = raw;
97
+ if (!Array.isArray(cfg.targets) || cfg.targets.length === 0) throw new Error("Invalid SDK config: \"targets\" must be a non-empty array");
98
+ return cfg.targets.map(resolveTarget);
195
99
  }
196
-
197
- /*
198
- * Public API Surface of @ojiepermana/angular/sdk
199
- * (also re-exported as the secondary entrypoint @ojiepermana/angular/sdk)
200
- *
201
- * This package is primarily consumed as an Angular schematic collection
202
- * (`init` and `sdk`). The TypeScript surface intentionally stays small and
203
- * Node-free so it can be published as a standalone Angular library entry point.
204
- */
205
-
206
- /**
207
- * Generated bundle index. Do not edit.
208
- */
209
-
210
- export { resolveConfig, resolveTarget };
100
+ export { resolveConfig, resolveTarget };