@ojiepermana/angular 22.1.11 → 22.1.12

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 (340) hide show
  1. package/README.md +32 -26
  2. package/chart/README.md +272 -0
  3. package/component/README.md +89 -0
  4. package/component/accordion/README.md +195 -0
  5. package/component/alert/README.md +184 -0
  6. package/component/alert-dialog/README.md +255 -0
  7. package/component/aspect-ratio/README.md +116 -0
  8. package/component/avatar/README.md +182 -0
  9. package/component/badge/README.md +143 -0
  10. package/component/breadcrumb/README.md +223 -0
  11. package/component/button/README.md +141 -0
  12. package/component/button-group/README.md +214 -0
  13. package/component/calendar/README.md +137 -0
  14. package/component/card/README.md +232 -0
  15. package/component/carousel/README.md +276 -0
  16. package/component/checkbox/README.md +153 -0
  17. package/component/collapsible/README.md +216 -0
  18. package/component/combobox/README.md +202 -0
  19. package/component/command/README.md +287 -0
  20. package/component/composer/README.md +241 -0
  21. package/component/context-menu/README.md +268 -0
  22. package/component/date-picker/README.md +202 -0
  23. package/component/dialog/README.md +276 -0
  24. package/component/drawer/README.md +147 -0
  25. package/component/dropdown-menu/README.md +336 -0
  26. package/component/editor/README.md +152 -0
  27. package/component/empty/README.md +193 -0
  28. package/component/form/README.md +216 -0
  29. package/component/hover-card/README.md +150 -0
  30. package/component/icon/README.md +25 -0
  31. package/component/input/README.md +160 -0
  32. package/component/input-group/README.md +245 -0
  33. package/component/input-otp/README.md +331 -0
  34. package/component/item/README.md +254 -0
  35. package/component/kanban/README.md +81 -0
  36. package/component/kbd/README.md +141 -0
  37. package/component/label/README.md +137 -0
  38. package/component/menubar/README.md +270 -0
  39. package/component/native-select/README.md +176 -0
  40. package/component/navigation-menu/README.md +165 -0
  41. package/component/pagination/README.md +151 -0
  42. package/component/pillbox/README.md +68 -0
  43. package/component/popover/README.md +54 -0
  44. package/component/progress/README.md +160 -0
  45. package/component/radio/README.md +212 -0
  46. package/component/resizable/README.md +178 -0
  47. package/component/scroll-area/README.md +150 -0
  48. package/component/select/README.md +228 -0
  49. package/component/separator/README.md +175 -0
  50. package/component/sheet/README.md +190 -0
  51. package/component/skeleton/README.md +158 -0
  52. package/component/slider/README.md +207 -0
  53. package/component/spinner/README.md +160 -0
  54. package/component/switch/README.md +170 -0
  55. package/component/table/README.md +292 -0
  56. package/component/tabs/README.md +220 -0
  57. package/component/textarea/README.md +169 -0
  58. package/component/timeline/README.md +94 -0
  59. package/component/toast/README.md +173 -0
  60. package/component/toggle/README.md +133 -0
  61. package/component/toggle-group/README.md +234 -0
  62. package/component/tooltip/README.md +230 -0
  63. package/fesm2022/ojiepermana-angular-chart-area.mjs +289 -3
  64. package/fesm2022/ojiepermana-angular-chart-bar.mjs +722 -3
  65. package/fesm2022/ojiepermana-angular-chart-core.mjs +1482 -3
  66. package/fesm2022/ojiepermana-angular-chart-line.mjs +294 -3
  67. package/fesm2022/ojiepermana-angular-chart-pie.mjs +291 -3
  68. package/fesm2022/ojiepermana-angular-chart-primitives.mjs +1301 -3
  69. package/fesm2022/ojiepermana-angular-chart-radar.mjs +421 -3
  70. package/fesm2022/ojiepermana-angular-chart-radial.mjs +295 -3
  71. package/fesm2022/ojiepermana-angular-chart-scatter.mjs +306 -3
  72. package/fesm2022/ojiepermana-angular-chart.mjs +12 -3
  73. package/fesm2022/ojiepermana-angular-component-accordion.mjs +267 -3
  74. package/fesm2022/ojiepermana-angular-component-alert-dialog.mjs +359 -3
  75. package/fesm2022/ojiepermana-angular-component-alert.mjs +101 -3
  76. package/fesm2022/ojiepermana-angular-component-aspect-ratio.mjs +31 -3
  77. package/fesm2022/ojiepermana-angular-component-avatar.mjs +139 -3
  78. package/fesm2022/ojiepermana-angular-component-badge.mjs +57 -3
  79. package/fesm2022/ojiepermana-angular-component-breadcrumb.mjs +192 -3
  80. package/fesm2022/ojiepermana-angular-component-button-group.mjs +95 -3
  81. package/fesm2022/ojiepermana-angular-component-button.mjs +73 -3
  82. package/fesm2022/ojiepermana-angular-component-calendar.mjs +718 -3
  83. package/fesm2022/ojiepermana-angular-component-card.mjs +167 -3
  84. package/fesm2022/ojiepermana-angular-component-carousel.mjs +326 -3
  85. package/fesm2022/ojiepermana-angular-component-checkbox.mjs +190 -3
  86. package/fesm2022/ojiepermana-angular-component-collapsible.mjs +117 -3
  87. package/fesm2022/ojiepermana-angular-component-combobox.mjs +327 -3
  88. package/fesm2022/ojiepermana-angular-component-command.mjs +351 -3
  89. package/fesm2022/ojiepermana-angular-component-composer.mjs +359 -3
  90. package/fesm2022/ojiepermana-angular-component-context-menu.mjs +158 -3
  91. package/fesm2022/ojiepermana-angular-component-date-picker.mjs +482 -3
  92. package/fesm2022/ojiepermana-angular-component-dialog.mjs +400 -3
  93. package/fesm2022/ojiepermana-angular-component-drawer.mjs +1 -3
  94. package/fesm2022/ojiepermana-angular-component-dropdown-menu.mjs +689 -3
  95. package/fesm2022/ojiepermana-angular-component-editor.mjs +511 -3
  96. package/fesm2022/ojiepermana-angular-component-empty.mjs +134 -3
  97. package/fesm2022/ojiepermana-angular-component-form.mjs +438 -3
  98. package/fesm2022/ojiepermana-angular-component-hover-card.mjs +273 -3
  99. package/fesm2022/ojiepermana-angular-component-icon.mjs +139 -3
  100. package/fesm2022/ojiepermana-angular-component-input-group.mjs +176 -3
  101. package/fesm2022/ojiepermana-angular-component-input-otp.mjs +550 -3
  102. package/fesm2022/ojiepermana-angular-component-input.mjs +52 -3
  103. package/fesm2022/ojiepermana-angular-component-item.mjs +264 -3
  104. package/fesm2022/ojiepermana-angular-component-kanban.mjs +310 -3
  105. package/fesm2022/ojiepermana-angular-component-kbd.mjs +48 -3
  106. package/fesm2022/ojiepermana-angular-component-label.mjs +27 -3
  107. package/fesm2022/ojiepermana-angular-component-menubar.mjs +327 -3
  108. package/fesm2022/ojiepermana-angular-component-native-select.mjs +62 -3
  109. package/fesm2022/ojiepermana-angular-component-navigation-menu.mjs +378 -3
  110. package/fesm2022/ojiepermana-angular-component-pagination.mjs +238 -3
  111. package/fesm2022/ojiepermana-angular-component-pillbox.mjs +999 -3
  112. package/fesm2022/ojiepermana-angular-component-popover.mjs +201 -3
  113. package/fesm2022/ojiepermana-angular-component-progress.mjs +57 -3
  114. package/fesm2022/ojiepermana-angular-component-radio.mjs +180 -3
  115. package/fesm2022/ojiepermana-angular-component-resizable.mjs +493 -3
  116. package/fesm2022/ojiepermana-angular-component-scroll-area.mjs +51 -3
  117. package/fesm2022/ojiepermana-angular-component-segmented-control.mjs +227 -3
  118. package/fesm2022/ojiepermana-angular-component-select.mjs +609 -3
  119. package/fesm2022/ojiepermana-angular-component-separator.mjs +31 -3
  120. package/fesm2022/ojiepermana-angular-component-sheet.mjs +407 -3
  121. package/fesm2022/ojiepermana-angular-component-skeleton.mjs +25 -3
  122. package/fesm2022/ojiepermana-angular-component-slider.mjs +456 -3
  123. package/fesm2022/ojiepermana-angular-component-spinner.mjs +56 -3
  124. package/fesm2022/ojiepermana-angular-component-switch.mjs +145 -3
  125. package/fesm2022/ojiepermana-angular-component-table.mjs +155 -3
  126. package/fesm2022/ojiepermana-angular-component-tabs.mjs +315 -3
  127. package/fesm2022/ojiepermana-angular-component-textarea.mjs +46 -3
  128. package/fesm2022/ojiepermana-angular-component-timeline.mjs +237 -3
  129. package/fesm2022/ojiepermana-angular-component-toast.mjs +241 -3
  130. package/fesm2022/ojiepermana-angular-component-toggle-group.mjs +290 -3
  131. package/fesm2022/ojiepermana-angular-component-toggle.mjs +76 -3
  132. package/fesm2022/ojiepermana-angular-component-tooltip.mjs +519 -3
  133. package/fesm2022/ojiepermana-angular-component-utils-core.mjs +310 -3
  134. package/fesm2022/ojiepermana-angular-component-utils-overlay.mjs +62 -3
  135. package/fesm2022/ojiepermana-angular-component-utils-scale.mjs +34 -3
  136. package/fesm2022/ojiepermana-angular-component-utils.mjs +3 -2
  137. package/fesm2022/ojiepermana-angular-component.mjs +4 -4
  138. package/fesm2022/ojiepermana-angular-navigation-core.mjs +21 -3
  139. package/fesm2022/ojiepermana-angular-navigation-icon.mjs +20 -3
  140. package/fesm2022/ojiepermana-angular-navigation-navigation-badge-count.component-CDBxQ8rk.mjs +91 -0
  141. package/fesm2022/ojiepermana-angular-navigation-navigation-dockbar-menu.component-DBQHdvGa.mjs +512 -0
  142. package/fesm2022/ojiepermana-angular-navigation-navigation-entry-grid.component-Cd-jh6tg.mjs +623 -0
  143. package/fesm2022/ojiepermana-angular-navigation-navigation-flyout-menu.component-BCGvhoYj.mjs +404 -0
  144. package/fesm2022/ojiepermana-angular-navigation-navigation-horizontal.component-Dk_03e-6.mjs +466 -0
  145. package/fesm2022/ojiepermana-angular-navigation-ojiepermana-angular-navigation-DNKU6viC.mjs +2642 -0
  146. package/fesm2022/ojiepermana-angular-navigation-service.mjs +725 -3
  147. package/fesm2022/ojiepermana-angular-navigation-types.mjs +65 -4
  148. package/fesm2022/ojiepermana-angular-navigation.mjs +4 -10
  149. package/fesm2022/ojiepermana-angular-sdk.mjs +204 -4
  150. package/fesm2022/ojiepermana-angular-theme-component-settings.mjs +1387 -3
  151. package/fesm2022/ojiepermana-angular-theme-layout-services.mjs +331 -3
  152. package/fesm2022/ojiepermana-angular-theme-layout-types.mjs +45 -4
  153. package/fesm2022/ojiepermana-angular-theme-layout-wrapper.mjs +1044 -3
  154. package/fesm2022/ojiepermana-angular-theme-layout.mjs +729 -3
  155. package/fesm2022/ojiepermana-angular-theme-page-core.mjs +381 -3
  156. package/fesm2022/ojiepermana-angular-theme-page-filter.mjs +267 -3
  157. package/fesm2022/ojiepermana-angular-theme-page-root.mjs +361 -3
  158. package/fesm2022/ojiepermana-angular-theme-page-side.mjs +198 -3
  159. package/fesm2022/ojiepermana-angular-theme-page-slots.mjs +110 -3
  160. package/fesm2022/ojiepermana-angular-theme-page.mjs +7 -2
  161. package/fesm2022/ojiepermana-angular-theme-shell-services.mjs +338 -3
  162. package/fesm2022/ojiepermana-angular-theme-shell-types.mjs +160 -4
  163. package/fesm2022/ojiepermana-angular-theme-shell.mjs +811 -3
  164. package/fesm2022/ojiepermana-angular-theme-styles.mjs +783 -3
  165. package/fesm2022/ojiepermana-angular-theme.mjs +4 -4
  166. package/fesm2022/ojiepermana-angular.mjs +6 -11
  167. package/navigation/README.md +374 -0
  168. package/package.json +81 -20
  169. package/sdk/README.md +212 -0
  170. package/sdk/schematics/collection.json +20 -0
  171. package/sdk/schematics/init/index.js +83 -0
  172. package/sdk/schematics/init/schema.json +19 -0
  173. package/sdk/schematics/ng-add/index.js +147 -0
  174. package/sdk/schematics/ng-add/schema.json +14 -0
  175. package/sdk/schematics/package.json +3 -0
  176. package/sdk/schematics/sdk/index.js +175 -0
  177. package/sdk/schematics/sdk/schema.json +19 -0
  178. package/sdk/sdk.config.example.json +24 -0
  179. package/sdk/src/config/loader.js +43 -0
  180. package/sdk/src/config/schema.js +59 -0
  181. package/sdk/src/emit/client.js +251 -0
  182. package/sdk/src/emit/metadata.js +310 -0
  183. package/sdk/src/emit/models.js +104 -0
  184. package/sdk/src/emit/navigation.js +56 -0
  185. package/sdk/src/emit/operations.js +118 -0
  186. package/sdk/src/emit/public-api.js +54 -0
  187. package/sdk/src/emit/services.js +110 -0
  188. package/sdk/src/engine.js +67 -0
  189. package/sdk/src/layout/per-domain.js +360 -0
  190. package/sdk/src/package.json +3 -0
  191. package/sdk/src/parser/bundle.js +25 -0
  192. package/sdk/src/parser/ir.js +429 -0
  193. package/sdk/src/parser/types.js +7 -0
  194. package/sdk/src/render/template.js +152 -0
  195. package/sdk/src/writer/index.js +286 -0
  196. package/theme/README.md +126 -0
  197. package/theme/component/settings/README.md +135 -0
  198. package/theme/layout/README.md +539 -0
  199. package/theme/page/README.md +453 -0
  200. package/theme/shell/README.md +340 -0
  201. package/theme/styles/README.md +178 -0
  202. package/theme/styles/css/base/components.css +553 -0
  203. package/theme/styles/css/base/index.css +14 -0
  204. package/theme/styles/css/base/package.css +9 -0
  205. package/theme/styles/css/base/prefers-dark.css +86 -0
  206. package/theme/styles/css/base/print.css +62 -0
  207. package/theme/styles/css/base/status.css +38 -0
  208. package/theme/styles/css/base/tailwind.css +165 -0
  209. package/theme/styles/css/base/theme.css +373 -0
  210. package/theme/styles/css/base/tokens.css +361 -0
  211. package/theme/styles/css/color/amber.css +72 -0
  212. package/theme/styles/css/color/blue.css +72 -0
  213. package/theme/styles/css/color/brand.css +38 -0
  214. package/theme/styles/css/color/cyan.css +72 -0
  215. package/theme/styles/css/color/emerald.css +72 -0
  216. package/theme/styles/css/color/fuchsia.css +72 -0
  217. package/theme/styles/css/color/green.css +72 -0
  218. package/theme/styles/css/color/index.css +19 -0
  219. package/theme/styles/css/color/indigo.css +72 -0
  220. package/theme/styles/css/color/lime.css +72 -0
  221. package/theme/styles/css/color/orange.css +72 -0
  222. package/theme/styles/css/color/pink.css +72 -0
  223. package/theme/styles/css/color/purple.css +72 -0
  224. package/theme/styles/css/color/red.css +72 -0
  225. package/theme/styles/css/color/rose.css +72 -0
  226. package/theme/styles/css/color/sky.css +72 -0
  227. package/theme/styles/css/color/teal.css +72 -0
  228. package/theme/styles/css/color/violet.css +72 -0
  229. package/theme/styles/css/color/yellow.css +72 -0
  230. package/theme/styles/css/index.css +18 -0
  231. package/theme/styles/css/neutral/gray.css +63 -0
  232. package/theme/styles/css/neutral/index.css +11 -0
  233. package/theme/styles/css/neutral/mauve.css +63 -0
  234. package/theme/styles/css/neutral/mist.css +63 -0
  235. package/theme/styles/css/neutral/neutral.css +63 -0
  236. package/theme/styles/css/neutral/olive.css +63 -0
  237. package/theme/styles/css/neutral/slate.css +63 -0
  238. package/theme/styles/css/neutral/stone.css +63 -0
  239. package/theme/styles/css/neutral/taupe.css +63 -0
  240. package/theme/styles/css/neutral/zinc.css +63 -0
  241. package/theme/styles/css/radius/index.css +30 -0
  242. package/theme/styles/css/space/index.css +20 -0
  243. package/types/ojiepermana-angular-chart-area.d.ts +76 -1
  244. package/types/ojiepermana-angular-chart-bar.d.ts +201 -1
  245. package/types/ojiepermana-angular-chart-core.d.ts +811 -1
  246. package/types/ojiepermana-angular-chart-line.d.ts +75 -1
  247. package/types/ojiepermana-angular-chart-pie.d.ts +131 -1
  248. package/types/ojiepermana-angular-chart-primitives.d.ts +291 -1
  249. package/types/ojiepermana-angular-chart-radar.d.ts +116 -1
  250. package/types/ojiepermana-angular-chart-radial.d.ts +116 -1
  251. package/types/ojiepermana-angular-chart-scatter.d.ts +125 -1
  252. package/types/ojiepermana-angular-chart.d.ts +2 -1
  253. package/types/ojiepermana-angular-component-accordion.d.ts +85 -1
  254. package/types/ojiepermana-angular-component-alert-dialog.d.ts +140 -1
  255. package/types/ojiepermana-angular-component-alert.d.ts +42 -1
  256. package/types/ojiepermana-angular-component-aspect-ratio.d.ts +12 -1
  257. package/types/ojiepermana-angular-component-avatar.d.ts +56 -1
  258. package/types/ojiepermana-angular-component-badge.d.ts +24 -1
  259. package/types/ojiepermana-angular-component-breadcrumb.d.ts +46 -1
  260. package/types/ojiepermana-angular-component-button-group.d.ts +26 -1
  261. package/types/ojiepermana-angular-component-button.d.ts +27 -1
  262. package/types/ojiepermana-angular-component-calendar.d.ts +111 -1
  263. package/types/ojiepermana-angular-component-card.d.ts +69 -1
  264. package/types/ojiepermana-angular-component-carousel.d.ts +86 -1
  265. package/types/ojiepermana-angular-component-checkbox.d.ts +42 -1
  266. package/types/ojiepermana-angular-component-collapsible.d.ts +42 -1
  267. package/types/ojiepermana-angular-component-combobox.d.ts +60 -1
  268. package/types/ojiepermana-angular-component-command.d.ts +130 -1
  269. package/types/ojiepermana-angular-component-composer.d.ts +90 -1
  270. package/types/ojiepermana-angular-component-context-menu.d.ts +54 -1
  271. package/types/ojiepermana-angular-component-date-picker.d.ts +109 -1
  272. package/types/ojiepermana-angular-component-dialog.d.ts +136 -1
  273. package/types/ojiepermana-angular-component-drawer.d.ts +1 -1
  274. package/types/ojiepermana-angular-component-dropdown-menu.d.ts +248 -1
  275. package/types/ojiepermana-angular-component-editor.d.ts +135 -1
  276. package/types/ojiepermana-angular-component-empty.d.ts +50 -1
  277. package/types/ojiepermana-angular-component-form.d.ts +159 -1
  278. package/types/ojiepermana-angular-component-hover-card.d.ts +75 -1
  279. package/types/ojiepermana-angular-component-icon.d.ts +89 -1
  280. package/types/ojiepermana-angular-component-input-group.d.ts +51 -1
  281. package/types/ojiepermana-angular-component-input-otp.d.ts +155 -1
  282. package/types/ojiepermana-angular-component-input.d.ts +21 -1
  283. package/types/ojiepermana-angular-component-item.d.ts +93 -1
  284. package/types/ojiepermana-angular-component-kanban.d.ts +70 -1
  285. package/types/ojiepermana-angular-component-kbd.d.ts +16 -1
  286. package/types/ojiepermana-angular-component-label.d.ts +11 -1
  287. package/types/ojiepermana-angular-component-menubar.d.ts +93 -1
  288. package/types/ojiepermana-angular-component-native-select.d.ts +26 -1
  289. package/types/ojiepermana-angular-component-navigation-menu.d.ts +104 -1
  290. package/types/ojiepermana-angular-component-pagination.d.ts +33 -1
  291. package/types/ojiepermana-angular-component-pillbox.d.ts +222 -1
  292. package/types/ojiepermana-angular-component-popover.d.ts +66 -1
  293. package/types/ojiepermana-angular-component-progress.d.ts +17 -1
  294. package/types/ojiepermana-angular-component-radio.d.ts +60 -1
  295. package/types/ojiepermana-angular-component-resizable.d.ts +117 -1
  296. package/types/ojiepermana-angular-component-scroll-area.d.ts +19 -1
  297. package/types/ojiepermana-angular-component-segmented-control.d.ts +58 -1
  298. package/types/ojiepermana-angular-component-select.d.ts +122 -1
  299. package/types/ojiepermana-angular-component-separator.d.ts +14 -1
  300. package/types/ojiepermana-angular-component-sheet.d.ts +130 -1
  301. package/types/ojiepermana-angular-component-skeleton.d.ts +10 -1
  302. package/types/ojiepermana-angular-component-slider.d.ts +83 -1
  303. package/types/ojiepermana-angular-component-spinner.d.ts +13 -1
  304. package/types/ojiepermana-angular-component-switch.d.ts +44 -1
  305. package/types/ojiepermana-angular-component-table.d.ts +57 -1
  306. package/types/ojiepermana-angular-component-tabs.d.ts +124 -1
  307. package/types/ojiepermana-angular-component-textarea.d.ts +17 -1
  308. package/types/ojiepermana-angular-component-timeline.d.ts +64 -1
  309. package/types/ojiepermana-angular-component-toast.d.ts +64 -1
  310. package/types/ojiepermana-angular-component-toggle-group.d.ts +90 -1
  311. package/types/ojiepermana-angular-component-toggle.d.ts +25 -1
  312. package/types/ojiepermana-angular-component-tooltip.d.ts +143 -1
  313. package/types/ojiepermana-angular-component-utils-core.d.ts +184 -1
  314. package/types/ojiepermana-angular-component-utils-overlay.d.ts +21 -1
  315. package/types/ojiepermana-angular-component-utils-scale.d.ts +19 -1
  316. package/types/ojiepermana-angular-component-utils.d.ts +2 -1
  317. package/types/ojiepermana-angular-component.d.ts +2 -1
  318. package/types/ojiepermana-angular-navigation-core.d.ts +59 -1
  319. package/types/ojiepermana-angular-navigation-icon.d.ts +12 -1
  320. package/types/ojiepermana-angular-navigation-service.d.ts +116 -1
  321. package/types/ojiepermana-angular-navigation-types.d.ts +144 -1
  322. package/types/ojiepermana-angular-navigation.d.ts +507 -1
  323. package/types/ojiepermana-angular-sdk.d.ts +89 -1
  324. package/types/ojiepermana-angular-theme-component-settings.d.ts +154 -1
  325. package/types/ojiepermana-angular-theme-layout-services.d.ts +147 -1
  326. package/types/ojiepermana-angular-theme-layout-types.d.ts +40 -1
  327. package/types/ojiepermana-angular-theme-layout-wrapper.d.ts +299 -1
  328. package/types/ojiepermana-angular-theme-layout.d.ts +129 -1
  329. package/types/ojiepermana-angular-theme-page-core.d.ts +157 -1
  330. package/types/ojiepermana-angular-theme-page-filter.d.ts +77 -1
  331. package/types/ojiepermana-angular-theme-page-root.d.ts +88 -1
  332. package/types/ojiepermana-angular-theme-page-side.d.ts +50 -1
  333. package/types/ojiepermana-angular-theme-page-slots.d.ts +40 -1
  334. package/types/ojiepermana-angular-theme-page.d.ts +5 -1
  335. package/types/ojiepermana-angular-theme-shell-services.d.ts +193 -1
  336. package/types/ojiepermana-angular-theme-shell-types.d.ts +105 -1
  337. package/types/ojiepermana-angular-theme-shell.d.ts +100 -1
  338. package/types/ojiepermana-angular-theme-styles.d.ts +319 -1
  339. package/types/ojiepermana-angular-theme.d.ts +2 -1
  340. package/types/ojiepermana-angular.d.ts +5 -5
@@ -1,7 +1,335 @@
1
- export * from '@ojiepermana/angular-theme/layout/services';
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, PLATFORM_ID, signal, computed, Service, DestroyRef } from '@angular/core';
4
+ import { globalLocalStorage } from '@ojiepermana/angular/component/utils/core';
5
+ import { LAYOUT_LOCKED_WIDTH, LAYOUT_SURFACE_STORAGE_KEY, isUiLayoutSurface, LAYOUT_TYPE_STORAGE_KEY, isUiLayoutType, LAYOUT_WIDTH_STORAGE_KEY, isUiLayoutWidth, LAYOUT_APPEARANCE_STORAGE_KEY, LAYOUT_DEFAULT_SURFACE, LAYOUT_DEFAULT_TYPE, LAYOUT_DEFAULT_APPEARANCE, LAYOUT_DEFAULT_WIDTH, isUiLayoutAppearance } from '@ojiepermana/angular/theme/layout/types';
6
+ import { ShellService } from '@ojiepermana/angular/theme/shell/services';
7
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
+ import { Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError, NavigationSkipped } from '@angular/router';
9
+ import { HttpContextToken } from '@angular/common/http';
10
+ import { finalize } from 'rxjs';
2
11
 
3
- // Generated by scripts/gen-umbrella-entrypoints.mjs — do not edit by hand.
12
+ class LayoutService {
13
+ platformId = inject(PLATFORM_ID);
14
+ storage = globalLocalStorage(isPlatformBrowser(this.platformId));
15
+ shell = inject(ShellService);
16
+ surfaceState = signal(this.getStoredSurface(), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "surfaceState" }] : /* istanbul ignore next */ []));
18
+ typeState = signal(this.getStoredType(), /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "typeState" }] : /* istanbul ignore next */ []));
20
+ appearanceState = signal(this.getStoredAppearance(), /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "appearanceState" }] : /* istanbul ignore next */ []));
22
+ widthState = signal(this.getStoredWidth(), /* @ts-ignore */
23
+ ...(ngDevMode ? [{ debugName: "widthState" }] : /* istanbul ignore next */ []));
24
+ surface = this.surfaceState.asReadonly();
25
+ type = this.typeState.asReadonly();
26
+ appearance = this.appearanceState.asReadonly();
27
+ /**
28
+ * `true` on every shell mode but `web`. An app that owns its whole surface has
29
+ * no page to be inset within, so the width axis is not the user's to choose
30
+ * there — see {@link LAYOUT_LOCKED_WIDTH}.
31
+ */
32
+ widthLocked = computed(() => this.shell.mode() !== 'web', /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "widthLocked" }] : /* istanbul ignore next */ []));
34
+ /**
35
+ * The width in effect. While `widthLocked()`, this reports the locked width and
36
+ * `widthState` keeps the user's own choice aside, so returning to `web` restores
37
+ * it instead of silently flattening it to `full`.
38
+ */
39
+ width = computed(() => this.widthLocked() ? LAYOUT_LOCKED_WIDTH : this.widthState(), /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
41
+ /** The stored preference, ignoring the lock. */
42
+ preferredWidth = this.widthState.asReadonly();
43
+ /**
44
+ * Seed several axes at once. See {@link registerSurface} for what "register"
45
+ * means here — an omitted axis is left exactly as it was.
46
+ */
47
+ registerDefaults(defaults) {
48
+ if (defaults.surface !== undefined) {
49
+ this.registerSurface(defaults.surface);
50
+ }
51
+ if (defaults.appearance !== undefined) {
52
+ this.registerAppearance(defaults.appearance);
53
+ }
54
+ if (defaults.type !== undefined) {
55
+ this.registerType(defaults.type);
56
+ }
57
+ if (defaults.width !== undefined) {
58
+ this.registerWidth(defaults.width);
59
+ }
60
+ return this;
61
+ }
62
+ /**
63
+ * Seed the axis with a default, unless the user already stored a choice of
64
+ * their own — that one always wins.
65
+ *
66
+ * Registering deliberately does NOT persist. Storage is the record of what the
67
+ * USER picked, and writing a seeded default into it would make the two
68
+ * indistinguishable: a bare `<Layout>` would record a library default nobody
69
+ * asked for, and neither the library nor the consumer could ever change their
70
+ * own default again for anyone who had merely rendered the component once.
71
+ * Only {@link setSurface} and its siblings — the settings UI — write.
72
+ */
73
+ registerSurface(surface) {
74
+ const storedSurface = this.storage.read(LAYOUT_SURFACE_STORAGE_KEY);
75
+ const resolved = isUiLayoutSurface(storedSurface) ? storedSurface : surface;
76
+ this.setSurface(resolved, { persist: false });
77
+ }
78
+ /** Seeds the axis without persisting — see {@link registerSurface}. */
79
+ registerType(type) {
80
+ const storedType = this.storage.read(LAYOUT_TYPE_STORAGE_KEY);
81
+ const resolved = isUiLayoutType(storedType) ? storedType : type;
82
+ this.setType(resolved, { persist: false });
83
+ }
84
+ /** Seeds the axis without persisting — see {@link registerSurface}. */
85
+ registerAppearance(appearance) {
86
+ this.setAppearance(this.getStoredAppearanceOrDefault(appearance), { persist: false });
87
+ }
88
+ /** Seeds the axis without persisting — see {@link registerSurface}. */
89
+ registerWidth(width) {
90
+ const storedWidth = this.storage.read(LAYOUT_WIDTH_STORAGE_KEY);
91
+ const resolved = isUiLayoutWidth(storedWidth) ? storedWidth : width;
92
+ this.setWidth(resolved, { persist: false });
93
+ }
94
+ setSurface(surface, options = {}) {
95
+ this.surfaceState.set(surface);
96
+ if (options.persist === false) {
97
+ return;
98
+ }
99
+ this.storage.write(LAYOUT_SURFACE_STORAGE_KEY, surface);
100
+ }
101
+ setType(type, options = {}) {
102
+ this.typeState.set(type);
103
+ if (options.persist === false) {
104
+ return;
105
+ }
106
+ this.storage.write(LAYOUT_TYPE_STORAGE_KEY, type);
107
+ }
108
+ setAppearance(appearance, options = {}) {
109
+ this.appearanceState.set(appearance);
110
+ if (options.persist === false) {
111
+ return;
112
+ }
113
+ this.storage.write(LAYOUT_APPEARANCE_STORAGE_KEY, appearance);
114
+ }
115
+ setWidth(width, options = {}) {
116
+ this.widthState.set(width);
117
+ if (options.persist === false) {
118
+ return;
119
+ }
120
+ this.storage.write(LAYOUT_WIDTH_STORAGE_KEY, width);
121
+ }
122
+ getStoredSurface() {
123
+ const value = this.storage.read(LAYOUT_SURFACE_STORAGE_KEY);
124
+ return isUiLayoutSurface(value) ? value : LAYOUT_DEFAULT_SURFACE;
125
+ }
126
+ getStoredType() {
127
+ const value = this.storage.read(LAYOUT_TYPE_STORAGE_KEY);
128
+ return isUiLayoutType(value) ? value : LAYOUT_DEFAULT_TYPE;
129
+ }
130
+ getStoredAppearance() {
131
+ const value = this.readStoredAppearance();
132
+ return value ?? LAYOUT_DEFAULT_APPEARANCE;
133
+ }
134
+ getStoredWidth() {
135
+ const value = this.storage.read(LAYOUT_WIDTH_STORAGE_KEY);
136
+ return isUiLayoutWidth(value) ? value : LAYOUT_DEFAULT_WIDTH;
137
+ }
138
+ readStoredAppearance() {
139
+ const appearance = this.storage.read(LAYOUT_APPEARANCE_STORAGE_KEY);
140
+ return isUiLayoutAppearance(appearance) ? appearance : null;
141
+ }
142
+ getStoredAppearanceOrDefault(fallback) {
143
+ return this.readStoredAppearance() ?? fallback;
144
+ }
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Service });
146
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.4", ngImport: i0, type: LayoutService });
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LayoutService, decorators: [{
149
+ type: Service
150
+ }] });
151
+
152
+ /** Progress the bar starts at, so the line is visibly moving the moment it appears. */
153
+ const LAYOUT_LOADING_INITIAL_PROGRESS = 8;
154
+ /** Batas atas progres trickle; sisanya menunggu seluruh pekerjaan selesai. */
155
+ const LAYOUT_LOADING_TRICKLE_CEILING = 90;
156
+ /** How often the trickle raises progress while work is still outstanding. */
157
+ const LAYOUT_LOADING_TRICKLE_INTERVAL_MS = 250;
158
+ /** Delay after progress reaches 100% before the bar is hidden, so the finish reads. */
159
+ const LAYOUT_LOADING_HIDE_DELAY_MS = 200;
160
+ /**
161
+ * Global loading tracker behind the progress line at the top of the viewport.
162
+ *
163
+ * It turns on by itself when the router starts a navigation and while an HTTP
164
+ * request runs through `layoutLoadingInterceptor`. Any other source — a manual
165
+ * data load, say — can join in through the ref-counted `start()`/`done()` pair.
166
+ */
167
+ class LayoutLoadingService {
168
+ platformId = inject(PLATFORM_ID);
169
+ router = inject(Router, { optional: true });
170
+ pendingCount = signal(0, /* @ts-ignore */
171
+ ...(ngDevMode ? [{ debugName: "pendingCount" }] : /* istanbul ignore next */ []));
172
+ activeState = signal(false, /* @ts-ignore */
173
+ ...(ngDevMode ? [{ debugName: "activeState" }] : /* istanbul ignore next */ []));
174
+ progressState = signal(0, /* @ts-ignore */
175
+ ...(ngDevMode ? [{ debugName: "progressState" }] : /* istanbul ignore next */ []));
176
+ /** The bar is on screen, including the short finish to 100%. */
177
+ active = this.activeState.asReadonly();
178
+ /** Progres garis 0–100. */
179
+ progress = this.progressState.asReadonly();
180
+ /** Work (a navigation, a request, a data load) is still outstanding. */
181
+ pending = computed(() => this.pendingCount() > 0, /* @ts-ignore */
182
+ ...(ngDevMode ? [{ debugName: "pending" }] : /* istanbul ignore next */ []));
183
+ hostRegistry = signal([], /* @ts-ignore */
184
+ ...(ngDevMode ? [{ debugName: "hostRegistry" }] : /* istanbul ignore next */ []));
185
+ /**
186
+ * The earliest registered `LayoutLoading` host, which is the one that draws the
187
+ * bar. Every other instance — the one inside `Layout` when the app root also
188
+ * mounts `LayoutLoading` — goes inert, so the line is never drawn twice.
189
+ */
190
+ primaryHostId = computed(() => this.hostRegistry()[0] ?? null, /* @ts-ignore */
191
+ ...(ngDevMode ? [{ debugName: "primaryHostId" }] : /* istanbul ignore next */ []));
192
+ trickleTimer = null;
193
+ hideTimer = null;
194
+ navigationPending = false;
195
+ nextHostId = 0;
196
+ constructor() {
197
+ this.observeRouterNavigation();
198
+ inject(DestroyRef).onDestroy(() => {
199
+ this.stopTrickle();
200
+ this.cancelScheduledHide();
201
+ });
202
+ }
203
+ /** Mark one unit of work started; the bar appears with the first one. */
204
+ start() {
205
+ this.pendingCount.update((count) => count + 1);
206
+ if (this.pendingCount() === 1) {
207
+ this.show();
208
+ }
209
+ }
210
+ /** Mark one unit of work finished; the bar completes when the count returns to zero. */
211
+ done() {
212
+ if (this.pendingCount() === 0) {
213
+ return;
214
+ }
215
+ this.pendingCount.update((count) => count - 1);
216
+ if (this.pendingCount() === 0) {
217
+ this.finish();
218
+ }
219
+ }
220
+ /** Register one `LayoutLoading` host; returns the id used to unregister it. */
221
+ registerHost() {
222
+ const hostId = this.nextHostId++;
223
+ this.hostRegistry.update((hosts) => [...hosts, hostId]);
224
+ return hostId;
225
+ }
226
+ /** Release a host; the next registered one becomes primary on its own. */
227
+ unregisterHost(hostId) {
228
+ this.hostRegistry.update((hosts) => hosts.filter((registered) => registered !== hostId));
229
+ }
230
+ /** Force the progress value (0–100) while the bar is active, e.g. for a large upload. */
231
+ setProgress(value) {
232
+ if (!this.activeState()) {
233
+ return;
234
+ }
235
+ this.progressState.set(Math.min(100, Math.max(0, value)));
236
+ }
237
+ observeRouterNavigation() {
238
+ if (!this.router) {
239
+ return;
240
+ }
241
+ this.router.events.pipe(takeUntilDestroyed()).subscribe((event) => {
242
+ if (event instanceof NavigationStart) {
243
+ if (!this.navigationPending) {
244
+ this.navigationPending = true;
245
+ this.start();
246
+ }
247
+ return;
248
+ }
249
+ const navigationSettled = event instanceof NavigationEnd ||
250
+ event instanceof NavigationCancel ||
251
+ event instanceof NavigationError ||
252
+ event instanceof NavigationSkipped;
253
+ if (navigationSettled && this.navigationPending) {
254
+ this.navigationPending = false;
255
+ this.done();
256
+ }
257
+ });
258
+ }
259
+ show() {
260
+ this.cancelScheduledHide();
261
+ this.activeState.set(true);
262
+ this.progressState.set(LAYOUT_LOADING_INITIAL_PROGRESS);
263
+ this.startTrickle();
264
+ }
265
+ finish() {
266
+ this.stopTrickle();
267
+ this.progressState.set(100);
268
+ if (!this.isBrowser()) {
269
+ this.hide();
270
+ return;
271
+ }
272
+ this.hideTimer = setTimeout(() => {
273
+ this.hideTimer = null;
274
+ this.hide();
275
+ }, LAYOUT_LOADING_HIDE_DELAY_MS);
276
+ }
277
+ hide() {
278
+ this.activeState.set(false);
279
+ this.progressState.set(0);
280
+ }
281
+ startTrickle() {
282
+ if (!this.isBrowser() || this.trickleTimer !== null) {
283
+ return;
284
+ }
285
+ this.trickleTimer = setInterval(() => {
286
+ const current = this.progressState();
287
+ const next = current + (LAYOUT_LOADING_TRICKLE_CEILING - current) * 0.15;
288
+ this.progressState.set(Math.min(LAYOUT_LOADING_TRICKLE_CEILING, next));
289
+ }, LAYOUT_LOADING_TRICKLE_INTERVAL_MS);
290
+ }
291
+ stopTrickle() {
292
+ if (this.trickleTimer !== null) {
293
+ clearInterval(this.trickleTimer);
294
+ this.trickleTimer = null;
295
+ }
296
+ }
297
+ cancelScheduledHide() {
298
+ if (this.hideTimer !== null) {
299
+ clearTimeout(this.hideTimer);
300
+ this.hideTimer = null;
301
+ }
302
+ }
303
+ isBrowser() {
304
+ return isPlatformBrowser(this.platformId);
305
+ }
306
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LayoutLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Service });
307
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.4", ngImport: i0, type: LayoutLoadingService });
308
+ }
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LayoutLoadingService, decorators: [{
310
+ type: Service
311
+ }], ctorParameters: () => [] });
312
+
313
+ /**
314
+ * Set `true` on a request's `HttpContext` to keep it out of the progress line —
315
+ * a poll or a heartbeat that must not raise a loading indicator.
316
+ */
317
+ const LAYOUT_LOADING_SKIP = new HttpContextToken(() => false);
318
+ /**
319
+ * Interceptor that lights the `LayoutLoading` progress line while an HTTP
320
+ * request is in flight. Register it through `withInterceptors([...])`.
321
+ */
322
+ const layoutLoadingInterceptor = (request, next) => {
323
+ if (request.context.get(LAYOUT_LOADING_SKIP)) {
324
+ return next(request);
325
+ }
326
+ const loading = inject(LayoutLoadingService);
327
+ loading.start();
328
+ return next(request).pipe(finalize(() => loading.done()));
329
+ };
4
330
 
5
331
  /**
6
332
  * Generated bundle index. Do not edit.
7
- */
333
+ */
334
+
335
+ export { LAYOUT_LOADING_HIDE_DELAY_MS, LAYOUT_LOADING_INITIAL_PROGRESS, LAYOUT_LOADING_SKIP, LAYOUT_LOADING_TRICKLE_CEILING, LAYOUT_LOADING_TRICKLE_INTERVAL_MS, LayoutLoadingService, LayoutService, layoutLoadingInterceptor };
@@ -1,7 +1,48 @@
1
- export * from '@ojiepermana/angular-theme/layout/types';
2
-
3
- // Generated by scripts/gen-umbrella-entrypoints.mjs — do not edit by hand.
1
+ const LAYOUT_TYPES = ['vertical', 'horizontal', 'empty', 'fluid'];
2
+ const LAYOUT_SURFACES = [
3
+ 'flat',
4
+ 'grid',
5
+ 'grid-line',
6
+ 'honeycomb',
7
+ 'matrix',
8
+ 'circuit',
9
+ 'line-vertical',
10
+ 'line-horizontal',
11
+ ];
12
+ const LAYOUT_APPEARANCES = ['flat', 'border-rail'];
13
+ const LAYOUT_WIDTHS = ['full', 'wide', 'container', 'fluid'];
14
+ const LAYOUT_DEFAULT_SURFACE = 'flat';
15
+ const LAYOUT_DEFAULT_TYPE = 'vertical';
16
+ const LAYOUT_DEFAULT_APPEARANCE = 'flat';
17
+ const LAYOUT_DEFAULT_WIDTH = 'full';
18
+ /**
19
+ * The width forced whenever the shell mode is not `web`.
20
+ *
21
+ * Only a browser page can be narrower than the surface it sits on. On desktop,
22
+ * tablet, and mobile the app *is* the surface, so a wide/container/fluid frame
23
+ * would leave dead canvas inside the window — `LayoutService` locks the axis here
24
+ * and keeps the user's own choice aside for when they return to `web`.
25
+ */
26
+ const LAYOUT_LOCKED_WIDTH = 'full';
27
+ const LAYOUT_SURFACE_STORAGE_KEY = 'layout-surface';
28
+ const LAYOUT_APPEARANCE_STORAGE_KEY = 'layout-appearance';
29
+ const LAYOUT_TYPE_STORAGE_KEY = 'layout-type';
30
+ const LAYOUT_WIDTH_STORAGE_KEY = 'layout-width';
31
+ function isUiLayoutSurface(value) {
32
+ return value !== null && LAYOUT_SURFACES.includes(value);
33
+ }
34
+ function isUiLayoutType(value) {
35
+ return value !== null && LAYOUT_TYPES.includes(value);
36
+ }
37
+ function isUiLayoutAppearance(value) {
38
+ return value !== null && LAYOUT_APPEARANCES.includes(value);
39
+ }
40
+ function isUiLayoutWidth(value) {
41
+ return value !== null && LAYOUT_WIDTHS.includes(value);
42
+ }
4
43
 
5
44
  /**
6
45
  * Generated bundle index. Do not edit.
7
- */
46
+ */
47
+
48
+ export { LAYOUT_APPEARANCES, LAYOUT_APPEARANCE_STORAGE_KEY, LAYOUT_DEFAULT_APPEARANCE, LAYOUT_DEFAULT_SURFACE, LAYOUT_DEFAULT_TYPE, LAYOUT_DEFAULT_WIDTH, LAYOUT_LOCKED_WIDTH, LAYOUT_SURFACES, LAYOUT_SURFACE_STORAGE_KEY, LAYOUT_TYPES, LAYOUT_TYPE_STORAGE_KEY, LAYOUT_WIDTHS, LAYOUT_WIDTH_STORAGE_KEY, isUiLayoutAppearance, isUiLayoutSurface, isUiLayoutType, isUiLayoutWidth };