@ng-atomic/components 18.2.0 → 18.4.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 (302) hide show
  1. package/atoms/smart-menu-button/smart-menu-button.atom.d.ts +3 -3
  2. package/components.module.d.ts +6 -1
  3. package/esm2022/atoms/icon/icon.atom.mjs +2 -2
  4. package/esm2022/atoms/smart-menu-button/smart-menu-button.atom.mjs +77 -114
  5. package/esm2022/components.module.mjs +7 -3
  6. package/esm2022/extras/editor/editor.component.mjs +78 -46
  7. package/esm2022/frames/app/app.frame.mjs +130 -70
  8. package/esm2022/frames/auto-layout/auto-layout.frame.mjs +29 -7
  9. package/esm2022/frames/columns/columns.frame.mjs +2 -2
  10. package/esm2022/frames/divider/divider.frame.mjs +2 -2
  11. package/esm2022/frames/drawer/drawer.frame.mjs +2 -2
  12. package/esm2022/frames/entrance/entrance.frame.mjs +2 -2
  13. package/esm2022/frames/fab/fab.frame.mjs +2 -2
  14. package/esm2022/frames/frames.module.mjs +3 -3
  15. package/esm2022/frames/line-up/line-up.animations.mjs +3 -7
  16. package/esm2022/frames/line-up/line-up.frame.mjs +2 -2
  17. package/esm2022/frames/loading/loading.frame.mjs +2 -2
  18. package/esm2022/frames/progress-bar/index.mjs +2 -0
  19. package/esm2022/frames/progress-bar/ng-atomic-components-frames-progress-bar.mjs +5 -0
  20. package/esm2022/frames/progress-bar/progress-bar.frame.mjs +53 -0
  21. package/esm2022/frames/router-outlet/router-outlet.frame.mjs +96 -41
  22. package/esm2022/frames/scroll/scroll.frame.mjs +32 -14
  23. package/esm2022/frames/scroll-v2/index.mjs +2 -2
  24. package/esm2022/frames/side-app/index.mjs +2 -0
  25. package/esm2022/frames/side-app/ng-atomic-components-frames-side-app.mjs +5 -0
  26. package/esm2022/frames/side-app/side-app.frame.mjs +74 -0
  27. package/esm2022/frames/side-nav/side-nav.frame.mjs +27 -21
  28. package/esm2022/frames/smart-menu/smart-menu.frame.mjs +2 -2
  29. package/esm2022/frames/tabs/tabs.frame.mjs +13 -7
  30. package/esm2022/frames/vertical-hide/vertical-hide.frame.mjs +11 -18
  31. package/esm2022/molecules/action-input-field/action-input-field.molecule.mjs +2 -2
  32. package/esm2022/molecules/actions-column/actions-column.molecule.mjs +13 -7
  33. package/esm2022/molecules/checkbox-column/checkbox-column.molecule.mjs +48 -21
  34. package/esm2022/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
  35. package/esm2022/molecules/date-range-input-field/date-range-input-field.molecule.mjs +2 -2
  36. package/esm2022/molecules/file-input-field/file-input-field.molecule.mjs +2 -2
  37. package/esm2022/molecules/grid-item/grid-item.molecule.mjs +2 -2
  38. package/esm2022/molecules/list-item/index.mjs +2 -0
  39. package/esm2022/molecules/list-item/list-item.molecule.mjs +198 -0
  40. package/esm2022/molecules/list-item/ng-atomic-components-molecules-list-item.mjs +5 -0
  41. package/esm2022/molecules/loading-box/loading-box.molecule.mjs +2 -2
  42. package/esm2022/molecules/molecules.module.mjs +4 -1
  43. package/esm2022/molecules/navigation-list-item/navigation-list-item.molecule.mjs +2 -2
  44. package/esm2022/molecules/select-input-field/select-input-field.molecule.mjs +9 -5
  45. package/esm2022/molecules/smart-column/smart-column.molecule.mjs +129 -43
  46. package/esm2022/molecules/tree-column/tree-column.molecule.mjs +37 -25
  47. package/esm2022/organisms/action-buttons-section/action-buttons-section.organism.mjs +2 -2
  48. package/esm2022/organisms/action-input-section/action-input-section.organism.mjs +2 -2
  49. package/esm2022/organisms/agreement-input-section/agreement-input-section.organism.mjs +3 -3
  50. package/esm2022/organisms/card-input-section/card-input-section.organism.mjs +2 -2
  51. package/esm2022/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
  52. package/esm2022/organisms/date-input-section/date-input-section.organism.mjs +4 -4
  53. package/esm2022/organisms/date-range-input-section/date-range-input-section.organism.mjs +4 -4
  54. package/esm2022/organisms/definition-list/definition-list.organism.mjs +2 -2
  55. package/esm2022/organisms/file-input-section/file-input-section.organism.mjs +2 -2
  56. package/esm2022/organisms/filters-section/filters-section.organism.mjs +5 -5
  57. package/esm2022/organisms/graphql-editor/graphql-editor.organism.mjs +1 -1
  58. package/esm2022/organisms/grid-cards-section/grid-cards-section.organism.mjs +2 -2
  59. package/esm2022/organisms/heading/heading.organism.mjs +2 -2
  60. package/esm2022/{sheets/actions → organisms/list}/index.mjs +2 -2
  61. package/esm2022/organisms/list/list.organism.mjs +161 -0
  62. package/esm2022/{sheets/actions/ng-atomic-components-sheets-actions.mjs → organisms/list/ng-atomic-components-organisms-list.mjs} +1 -1
  63. package/esm2022/organisms/menu-footer/menu-footer.organism.mjs +2 -2
  64. package/esm2022/organisms/menu-header/menu-header.organism.mjs +2 -2
  65. package/esm2022/organisms/mermaid-section/mermaid-section.organism.mjs +39 -33
  66. package/esm2022/organisms/messages-section/messages-section.organism.mjs +2 -2
  67. package/esm2022/organisms/navigation-list/navigation-list.organism.mjs +2 -2
  68. package/esm2022/organisms/navigator/navigator.organism.mjs +49 -19
  69. package/esm2022/organisms/number-input-section/number-input-section.organism.mjs +2 -2
  70. package/esm2022/organisms/organisms.module.mjs +5 -5
  71. package/esm2022/organisms/paginator/paginator.organism.mjs +2 -2
  72. package/esm2022/organisms/password-input-section/password-input-section.organism.mjs +2 -2
  73. package/esm2022/organisms/select-input-section/select-input-section.organism.mjs +4 -4
  74. package/esm2022/organisms/selection-list/selection-list.organism.mjs +1 -1
  75. package/esm2022/organisms/slider-input-section/slider-input-section.organism.mjs +4 -4
  76. package/esm2022/organisms/social-login-section/social-login-section.organism.mjs +2 -2
  77. package/esm2022/organisms/table/index.mjs +2 -1
  78. package/esm2022/organisms/table/table.helpers.mjs +4 -4
  79. package/esm2022/organisms/table/table.organism.mjs +152 -141
  80. package/esm2022/organisms/text-input-section/text-input-section.organism.mjs +4 -4
  81. package/esm2022/organisms/textarea-section/textarea-section.organism.mjs +2 -2
  82. package/esm2022/organisms/thread-messages-section/thread-messages-section.organism.mjs +2 -2
  83. package/esm2022/organisms/tree-list/index.mjs +2 -0
  84. package/esm2022/organisms/tree-list/ng-atomic-components-organisms-tree-list.mjs +5 -0
  85. package/esm2022/organisms/tree-list/tree-list.organism.mjs +125 -0
  86. package/esm2022/pages/_index/index.page.mjs +169 -62
  87. package/esm2022/pages/columns/columns.page.mjs +10 -9
  88. package/esm2022/pages/form/form.page.mjs +27 -12
  89. package/esm2022/pages/terms/terms.page.mjs +2 -2
  90. package/esm2022/templates/_index/index.template.mjs +276 -155
  91. package/esm2022/templates/background/background.template.mjs +2 -2
  92. package/esm2022/templates/code-editor/code-editor.template.mjs +52 -15
  93. package/esm2022/templates/columns/columns.template.mjs +6 -4
  94. package/esm2022/templates/entrance/entrance.template.mjs +12 -11
  95. package/esm2022/templates/form/form.builder.mjs +93 -71
  96. package/esm2022/templates/form/form.template.mjs +47 -28
  97. package/esm2022/templates/icon-button-menu/icon-button-menu.template.mjs +69 -16
  98. package/esm2022/templates/menu/menu.template.mjs +2 -2
  99. package/esm2022/templates/messages/messages.template.mjs +71 -65
  100. package/esm2022/templates/selection/selection.template.mjs +2 -2
  101. package/esm2022/templates/settings/settings.template.mjs +2 -2
  102. package/extras/editor/editor.component.d.ts +19 -10
  103. package/fesm2022/ng-atomic-components-atoms-icon.mjs +2 -2
  104. package/fesm2022/ng-atomic-components-atoms-smart-menu-button.mjs +76 -113
  105. package/fesm2022/ng-atomic-components-atoms-smart-menu-button.mjs.map +1 -1
  106. package/fesm2022/ng-atomic-components-extras-editor.mjs +79 -47
  107. package/fesm2022/ng-atomic-components-extras-editor.mjs.map +1 -1
  108. package/fesm2022/ng-atomic-components-frames-app.mjs +129 -69
  109. package/fesm2022/ng-atomic-components-frames-app.mjs.map +1 -1
  110. package/fesm2022/ng-atomic-components-frames-auto-layout.mjs +29 -7
  111. package/fesm2022/ng-atomic-components-frames-auto-layout.mjs.map +1 -1
  112. package/fesm2022/ng-atomic-components-frames-columns.mjs +2 -2
  113. package/fesm2022/ng-atomic-components-frames-divider.mjs +2 -2
  114. package/fesm2022/ng-atomic-components-frames-drawer.mjs +2 -2
  115. package/fesm2022/ng-atomic-components-frames-entrance.mjs +2 -2
  116. package/fesm2022/ng-atomic-components-frames-fab.mjs +2 -2
  117. package/fesm2022/ng-atomic-components-frames-line-up.mjs +4 -8
  118. package/fesm2022/ng-atomic-components-frames-line-up.mjs.map +1 -1
  119. package/fesm2022/ng-atomic-components-frames-loading.mjs +2 -2
  120. package/fesm2022/ng-atomic-components-frames-progress-bar.mjs +60 -0
  121. package/fesm2022/ng-atomic-components-frames-progress-bar.mjs.map +1 -0
  122. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs +96 -41
  123. package/fesm2022/ng-atomic-components-frames-router-outlet.mjs.map +1 -1
  124. package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs +1 -48
  125. package/fesm2022/ng-atomic-components-frames-scroll-v2.mjs.map +1 -1
  126. package/fesm2022/ng-atomic-components-frames-scroll.mjs +31 -13
  127. package/fesm2022/ng-atomic-components-frames-scroll.mjs.map +1 -1
  128. package/fesm2022/ng-atomic-components-frames-side-app.mjs +81 -0
  129. package/fesm2022/ng-atomic-components-frames-side-app.mjs.map +1 -0
  130. package/fesm2022/ng-atomic-components-frames-side-nav.mjs +26 -20
  131. package/fesm2022/ng-atomic-components-frames-side-nav.mjs.map +1 -1
  132. package/fesm2022/ng-atomic-components-frames-smart-menu.mjs +2 -2
  133. package/fesm2022/ng-atomic-components-frames-tabs.mjs +12 -6
  134. package/fesm2022/ng-atomic-components-frames-tabs.mjs.map +1 -1
  135. package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs +10 -17
  136. package/fesm2022/ng-atomic-components-frames-vertical-hide.mjs.map +1 -1
  137. package/fesm2022/ng-atomic-components-frames.mjs +2 -2
  138. package/fesm2022/ng-atomic-components-frames.mjs.map +1 -1
  139. package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs +1 -1
  140. package/fesm2022/ng-atomic-components-molecules-action-input-field.mjs.map +1 -1
  141. package/fesm2022/ng-atomic-components-molecules-actions-column.mjs +12 -6
  142. package/fesm2022/ng-atomic-components-molecules-actions-column.mjs.map +1 -1
  143. package/fesm2022/ng-atomic-components-molecules-checkbox-column.mjs +47 -21
  144. package/fesm2022/ng-atomic-components-molecules-checkbox-column.mjs.map +1 -1
  145. package/fesm2022/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  146. package/fesm2022/ng-atomic-components-molecules-date-range-input-field.mjs +2 -2
  147. package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs +1 -1
  148. package/fesm2022/ng-atomic-components-molecules-file-input-field.mjs.map +1 -1
  149. package/fesm2022/ng-atomic-components-molecules-grid-item.mjs +2 -2
  150. package/fesm2022/ng-atomic-components-molecules-list-item.mjs +203 -0
  151. package/fesm2022/ng-atomic-components-molecules-list-item.mjs.map +1 -0
  152. package/fesm2022/ng-atomic-components-molecules-loading-box.mjs +2 -2
  153. package/fesm2022/ng-atomic-components-molecules-navigation-list-item.mjs +2 -2
  154. package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs +8 -4
  155. package/fesm2022/ng-atomic-components-molecules-select-input-field.mjs.map +1 -1
  156. package/fesm2022/ng-atomic-components-molecules-smart-column.mjs +128 -43
  157. package/fesm2022/ng-atomic-components-molecules-smart-column.mjs.map +1 -1
  158. package/fesm2022/ng-atomic-components-molecules-tree-column.mjs +36 -24
  159. package/fesm2022/ng-atomic-components-molecules-tree-column.mjs.map +1 -1
  160. package/fesm2022/ng-atomic-components-molecules.mjs +3 -0
  161. package/fesm2022/ng-atomic-components-molecules.mjs.map +1 -1
  162. package/fesm2022/ng-atomic-components-organisms-action-buttons-section.mjs +2 -2
  163. package/fesm2022/ng-atomic-components-organisms-action-input-section.mjs +2 -2
  164. package/fesm2022/ng-atomic-components-organisms-agreement-input-section.mjs +2 -2
  165. package/fesm2022/ng-atomic-components-organisms-agreement-input-section.mjs.map +1 -1
  166. package/fesm2022/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  167. package/fesm2022/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  168. package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs +3 -3
  169. package/fesm2022/ng-atomic-components-organisms-date-input-section.mjs.map +1 -1
  170. package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs +3 -3
  171. package/fesm2022/ng-atomic-components-organisms-date-range-input-section.mjs.map +1 -1
  172. package/fesm2022/ng-atomic-components-organisms-definition-list.mjs +2 -2
  173. package/fesm2022/ng-atomic-components-organisms-file-input-section.mjs +2 -2
  174. package/fesm2022/ng-atomic-components-organisms-filters-section.mjs +4 -4
  175. package/fesm2022/ng-atomic-components-organisms-filters-section.mjs.map +1 -1
  176. package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs +1 -1
  177. package/fesm2022/ng-atomic-components-organisms-graphql-editor.mjs.map +1 -1
  178. package/fesm2022/ng-atomic-components-organisms-grid-cards-section.mjs +2 -2
  179. package/fesm2022/ng-atomic-components-organisms-heading.mjs +2 -2
  180. package/fesm2022/ng-atomic-components-organisms-list.mjs +166 -0
  181. package/fesm2022/ng-atomic-components-organisms-list.mjs.map +1 -0
  182. package/fesm2022/ng-atomic-components-organisms-menu-footer.mjs +2 -2
  183. package/fesm2022/ng-atomic-components-organisms-menu-header.mjs +2 -2
  184. package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs +38 -32
  185. package/fesm2022/ng-atomic-components-organisms-mermaid-section.mjs.map +1 -1
  186. package/fesm2022/ng-atomic-components-organisms-messages-section.mjs +2 -2
  187. package/fesm2022/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  188. package/fesm2022/ng-atomic-components-organisms-navigator.mjs +48 -18
  189. package/fesm2022/ng-atomic-components-organisms-navigator.mjs.map +1 -1
  190. package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs +2 -2
  191. package/fesm2022/ng-atomic-components-organisms-number-input-section.mjs.map +1 -1
  192. package/fesm2022/ng-atomic-components-organisms-paginator.mjs +2 -2
  193. package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs +2 -2
  194. package/fesm2022/ng-atomic-components-organisms-password-input-section.mjs.map +1 -1
  195. package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs +3 -3
  196. package/fesm2022/ng-atomic-components-organisms-select-input-section.mjs.map +1 -1
  197. package/fesm2022/ng-atomic-components-organisms-selection-list.mjs +1 -1
  198. package/fesm2022/ng-atomic-components-organisms-selection-list.mjs.map +1 -1
  199. package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs +3 -3
  200. package/fesm2022/ng-atomic-components-organisms-slider-input-section.mjs.map +1 -1
  201. package/fesm2022/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  202. package/fesm2022/ng-atomic-components-organisms-table.mjs +156 -145
  203. package/fesm2022/ng-atomic-components-organisms-table.mjs.map +1 -1
  204. package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs +3 -3
  205. package/fesm2022/ng-atomic-components-organisms-text-input-section.mjs.map +1 -1
  206. package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  207. package/fesm2022/ng-atomic-components-organisms-textarea-section.mjs.map +1 -1
  208. package/fesm2022/ng-atomic-components-organisms-thread-messages-section.mjs +2 -2
  209. package/fesm2022/ng-atomic-components-organisms-tree-list.mjs +132 -0
  210. package/fesm2022/ng-atomic-components-organisms-tree-list.mjs.map +1 -0
  211. package/fesm2022/ng-atomic-components-organisms.mjs +4 -4
  212. package/fesm2022/ng-atomic-components-organisms.mjs.map +1 -1
  213. package/fesm2022/ng-atomic-components-pages-_index.mjs +168 -62
  214. package/fesm2022/ng-atomic-components-pages-_index.mjs.map +1 -1
  215. package/fesm2022/ng-atomic-components-pages-columns.mjs +9 -8
  216. package/fesm2022/ng-atomic-components-pages-columns.mjs.map +1 -1
  217. package/fesm2022/ng-atomic-components-pages-form.mjs +26 -11
  218. package/fesm2022/ng-atomic-components-pages-form.mjs.map +1 -1
  219. package/fesm2022/ng-atomic-components-pages-terms.mjs +1 -1
  220. package/fesm2022/ng-atomic-components-pages-terms.mjs.map +1 -1
  221. package/fesm2022/ng-atomic-components-templates-_index.mjs +276 -155
  222. package/fesm2022/ng-atomic-components-templates-_index.mjs.map +1 -1
  223. package/fesm2022/ng-atomic-components-templates-background.mjs +2 -2
  224. package/fesm2022/ng-atomic-components-templates-code-editor.mjs +51 -14
  225. package/fesm2022/ng-atomic-components-templates-code-editor.mjs.map +1 -1
  226. package/fesm2022/ng-atomic-components-templates-columns.mjs +5 -3
  227. package/fesm2022/ng-atomic-components-templates-columns.mjs.map +1 -1
  228. package/fesm2022/ng-atomic-components-templates-entrance.mjs +11 -10
  229. package/fesm2022/ng-atomic-components-templates-entrance.mjs.map +1 -1
  230. package/fesm2022/ng-atomic-components-templates-form.mjs +139 -99
  231. package/fesm2022/ng-atomic-components-templates-form.mjs.map +1 -1
  232. package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs +68 -15
  233. package/fesm2022/ng-atomic-components-templates-icon-button-menu.mjs.map +1 -1
  234. package/fesm2022/ng-atomic-components-templates-menu.mjs +2 -2
  235. package/fesm2022/ng-atomic-components-templates-messages.mjs +71 -65
  236. package/fesm2022/ng-atomic-components-templates-messages.mjs.map +1 -1
  237. package/fesm2022/ng-atomic-components-templates-selection.mjs +2 -2
  238. package/fesm2022/ng-atomic-components-templates-settings.mjs +2 -2
  239. package/fesm2022/ng-atomic-components.mjs +7 -3
  240. package/fesm2022/ng-atomic-components.mjs.map +1 -1
  241. package/frames/app/app.frame.d.ts +13 -1
  242. package/frames/auto-layout/auto-layout.frame.d.ts +7 -1
  243. package/frames/progress-bar/index.d.ts +1 -0
  244. package/frames/progress-bar/progress-bar.frame.d.ts +14 -0
  245. package/frames/router-outlet/router-outlet.frame.d.ts +20 -9
  246. package/frames/scroll/scroll.frame.d.ts +5 -1
  247. package/frames/scroll-v2/index.d.ts +1 -1
  248. package/frames/side-app/index.d.ts +1 -0
  249. package/frames/side-app/side-app.frame.d.ts +20 -0
  250. package/frames/side-nav/side-nav.frame.d.ts +6 -2
  251. package/frames/tabs/tabs.frame.d.ts +2 -1
  252. package/frames/vertical-hide/vertical-hide.frame.d.ts +2 -2
  253. package/molecules/actions-column/actions-column.molecule.d.ts +3 -2
  254. package/molecules/checkbox-column/checkbox-column.molecule.d.ts +12 -4
  255. package/molecules/list-item/index.d.ts +1 -0
  256. package/molecules/list-item/list-item.molecule.d.ts +50 -0
  257. package/molecules/molecules.module.d.ts +3 -0
  258. package/molecules/smart-column/smart-column.molecule.d.ts +34 -9
  259. package/molecules/tree-column/tree-column.molecule.d.ts +6 -2
  260. package/organisms/list/index.d.ts +1 -0
  261. package/organisms/{smart-list/smart-list.organism.d.ts → list/list.organism.d.ts} +11 -11
  262. package/organisms/mermaid-section/mermaid-section.organism.d.ts +10 -10
  263. package/organisms/navigator/navigator.organism.d.ts +8 -6
  264. package/organisms/organisms.module.d.ts +1 -1
  265. package/organisms/table/index.d.ts +1 -0
  266. package/organisms/table/table.helpers.d.ts +1 -1
  267. package/organisms/table/table.organism.d.ts +32 -1
  268. package/organisms/tree-list/index.d.ts +1 -0
  269. package/organisms/tree-list/tree-list.organism.d.ts +33 -0
  270. package/package.json +37 -25
  271. package/pages/_index/index.page.d.ts +72 -43
  272. package/pages/columns/columns.page.d.ts +5 -2
  273. package/pages/form/form.page.d.ts +11 -2
  274. package/templates/_index/index.template.d.ts +40 -11
  275. package/templates/code-editor/code-editor.template.d.ts +6 -3
  276. package/templates/entrance/entrance.template.d.ts +1 -1
  277. package/templates/form/form.builder.d.ts +10 -3
  278. package/templates/form/form.template.d.ts +2 -1
  279. package/templates/icon-button-menu/icon-button-menu.template.d.ts +3 -2
  280. package/templates/messages/messages.template.d.ts +21 -17
  281. package/esm2022/frames/scroll-v2/scroll.frame.mjs +0 -46
  282. package/esm2022/organisms/smart-list/index.mjs +0 -2
  283. package/esm2022/organisms/smart-list/ng-atomic-components-organisms-smart-list.mjs +0 -5
  284. package/esm2022/organisms/smart-list/smart-list.organism.mjs +0 -218
  285. package/esm2022/sheets/actions/actions.sheet.mjs +0 -45
  286. package/esm2022/sheets/index.mjs +0 -3
  287. package/esm2022/sheets/ng-atomic-components-sheets.mjs +0 -5
  288. package/esm2022/sheets/sheets.module.mjs +0 -25
  289. package/esm2022/sheets/sheets.service.mjs +0 -20
  290. package/fesm2022/ng-atomic-components-organisms-smart-list.mjs +0 -223
  291. package/fesm2022/ng-atomic-components-organisms-smart-list.mjs.map +0 -1
  292. package/fesm2022/ng-atomic-components-sheets-actions.mjs +0 -52
  293. package/fesm2022/ng-atomic-components-sheets-actions.mjs.map +0 -1
  294. package/fesm2022/ng-atomic-components-sheets.mjs +0 -48
  295. package/fesm2022/ng-atomic-components-sheets.mjs.map +0 -1
  296. package/frames/scroll-v2/scroll.frame.d.ts +0 -9
  297. package/organisms/smart-list/index.d.ts +0 -1
  298. package/sheets/actions/actions.sheet.d.ts +0 -9
  299. package/sheets/actions/index.d.ts +0 -1
  300. package/sheets/index.d.ts +0 -2
  301. package/sheets/sheets.module.d.ts +0 -11
  302. package/sheets/sheets.service.d.ts +0 -10
@@ -1,87 +1,119 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, inject, ElementRef, ChangeDetectorRef, effect, Component, ChangeDetectionStrategy, Output } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { history } from '@codemirror/commands';
5
- import { closeBrackets, autocompletion } from '@codemirror/autocomplete';
6
- import { bracketMatching, syntaxHighlighting } from '@codemirror/language';
2
+ import { input, output, computed, signal, effect, Directive, inject, ElementRef, Component, ChangeDetectionStrategy } from '@angular/core';
3
+ import { keymap } from '@codemirror/view';
4
+ import { indentWithTab } from '@codemirror/commands';
5
+ import { syntaxHighlighting } from '@codemirror/language';
7
6
  import { oneDark, oneDarkHighlightStyle } from '@codemirror/theme-one-dark';
8
7
  import { EditorState } from '@codemirror/state';
9
- import { lineNumbers } from '@codemirror/view';
10
- import { EditorView, basicSetup } from 'codemirror';
11
- import { NgAtomicComponent } from '@ng-atomic/core';
12
- import { distinctUntilChanged } from 'rxjs';
8
+ import { basicSetup, EditorView } from 'codemirror';
9
+ import { InjectableComponent, NgAtomicComponent } from '@ng-atomic/core';
13
10
  import { json } from '@codemirror/lang-json';
11
+ import { ReplaySubject, filter, map, distinctUntilChanged } from 'rxjs';
14
12
 
15
- class EditorComponent extends NgAtomicComponent {
13
+ class EditorComponentStore extends InjectableComponent {
16
14
  constructor() {
17
15
  super();
18
16
  this.content = input('');
19
- this._contentChange$ = new EventEmitter();
20
- this.contentChange = new EventEmitter();
21
- this.keyActions = input();
17
+ this.contentChange = output();
18
+ this.keyActions = input([]);
22
19
  this.extensions = input([
23
20
  json(),
24
21
  ]);
25
- this.el = inject(ElementRef);
26
- this.cd = inject(ChangeDetectorRef);
22
+ // readonly update = signal<ViewUpdate>(null);
23
+ // readonly update$ = toObservable(this.update);
24
+ this.update$ = new ReplaySubject(0);
25
+ this.defaultExtensions = computed(() => [
26
+ basicSetup,
27
+ oneDark,
28
+ syntaxHighlighting(oneDarkHighlightStyle),
29
+ EditorView.updateListener.of((update) => this.update$.next(update)),
30
+ keymap.of([
31
+ ...(this.keyActions()).map(({ key, actionId }) => ({
32
+ key,
33
+ run: () => {
34
+ this.action.emit({ id: actionId });
35
+ return true;
36
+ },
37
+ })),
38
+ indentWithTab,
39
+ ]),
40
+ ]);
41
+ this.state = computed(() => EditorState.create({
42
+ ...this.editorView().state,
43
+ extensions: [
44
+ ...this.defaultExtensions(),
45
+ ...this.extensions(),
46
+ ],
47
+ }));
48
+ this.editorView = signal(null);
49
+ this.action = output();
50
+ this.update$.pipe(filter((update) => update?.docChanged), map((update) => (update.state.doc.toString())), distinctUntilChanged()).subscribe((content) => {
51
+ this.contentChange.emit(content);
52
+ });
27
53
  effect(() => {
28
- const selection = this.editorView.state.selection;
29
- this.editorView.dispatch(this.editorView.state.update({
54
+ if (this.content() === this.editorView().state.doc.toString())
55
+ return;
56
+ const selection = this.editorView().state.selection;
57
+ this.editorView().dispatch(this.editorView().state.update({
30
58
  changes: {
31
59
  from: 0,
32
- to: this.editorView.state.doc.length,
60
+ to: this.editorView().state.doc.length,
33
61
  insert: this.content() ?? '',
34
62
  },
35
63
  selection: selection,
36
64
  scrollIntoView: true,
37
65
  }));
38
66
  });
67
+ effect(() => {
68
+ this.editorView().setState(this.state());
69
+ });
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EditorComponentStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: EditorComponentStore, isStandalone: true, inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, keyActions: { classPropertyName: "keyActions", publicName: "keyActions", isSignal: true, isRequired: false, transformFunction: null }, extensions: { classPropertyName: "extensions", publicName: "extensions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contentChange: "contentChange", action: "action" }, usesInheritance: true, ngImport: i0 }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EditorComponentStore, decorators: [{
75
+ type: Directive,
76
+ args: [{ standalone: true }]
77
+ }], ctorParameters: () => [] });
78
+ class EditorComponent extends NgAtomicComponent {
79
+ constructor() {
80
+ super(...arguments);
81
+ this.store = inject(EditorComponentStore);
82
+ this.el = inject(ElementRef);
39
83
  }
40
84
  ngOnInit() {
41
- this._contentChange$.pipe(distinctUntilChanged()).subscribe((content) => {
42
- this.contentChange.emit(content);
43
- });
85
+ this.store.action.subscribe((action) => this.dispatch(action));
44
86
  }
45
87
  ngAfterViewInit() {
46
- this.editorView?.destroy();
47
- this.editorView = new EditorView({
88
+ this.store.editorView()?.destroy();
89
+ this.store.editorView.set(new EditorView({
48
90
  state: EditorState.create({
49
91
  doc: ``,
50
92
  extensions: [
51
- basicSetup,
52
- bracketMatching(),
53
- closeBrackets(),
54
- history(),
55
- autocompletion(),
56
- lineNumbers(),
57
- oneDark,
58
- syntaxHighlighting(oneDarkHighlightStyle),
59
- EditorView.updateListener.of((update) => {
60
- if (!update.docChanged)
61
- return;
62
- this._contentChange$.emit(update.state.doc.toString());
63
- }),
64
- ...this.extensions(),
93
+ ...this.store.defaultExtensions(),
94
+ ...this.store.extensions(),
65
95
  ],
66
96
  }),
67
97
  parent: this.el.nativeElement,
68
- });
98
+ }));
69
99
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.1.2", type: EditorComponent, isStandalone: true, selector: "extras-editor", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, keyActions: { classPropertyName: "keyActions", publicName: "keyActions", isSignal: true, isRequired: false, transformFunction: null }, extensions: { classPropertyName: "extensions", publicName: "extensions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contentChange: "contentChange" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, styles: [":host{display:block}:host{width:100%;height:100%}:host ::ng-deep>.cm-editor{width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: EditorComponent, isStandalone: true, selector: "extras-editor", usesInheritance: true, hostDirectives: [{ directive: EditorComponentStore, inputs: ["content", "content", "keyActions", "keyActions", "extensions", "extensions"], outputs: ["contentChange", "contentChange"] }], ngImport: i0, template: ``, isInline: true, styles: [":host{display:block}:host{width:100%;height:100%}:host ::ng-deep>.cm-editor{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
102
  }
73
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EditorComponent, decorators: [{
74
104
  type: Component,
75
- args: [{ selector: 'extras-editor', standalone: true, imports: [
76
- CommonModule
77
- ], template: ``, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}:host{width:100%;height:100%}:host ::ng-deep>.cm-editor{width:100%;height:100%}\n"] }]
78
- }], ctorParameters: () => [], propDecorators: { contentChange: [{
79
- type: Output
80
- }] } });
105
+ args: [{ selector: 'extras-editor', standalone: true, template: ``, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
106
+ {
107
+ directive: EditorComponentStore,
108
+ inputs: ['content', 'keyActions', 'extensions'],
109
+ outputs: ['contentChange'],
110
+ }
111
+ ], styles: [":host{display:block}:host{width:100%;height:100%}:host ::ng-deep>.cm-editor{width:100%;height:100%}\n"] }]
112
+ }] });
81
113
 
82
114
  /**
83
115
  * Generated bundle index. Do not edit.
84
116
  */
85
117
 
86
- export { EditorComponent };
118
+ export { EditorComponent, EditorComponentStore };
87
119
  //# sourceMappingURL=ng-atomic-components-extras-editor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-extras-editor.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/extras/editor/editor.component.ts","../../../../../packages/@ng-atomic/components/src/lib/extras/editor/ng-atomic-components-extras-editor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, model, Directive, inject, input, effect, ElementRef, viewChild, Output, EventEmitter, Inject, ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { keymap } from \"@codemirror/view\"\nimport { indentWithTab } from \"@codemirror/commands\"\nimport { history } from '@codemirror/commands';\nimport { autocompletion, closeBrackets } from '@codemirror/autocomplete';\nimport { bracketMatching, syntaxHighlighting } from '@codemirror/language';\nimport { oneDarkHighlightStyle, oneDark } from '@codemirror/theme-one-dark';\nimport { EditorSelection, EditorState, Extension } from '@codemirror/state';\nimport { lineNumbers } from '@codemirror/view';\nimport { basicSetup, EditorView } from \"codemirror\"\nimport { html } from \"@codemirror/lang-html\";\nimport prettier from \"prettier/standalone\";\nimport parserHtml from \"prettier/parser-html\";\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport { graphql } from 'cm6-graphql';\nimport { distinctUntilChanged } from 'rxjs';\nimport { json } from \"@codemirror/lang-json\";\n\n@Component({\n selector: 'extras-editor',\n standalone: true,\n imports: [\n CommonModule\n ],\n template: ``,\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditorComponent extends NgAtomicComponent implements OnInit, AfterViewInit {\n readonly content = input<string>('');\n readonly _contentChange$ = new EventEmitter<string>();\n @Output() readonly contentChange = new EventEmitter<string>();\n readonly keyActions = input<{key: string, actionId: string}[]>();\n readonly extensions = input<Extension[]>([\n json(),\n ]);\n readonly el = inject(ElementRef);\n\n // readonly state = computed(() => {\n // return EditorState.create({\n // doc: this.content() ?? '',\n // extensions: [\n // keymap.of([\n // ...(this.keyActions() ?? []).map(({key, actionId}) => ({\n // key,\n // run: () => (this.dispatch({id: actionId}), true),\n // })),\n // indentWithTab,\n // ]),\n // html(),\n // ...this.extensions(),\n // graphql(),\n // ],\n // });\n // });\n\n editorView!: EditorView;\n\n readonly cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n effect(() => {\n const selection = this.editorView.state.selection;\n this.editorView.dispatch(\n this.editorView.state.update({\n changes: {\n from: 0,\n to: this.editorView.state.doc.length,\n insert: this.content() ?? '',\n },\n selection: selection,\n scrollIntoView: true,\n }),\n );\n });\n }\n\n ngOnInit(): void {\n this._contentChange$.pipe(\n distinctUntilChanged(),\n ).subscribe((content) => {\n this.contentChange.emit(content);\n });\n }\n\n ngAfterViewInit() {\n this.editorView?.destroy();\n this.editorView = new EditorView({\n state: EditorState.create({\n doc: ``,\n extensions: [\n basicSetup,\n bracketMatching(),\n closeBrackets(),\n history(),\n autocompletion(),\n lineNumbers(),\n oneDark,\n syntaxHighlighting(oneDarkHighlightStyle),\n EditorView.updateListener.of((update) => {\n if (!update.docChanged) return;\n this._contentChange$.emit(update.state.doc.toString());\n }),\n ...this.extensions(),\n ],\n }),\n parent: this.el.nativeElement,\n })\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA6BM,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAgCpD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AAhCD,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAC5B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AACnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAU,CAAC;QACrD,IAAU,CAAA,UAAA,GAAG,KAAK,EAAqC,CAAC;QACxD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAc;AACvC,YAAA,IAAI,EAAE;AACP,SAAA,CAAC,CAAC;AACM,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAsBxB,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAItC,MAAM,CAAC,MAAK;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,CAAC;oBACP,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM;AACpC,oBAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AAC7B,iBAAA;AACD,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,IAAI;AACrB,aAAA,CAAC,CACH,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,oBAAoB,EAAE,CACvB,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC;AAC/B,YAAA,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC;AACxB,gBAAA,GAAG,EAAE,CAAE,CAAA;AACP,gBAAA,UAAU,EAAE;oBACV,UAAU;AACV,oBAAA,eAAe,EAAE;AACjB,oBAAA,aAAa,EAAE;AACf,oBAAA,OAAO,EAAE;AACT,oBAAA,cAAc,EAAE;AAChB,oBAAA,WAAW,EAAE;oBACb,OAAO;oBACP,kBAAkB,CAAC,qBAAqB,CAAC;oBACzC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,KAAI;wBACtC,IAAI,CAAC,MAAM,CAAC,UAAU;4BAAE,OAAO;AAC/B,wBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzD,qBAAC,CAAC;oBACF,GAAG,IAAI,CAAC,UAAU,EAAE;AACrB,iBAAA;aACF,CAAC;AACF,YAAA,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa;AAC9B,SAAA,CAAC,CAAA;KACH;8GAjFU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJhB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAFV,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAMH,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;AACb,qBAAA,EAAA,QAAA,EACS,CAAE,CAAA,EAAA,eAAA,EAEK,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,uGAAA,CAAA,EAAA,CAAA;wDAK5B,aAAa,EAAA,CAAA;sBAA/B,MAAM;;;AChCT;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-components-extras-editor.mjs","sources":["../../../../../packages/@ng-atomic/components/src/lib/extras/editor/editor.component.ts","../../../../../packages/@ng-atomic/components/src/lib/extras/editor/ng-atomic-components-extras-editor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, effect, ElementRef, OnInit, AfterViewInit, output, signal, Directive } from '@angular/core';\nimport { keymap, ViewUpdate } from \"@codemirror/view\"\nimport { indentWithTab } from \"@codemirror/commands\"\nimport { syntaxHighlighting } from '@codemirror/language';\nimport { oneDarkHighlightStyle, oneDark } from '@codemirror/theme-one-dark';\nimport { EditorState, Extension } from '@codemirror/state';\nimport { basicSetup, EditorView } from \"codemirror\"\nimport { Action, InjectableComponent, NgAtomicComponent } from '@ng-atomic/core';\nimport { json } from \"@codemirror/lang-json\";\nimport { distinctUntilChanged, filter, map, ReplaySubject } from 'rxjs';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Directive({ standalone: true })\nexport class EditorComponentStore extends InjectableComponent {\n readonly content = input<string>('');\n readonly contentChange = output<string>();\n readonly keyActions = input<{key: string, actionId: string}[]>([]);\n readonly extensions = input<Extension[]>([\n json(),\n ]);\n // readonly update = signal<ViewUpdate>(null);\n // readonly update$ = toObservable(this.update);\n readonly update$ = new ReplaySubject<ViewUpdate>(0);\n readonly defaultExtensions = computed(() => [\n basicSetup,\n oneDark,\n syntaxHighlighting(oneDarkHighlightStyle),\n EditorView.updateListener.of((update) => this.update$.next(update)),\n keymap.of([\n ...(this.keyActions()).map(({key, actionId}) => ({\n key,\n run: () => {\n this.action.emit({id: actionId});\n return true;\n },\n })),\n indentWithTab,\n ]),\n ]);\n\n readonly state = computed(() => EditorState.create({\n ...this.editorView().state,\n extensions: [\n ...this.defaultExtensions(),\n ...this.extensions(),\n ],\n }));\n\n readonly editorView = signal<EditorView>(null);\n readonly action = output<Action>();\n\n constructor() {\n super();\n\n this.update$.pipe(\n filter((update) => update?.docChanged),\n map((update) => (update.state.doc.toString())),\n distinctUntilChanged(),\n ).subscribe((content) => {\n this.contentChange.emit(content);\n });\n\n effect(() => {\n if (this.content() === this.editorView().state.doc.toString()) return;\n const selection = this.editorView().state.selection;\n this.editorView().dispatch(\n this.editorView().state.update({\n changes: {\n from: 0,\n to: this.editorView().state.doc.length,\n insert: this.content() ?? '',\n },\n selection: selection,\n scrollIntoView: true,\n }),\n );\n });\n\n effect(() => {\n this.editorView().setState(this.state());\n });\n }\n}\n\n@Component({\n selector: 'extras-editor',\n standalone: true,\n template: ``,\n styleUrls: ['./editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [\n {\n directive: EditorComponentStore,\n inputs: ['content', 'keyActions', 'extensions'],\n outputs: ['contentChange'],\n }\n ]\n})\nexport class EditorComponent extends NgAtomicComponent implements OnInit, AfterViewInit {\n protected readonly store = inject(EditorComponentStore);\n protected readonly el = inject(ElementRef);\n\n ngOnInit(): void {\n this.store.action.subscribe((action) => this.dispatch(action));\n }\n\n ngAfterViewInit() {\n this.store.editorView()?.destroy();\n this.store.editorView.set(new EditorView({\n state: EditorState.create({\n doc: ``,\n extensions: [\n ...this.store.defaultExtensions(),\n ...this.store.extensions(),\n ],\n }),\n parent: this.el.nativeElement,\n }));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, computed, effect, input, Directive, PLATFORM_ID, Component, ChangeDetectionStrategy } from '@angular/core';
3
- import { RouterOutlet } from '@angular/router';
3
+ import { ActivatedRoute, RouterOutlet } from '@angular/router';
4
4
  import { LoadingFrame } from '@ng-atomic/components/frames/loading';
5
5
  import { SideNavFrameStore, SideNavFrame } from '@ng-atomic/components/frames/side-nav';
6
6
  import { EntranceFrame } from '@ng-atomic/components/frames/entrance';
7
- import { InjectableComponent, applyToInput, provideEffect, _computed, NgAtomicComponent } from '@ng-atomic/core';
7
+ import { InjectableComponent, applyToInput, provideEffect, createAction, _computed, NgAtomicComponent } from '@ng-atomic/core';
8
8
  import { FormBuilder } from '@angular/forms';
9
- import { makeConfig } from '@ng-atomic/common/services/ui';
9
+ import { makeConfig, NavActionId } from '@ng-atomic/common/services/ui';
10
10
  import { isPlatformServer, isPlatformBrowser } from '@angular/common';
11
11
  import { DrawerFrame } from '@ng-atomic/components/frames/drawer';
12
12
  import { FabFrame } from '@ng-atomic/components/frames/fab';
@@ -15,7 +15,8 @@ import { SideAppService } from '@ng-atomic/common/services/side-app';
15
15
  import { AuthService } from '@ng-atomic/common/services/auth';
16
16
  import { RootPropertyService } from '@ng-atomic/common/services/root-property';
17
17
  import { makeInitializerConfig } from '@ng-atomic/common/services/initializer';
18
- import { injectPrimaryPaths } from '@ng-atomic/common/utils';
18
+ import { injectPrimaryPaths, injectHasNext } from '@ng-atomic/common/utils';
19
+ import { ProgressBarFrame } from '@ng-atomic/components/frames/progress-bar';
19
20
 
20
21
  var ActionId;
21
22
  (function (ActionId) {
@@ -25,6 +26,7 @@ var ActionId;
25
26
  ActionId["SIGN_UP_WITH_EMAIL"] = "[@ng-atomic/components:frames/app] Sign Up With Email";
26
27
  ActionId["NAVIGATE"] = "[@ng-atomic/components:frames/app] Navigate";
27
28
  ActionId["SIGN_OUT"] = "[@ng-atomic/components:frames/app] Sign Out";
29
+ ActionId["NAVIGATE_SIDE_APP"] = "[@ng-atomic/components:frames/app] Navigate Side App";
28
30
  ActionId["OPEN_SIDE_APP"] = "[@ng-atomic/components:frames/app] Open Side App";
29
31
  })(ActionId || (ActionId = {}));
30
32
  class AppFrameStore extends InjectableComponent {
@@ -35,6 +37,7 @@ class AppFrameStore extends InjectableComponent {
35
37
  fabHide: true,
36
38
  isEntrance: true,
37
39
  isLoading: false,
40
+ isProgress: false,
38
41
  sideAppOpened: false,
39
42
  title: 'title',
40
43
  form: inject(FormBuilder).group({}),
@@ -44,10 +47,11 @@ class AppFrameStore extends InjectableComponent {
44
47
  sideNavActions: [
45
48
  { id: ActionId.SIGN_OUT, name: 'ログアウト', icon: 'exit_to_app' },
46
49
  ],
50
+ sideNavBottomActions: [],
47
51
  sideNavMode: 'collapsed',
48
52
  sideNavMenuType: SideNavFrameStore.getMenuType(context),
49
53
  sideNavMenuTitle: undefined,
50
- sideAppOutletName: 'side-app',
54
+ sideAppOutletName: 'side',
51
55
  });
52
56
  }, ['components', 'frames', 'app']); }
53
57
  static { this.provideAppServiceConfig = () => AppFrameStore.Config.provide(() => {
@@ -56,6 +60,7 @@ class AppFrameStore extends InjectableComponent {
56
60
  return (config) => ({
57
61
  ...config,
58
62
  isLoading: app.loading.isLoading(),
63
+ isProgress: app.loading.isProgress(),
59
64
  sideNavMode: app.sideNavMode.sideNavMode(),
60
65
  sideAppOpened: app.sideApp.opened(),
61
66
  fabActions: app.fab.actions(),
@@ -117,7 +122,29 @@ class AppFrameStore extends InjectableComponent {
117
122
  return provideEffect(AppFrameStore.ActionId.NAVIGATE, () => {
118
123
  const app = inject(AppService);
119
124
  return (payload) => {
120
- app.router.navigate(payload).then(() => app.sideNav.collapse());
125
+ if (Array.isArray(payload)) {
126
+ app.sideApp.collapse();
127
+ app.router.navigate(payload).then(() => app.sideNav.collapse());
128
+ }
129
+ else {
130
+ app.sideApp.collapse();
131
+ const { commands, extras } = payload;
132
+ app.router.navigate(commands, extras ?? {}).then(() => app.sideNav.collapse());
133
+ }
134
+ };
135
+ });
136
+ }
137
+ static provideNavigateSideAppEffect() {
138
+ return provideEffect(AppFrameStore.ActionId.NAVIGATE_SIDE_APP, () => {
139
+ const app = inject(AppService);
140
+ return (payload) => {
141
+ if (Array.isArray(payload)) {
142
+ app.sideApp.router.navigate(payload);
143
+ }
144
+ else {
145
+ const { commands, extras } = payload;
146
+ app.sideApp.router.navigate(commands, extras ?? {});
147
+ }
121
148
  };
122
149
  });
123
150
  }
@@ -137,11 +164,18 @@ class AppFrameStore extends InjectableComponent {
137
164
  return provideEffect(AppFrameStore.ActionId.OPEN_SIDE_APP, () => {
138
165
  const app = inject(AppService);
139
166
  return () => {
140
- console.debug('open side app');
141
167
  app.sideApp.expand();
142
168
  };
143
169
  });
144
170
  }
171
+ static provideCloseSideAppEffect() {
172
+ return provideEffect(NavActionId.CLOSE, () => {
173
+ const app = inject(AppService);
174
+ return () => {
175
+ app.sideApp.collapse();
176
+ };
177
+ });
178
+ }
145
179
  static provideSignUpWithEmailEffect() {
146
180
  return provideEffect(AppFrameStore.ActionId.SIGN_UP_WITH_EMAIL, () => {
147
181
  const app = inject(AppService);
@@ -213,10 +247,12 @@ class AppFrameStore extends InjectableComponent {
213
247
  AppFrameStore.provideNavigateEffect(),
214
248
  AppFrameStore.provideSignOutEffect(),
215
249
  AppFrameStore.provideOpenSideAppEffect(),
250
+ AppFrameStore.provideCloseSideAppEffect(),
216
251
  AppFrameStore.provideSignUpWithEmailEffect(),
217
252
  AppFrameStore.provideSignInWithEmailEffect(),
218
253
  AppFrameStore.provideSignInWithGoogleEffect(),
219
254
  AppFrameStore.provideSignInWithTwitterEffect(),
255
+ AppFrameStore.provideNavigateSideAppEffect(),
220
256
  ];
221
257
  }
222
258
  static provideDefault() {
@@ -226,16 +262,33 @@ class AppFrameStore extends InjectableComponent {
226
262
  AppFrameStore.provideDefaultEffects(),
227
263
  ];
228
264
  }
265
+ static injectNavActionFactory() {
266
+ const hasNext = injectHasNext();
267
+ const route = inject(ActivatedRoute);
268
+ const navigateActionBuilder = createAction(AppFrameStore.ActionId.NAVIGATE, undefined, {
269
+ icon: 'open_in_new',
270
+ });
271
+ return (commands, name) => {
272
+ return navigateActionBuilder.create({
273
+ commands,
274
+ extras: { relativeTo: route, replaceUrl: hasNext() }
275
+ }, {
276
+ name,
277
+ });
278
+ };
279
+ }
229
280
  constructor() {
230
281
  super();
231
282
  this.config = AppFrameStore.Config.inject();
232
283
  this.isLoading = input(_computed(() => this.config().isLoading));
284
+ this.isProgress = input(_computed(() => this.config().isProgress));
233
285
  this.isEntrance = input(_computed(() => this.config().isEntrance));
234
286
  this.sideAppOpened = input(_computed(() => this.config().sideAppOpened));
235
287
  this.title = input(_computed(() => this.config().title));
236
288
  this.form = input(_computed(() => this.config().form));
237
289
  this.entranceActions = input(_computed(() => this.config().entranceActions));
238
290
  this.sideNavActions = input(_computed(() => this.config().sideNavActions));
291
+ this.sideNavBottomActions = input(_computed(() => this.config().sideNavBottomActions));
239
292
  this.sideNavMode = input(_computed(() => this.config().sideNavMode));
240
293
  this.sideNavMenuType = input(_computed(() => this.config().sideNavMenuType));
241
294
  this.sideNavMenuTitle = input(_computed(() => this.config().sideNavMenuTitle));
@@ -245,7 +298,7 @@ class AppFrameStore extends InjectableComponent {
245
298
  AppFrameStore.Initializer.initializeStore(this);
246
299
  }
247
300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AppFrameStore, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
248
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: AppFrameStore, isStandalone: true, selector: "frames-app", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isEntrance: { classPropertyName: "isEntrance", publicName: "isEntrance", isSignal: true, isRequired: false, transformFunction: null }, sideAppOpened: { classPropertyName: "sideAppOpened", publicName: "sideAppOpened", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, entranceActions: { classPropertyName: "entranceActions", publicName: "entranceActions", isSignal: true, isRequired: false, transformFunction: null }, sideNavActions: { classPropertyName: "sideNavActions", publicName: "sideNavActions", isSignal: true, isRequired: false, transformFunction: null }, sideNavMode: { classPropertyName: "sideNavMode", publicName: "sideNavMode", isSignal: true, isRequired: false, transformFunction: null }, sideNavMenuType: { classPropertyName: "sideNavMenuType", publicName: "sideNavMenuType", isSignal: true, isRequired: false, transformFunction: null }, sideNavMenuTitle: { classPropertyName: "sideNavMenuTitle", publicName: "sideNavMenuTitle", isSignal: true, isRequired: false, transformFunction: null }, sideAppOutletName: { classPropertyName: "sideAppOutletName", publicName: "sideAppOutletName", isSignal: true, isRequired: false, transformFunction: null }, fabActions: { classPropertyName: "fabActions", publicName: "fabActions", isSignal: true, isRequired: false, transformFunction: null }, fabHide: { classPropertyName: "fabHide", publicName: "fabHide", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
301
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: AppFrameStore, isStandalone: true, selector: "frames-app", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isProgress: { classPropertyName: "isProgress", publicName: "isProgress", isSignal: true, isRequired: false, transformFunction: null }, isEntrance: { classPropertyName: "isEntrance", publicName: "isEntrance", isSignal: true, isRequired: false, transformFunction: null }, sideAppOpened: { classPropertyName: "sideAppOpened", publicName: "sideAppOpened", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, entranceActions: { classPropertyName: "entranceActions", publicName: "entranceActions", isSignal: true, isRequired: false, transformFunction: null }, sideNavActions: { classPropertyName: "sideNavActions", publicName: "sideNavActions", isSignal: true, isRequired: false, transformFunction: null }, sideNavBottomActions: { classPropertyName: "sideNavBottomActions", publicName: "sideNavBottomActions", isSignal: true, isRequired: false, transformFunction: null }, sideNavMode: { classPropertyName: "sideNavMode", publicName: "sideNavMode", isSignal: true, isRequired: false, transformFunction: null }, sideNavMenuType: { classPropertyName: "sideNavMenuType", publicName: "sideNavMenuType", isSignal: true, isRequired: false, transformFunction: null }, sideNavMenuTitle: { classPropertyName: "sideNavMenuTitle", publicName: "sideNavMenuTitle", isSignal: true, isRequired: false, transformFunction: null }, sideAppOutletName: { classPropertyName: "sideAppOutletName", publicName: "sideAppOutletName", isSignal: true, isRequired: false, transformFunction: null }, fabActions: { classPropertyName: "fabActions", publicName: "fabActions", isSignal: true, isRequired: false, transformFunction: null }, fabHide: { classPropertyName: "fabHide", publicName: "fabHide", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
249
302
  }
250
303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: AppFrameStore, decorators: [{
251
304
  type: Directive,
@@ -272,43 +325,46 @@ class AppFrame extends NgAtomicComponent {
272
325
  }
273
326
  }
274
327
  <frames-loading [isLoading]="store.isLoading()">
275
- <frames-fab
276
- [actions]="store.fabActions()"
277
- [hide]="store.fabHide()"
278
- (action)="dispatch($event)"
279
- >
280
- <frames-entrance
281
- [isEntrance]="store.isEntrance()"
282
- [form]="store.form()"
283
- [title]="store.title()"
284
- [actions]="store.entranceActions()"
328
+ <frames-progress-bar [isProgress]="store.isProgress()" [mode]="'query'">
329
+ <frames-fab
330
+ [actions]="store.fabActions()"
331
+ [hide]="store.fabHide()"
285
332
  (action)="dispatch($event)"
286
333
  >
287
- <frames-drawer
288
- [opened]="store.sideAppOpened()"
289
- [position]="'end'"
290
- [hasBackdrop]="false"
334
+ <frames-entrance
335
+ [isEntrance]="store.isEntrance()"
336
+ [form]="store.form()"
337
+ [title]="store.title()"
338
+ [actions]="store.entranceActions()"
339
+ (action)="dispatch($event)"
291
340
  >
292
- <frames-side-nav
293
- [actions]="store.sideNavActions()"
294
- [mode]="store.sideNavMode()"
295
- [menuType]="store.sideNavMenuType()"
296
- [menuTitle]="store.sideNavMenuTitle()"
297
- (action)="dispatch($event)"
298
- contents
341
+ <frames-drawer
342
+ [opened]="store.sideAppOpened()"
343
+ [position]="'end'"
344
+ [hasBackdrop]="false"
299
345
  >
300
- <router-outlet contents/>
301
- </frames-side-nav>
302
- <div drawer style="width: var(--page-width-lv1);height: 100%;">
303
- <router-outlet [name]="store.sideAppOutletName()" />
304
- </div>
305
- </frames-drawer>
306
- </frames-entrance>
307
- </frames-fab>
346
+ <frames-side-nav
347
+ [actions]="store.sideNavActions()"
348
+ [bottomActions]="store.sideNavBottomActions()"
349
+ [mode]="store.sideNavMode()"
350
+ [menuType]="store.sideNavMenuType()"
351
+ [menuTitle]="store.sideNavMenuTitle()"
352
+ (action)="dispatch($event)"
353
+ contents
354
+ >
355
+ <router-outlet contents/>
356
+ </frames-side-nav>
357
+ <div drawer style="width: var(--page-width-lv1);height: 100%;">
358
+ <router-outlet [name]="store.sideAppOutletName()" />
359
+ </div>
360
+ </frames-drawer>
361
+ </frames-entrance>
362
+ </frames-fab>
363
+ </frames-progress-bar>
308
364
  </frames-loading>
309
- `, isInline: true, styles: [":host{--primary-color-SCOPED-IN-frames-app-64hS: var(--primary-color);--on-primary-color-SCOPED-IN-frames-app-64hS: var(--on-primary-color);--surface-color-SCOPED-IN-frames-app-64hS: var(--surface-color);--on-surface-color-SCOPED-IN-frames-app-64hS: var(--on-surface-color);--background-color-SCOPED-IN-frames-app-64hS: var(--background-color);--on-background-color-SCOPED-IN-frames-app-64hS: var(--on-background-color);--menu-width-SCOPED-IN-frames-app-64hS: var(--menu-width);--menu-background-color-SCOPED-IN-frames-app-64hS: var(--menu-background-color);--menu-on-background-color-SCOPED-IN-frames-app-64hS: var(--menu-on-background-color);--background-primary-color-SCOPED-IN-frames-app-64hS: var(--background-primary-color);--background-on-primary-color-SCOPED-IN-frames-app-64hS: var(--background-on-primary-color);--background-background-color-SCOPED-IN-frames-app-64hS: var(--background-background-color);--loading-primary-color-SCOPED-IN-frames-app-64hS: var(--loading-primary-color);--page-width-lv1-SCOPED-IN-frames-app-64hS: var(--page-width-lv1);--menu-padding-top: 56px;--menu-padding-top-SCOPED-IN-frames-app-64hS: var(--menu-padding-top);--loading-z-index: 1000;--loading-z-index-SCOPED-IN-frames-app-64hS: var(--loading-z-index)}:host{display:block;width:100%;height:100%;position:fixed;color:var(--primary-color-SCOPED-IN-frames-app-64hS);touch-action:none}:host *{--primary-color: var(--primary-color-SCOPED-IN-frames-app-64hS);--on-primary-color: var(--on-primary-color-SCOPED-IN-frames-app-64hS);--surface-color: var(--surface-color-SCOPED-IN-frames-app-64hS);--on-surface-color: var(--on-surface-color-SCOPED-IN-frames-app-64hS);--background-color: var(--background-color-SCOPED-IN-frames-app-64hS);--on-background-color: var(--on-background-color-SCOPED-IN-frames-app-64hS);--menu-background-color: var(--menu-background-color-SCOPED-IN-frames-app-64hS);--menu-on-background-color: var(--menu-on-background-color-SCOPED-IN-frames-app-64hS)}:host frames-side-nav{color:#000;--menu-width: var(--menu-width-SCOPED-IN-frames-app-64hS)}:host frames-loading{--primary-color: var(--loading-primary-color-SCOPED-IN-frames-app-64hS)}:host templates-background{--primary-color: var(--background-primary-color-SCOPED-IN-frames-app-64hS);--on-primary-color: var(--background-on-primary-color-SCOPED-IN-frames-app-64hS);--background-color: var(--background-background-color-SCOPED-IN-frames-app-64hS);position:absolute;top:0;left:0}:host frames-side-nav .side-app{position:relative;width:var(--page-width-lv1-SCOPED-IN-frames-app-64hS);height:100%}\n"], dependencies: [{ kind: "component", type: FabFrame, selector: "frames-fab" }, { kind: "component", type: LoadingFrame, selector: "frames-loading" }, { kind: "component", type: SideNavFrame, selector: "frames-side-nav" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: EntranceFrame, selector: "frames-entrance" }, { kind: "component", type:
365
+ `, isInline: true, styles: [":host{--primary-color-SCOPED-IN-frames-app-LMSh: var(--primary-color);--on-primary-color-SCOPED-IN-frames-app-LMSh: var(--on-primary-color);--surface-color-SCOPED-IN-frames-app-LMSh: var(--surface-color);--on-surface-color-SCOPED-IN-frames-app-LMSh: var(--on-surface-color);--background-color-SCOPED-IN-frames-app-LMSh: var(--background-color);--on-background-color-SCOPED-IN-frames-app-LMSh: var(--on-background-color);--menu-width-SCOPED-IN-frames-app-LMSh: var(--menu-width);--menu-background-color-SCOPED-IN-frames-app-LMSh: var(--menu-background-color);--menu-on-background-color-SCOPED-IN-frames-app-LMSh: var(--menu-on-background-color);--background-primary-color-SCOPED-IN-frames-app-LMSh: var(--background-primary-color);--background-on-primary-color-SCOPED-IN-frames-app-LMSh: var(--background-on-primary-color);--background-background-color-SCOPED-IN-frames-app-LMSh: var(--background-background-color);--loading-primary-color-SCOPED-IN-frames-app-LMSh: var(--loading-primary-color);--page-width-lv1-SCOPED-IN-frames-app-LMSh: var(--page-width-lv1);--menu-padding-top: 56px;--menu-padding-top-SCOPED-IN-frames-app-LMSh: var(--menu-padding-top);--loading-z-index: 1000;--loading-z-index-SCOPED-IN-frames-app-LMSh: var(--loading-z-index)}:host{display:block;width:100%;height:100%;position:fixed;color:var(--primary-color-SCOPED-IN-frames-app-LMSh);touch-action:none}:host *{--primary-color: var(--primary-color-SCOPED-IN-frames-app-LMSh);--on-primary-color: var(--on-primary-color-SCOPED-IN-frames-app-LMSh);--surface-color: var(--surface-color-SCOPED-IN-frames-app-LMSh);--on-surface-color: var(--on-surface-color-SCOPED-IN-frames-app-LMSh);--background-color: var(--background-color-SCOPED-IN-frames-app-LMSh);--on-background-color: var(--on-background-color-SCOPED-IN-frames-app-LMSh);--menu-background-color: var(--menu-background-color-SCOPED-IN-frames-app-LMSh);--menu-on-background-color: var(--menu-on-background-color-SCOPED-IN-frames-app-LMSh)}:host frames-side-nav{color:#000;--menu-width: var(--menu-width-SCOPED-IN-frames-app-LMSh)}:host frames-loading{--primary-color: var(--loading-primary-color-SCOPED-IN-frames-app-LMSh)}:host templates-background{--primary-color: var(--background-primary-color-SCOPED-IN-frames-app-LMSh);--on-primary-color: var(--background-on-primary-color-SCOPED-IN-frames-app-LMSh);--background-color: var(--background-background-color-SCOPED-IN-frames-app-LMSh);position:absolute;top:0;left:0}:host frames-side-nav .side-app{position:relative;width:var(--page-width-lv1-SCOPED-IN-frames-app-LMSh);height:100%}\n"], dependencies: [{ kind: "component", type: FabFrame, selector: "frames-fab" }, { kind: "component", type: LoadingFrame, selector: "frames-loading" }, { kind: "component", type: SideNavFrame, selector: "frames-side-nav" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: EntranceFrame, selector: "frames-entrance" }, { kind: "component", type:
310
366
  // DrawerFrameStore,
311
- DrawerFrame, selector: "frames-drawer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('@ng-atomic/components/templates/background').then(m => m.BackgroundTemplateStore)]] }); }
367
+ DrawerFrame, selector: "frames-drawer" }, { kind: "component", type: ProgressBarFrame, selector: "frames-progress-bar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, deferBlockDependencies: [() => [import('@ng-atomic/components/templates/background').then(m => m.BackgroundTemplateStore)]] }); }
312
368
  }
313
369
  i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ngImport: i0, type: AppFrame, resolveDeferredDeps: () => [import('@ng-atomic/components/templates/background').then(m => m.BackgroundTemplateStore)], resolveMetadata: BackgroundTemplateStore => ({ decorators: [{
314
370
  type: Component,
@@ -321,6 +377,7 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ng
321
377
  // DrawerFrameStore,
322
378
  DrawerFrame,
323
379
  BackgroundTemplateStore,
380
+ ProgressBarFrame,
324
381
  ], template: `
325
382
  <router-outlet/>
326
383
  @if (isPlatformBrowser()) {
@@ -329,43 +386,46 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.1.2", ng
329
386
  }
330
387
  }
331
388
  <frames-loading [isLoading]="store.isLoading()">
332
- <frames-fab
333
- [actions]="store.fabActions()"
334
- [hide]="store.fabHide()"
335
- (action)="dispatch($event)"
336
- >
337
- <frames-entrance
338
- [isEntrance]="store.isEntrance()"
339
- [form]="store.form()"
340
- [title]="store.title()"
341
- [actions]="store.entranceActions()"
389
+ <frames-progress-bar [isProgress]="store.isProgress()" [mode]="'query'">
390
+ <frames-fab
391
+ [actions]="store.fabActions()"
392
+ [hide]="store.fabHide()"
342
393
  (action)="dispatch($event)"
343
394
  >
344
- <frames-drawer
345
- [opened]="store.sideAppOpened()"
346
- [position]="'end'"
347
- [hasBackdrop]="false"
395
+ <frames-entrance
396
+ [isEntrance]="store.isEntrance()"
397
+ [form]="store.form()"
398
+ [title]="store.title()"
399
+ [actions]="store.entranceActions()"
400
+ (action)="dispatch($event)"
348
401
  >
349
- <frames-side-nav
350
- [actions]="store.sideNavActions()"
351
- [mode]="store.sideNavMode()"
352
- [menuType]="store.sideNavMenuType()"
353
- [menuTitle]="store.sideNavMenuTitle()"
354
- (action)="dispatch($event)"
355
- contents
402
+ <frames-drawer
403
+ [opened]="store.sideAppOpened()"
404
+ [position]="'end'"
405
+ [hasBackdrop]="false"
356
406
  >
357
- <router-outlet contents/>
358
- </frames-side-nav>
359
- <div drawer style="width: var(--page-width-lv1);height: 100%;">
360
- <router-outlet [name]="store.sideAppOutletName()" />
361
- </div>
362
- </frames-drawer>
363
- </frames-entrance>
364
- </frames-fab>
407
+ <frames-side-nav
408
+ [actions]="store.sideNavActions()"
409
+ [bottomActions]="store.sideNavBottomActions()"
410
+ [mode]="store.sideNavMode()"
411
+ [menuType]="store.sideNavMenuType()"
412
+ [menuTitle]="store.sideNavMenuTitle()"
413
+ (action)="dispatch($event)"
414
+ contents
415
+ >
416
+ <router-outlet contents/>
417
+ </frames-side-nav>
418
+ <div drawer style="width: var(--page-width-lv1);height: 100%;">
419
+ <router-outlet [name]="store.sideAppOutletName()" />
420
+ </div>
421
+ </frames-drawer>
422
+ </frames-entrance>
423
+ </frames-fab>
424
+ </frames-progress-bar>
365
425
  </frames-loading>
366
426
  `, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [
367
427
  AppFrameStore,
368
- ], styles: [":host{--primary-color-SCOPED-IN-frames-app-64hS: var(--primary-color);--on-primary-color-SCOPED-IN-frames-app-64hS: var(--on-primary-color);--surface-color-SCOPED-IN-frames-app-64hS: var(--surface-color);--on-surface-color-SCOPED-IN-frames-app-64hS: var(--on-surface-color);--background-color-SCOPED-IN-frames-app-64hS: var(--background-color);--on-background-color-SCOPED-IN-frames-app-64hS: var(--on-background-color);--menu-width-SCOPED-IN-frames-app-64hS: var(--menu-width);--menu-background-color-SCOPED-IN-frames-app-64hS: var(--menu-background-color);--menu-on-background-color-SCOPED-IN-frames-app-64hS: var(--menu-on-background-color);--background-primary-color-SCOPED-IN-frames-app-64hS: var(--background-primary-color);--background-on-primary-color-SCOPED-IN-frames-app-64hS: var(--background-on-primary-color);--background-background-color-SCOPED-IN-frames-app-64hS: var(--background-background-color);--loading-primary-color-SCOPED-IN-frames-app-64hS: var(--loading-primary-color);--page-width-lv1-SCOPED-IN-frames-app-64hS: var(--page-width-lv1);--menu-padding-top: 56px;--menu-padding-top-SCOPED-IN-frames-app-64hS: var(--menu-padding-top);--loading-z-index: 1000;--loading-z-index-SCOPED-IN-frames-app-64hS: var(--loading-z-index)}:host{display:block;width:100%;height:100%;position:fixed;color:var(--primary-color-SCOPED-IN-frames-app-64hS);touch-action:none}:host *{--primary-color: var(--primary-color-SCOPED-IN-frames-app-64hS);--on-primary-color: var(--on-primary-color-SCOPED-IN-frames-app-64hS);--surface-color: var(--surface-color-SCOPED-IN-frames-app-64hS);--on-surface-color: var(--on-surface-color-SCOPED-IN-frames-app-64hS);--background-color: var(--background-color-SCOPED-IN-frames-app-64hS);--on-background-color: var(--on-background-color-SCOPED-IN-frames-app-64hS);--menu-background-color: var(--menu-background-color-SCOPED-IN-frames-app-64hS);--menu-on-background-color: var(--menu-on-background-color-SCOPED-IN-frames-app-64hS)}:host frames-side-nav{color:#000;--menu-width: var(--menu-width-SCOPED-IN-frames-app-64hS)}:host frames-loading{--primary-color: var(--loading-primary-color-SCOPED-IN-frames-app-64hS)}:host templates-background{--primary-color: var(--background-primary-color-SCOPED-IN-frames-app-64hS);--on-primary-color: var(--background-on-primary-color-SCOPED-IN-frames-app-64hS);--background-color: var(--background-background-color-SCOPED-IN-frames-app-64hS);position:absolute;top:0;left:0}:host frames-side-nav .side-app{position:relative;width:var(--page-width-lv1-SCOPED-IN-frames-app-64hS);height:100%}\n"] }]
428
+ ], styles: [":host{--primary-color-SCOPED-IN-frames-app-LMSh: var(--primary-color);--on-primary-color-SCOPED-IN-frames-app-LMSh: var(--on-primary-color);--surface-color-SCOPED-IN-frames-app-LMSh: var(--surface-color);--on-surface-color-SCOPED-IN-frames-app-LMSh: var(--on-surface-color);--background-color-SCOPED-IN-frames-app-LMSh: var(--background-color);--on-background-color-SCOPED-IN-frames-app-LMSh: var(--on-background-color);--menu-width-SCOPED-IN-frames-app-LMSh: var(--menu-width);--menu-background-color-SCOPED-IN-frames-app-LMSh: var(--menu-background-color);--menu-on-background-color-SCOPED-IN-frames-app-LMSh: var(--menu-on-background-color);--background-primary-color-SCOPED-IN-frames-app-LMSh: var(--background-primary-color);--background-on-primary-color-SCOPED-IN-frames-app-LMSh: var(--background-on-primary-color);--background-background-color-SCOPED-IN-frames-app-LMSh: var(--background-background-color);--loading-primary-color-SCOPED-IN-frames-app-LMSh: var(--loading-primary-color);--page-width-lv1-SCOPED-IN-frames-app-LMSh: var(--page-width-lv1);--menu-padding-top: 56px;--menu-padding-top-SCOPED-IN-frames-app-LMSh: var(--menu-padding-top);--loading-z-index: 1000;--loading-z-index-SCOPED-IN-frames-app-LMSh: var(--loading-z-index)}:host{display:block;width:100%;height:100%;position:fixed;color:var(--primary-color-SCOPED-IN-frames-app-LMSh);touch-action:none}:host *{--primary-color: var(--primary-color-SCOPED-IN-frames-app-LMSh);--on-primary-color: var(--on-primary-color-SCOPED-IN-frames-app-LMSh);--surface-color: var(--surface-color-SCOPED-IN-frames-app-LMSh);--on-surface-color: var(--on-surface-color-SCOPED-IN-frames-app-LMSh);--background-color: var(--background-color-SCOPED-IN-frames-app-LMSh);--on-background-color: var(--on-background-color-SCOPED-IN-frames-app-LMSh);--menu-background-color: var(--menu-background-color-SCOPED-IN-frames-app-LMSh);--menu-on-background-color: var(--menu-on-background-color-SCOPED-IN-frames-app-LMSh)}:host frames-side-nav{color:#000;--menu-width: var(--menu-width-SCOPED-IN-frames-app-LMSh)}:host frames-loading{--primary-color: var(--loading-primary-color-SCOPED-IN-frames-app-LMSh)}:host templates-background{--primary-color: var(--background-primary-color-SCOPED-IN-frames-app-LMSh);--on-primary-color: var(--background-on-primary-color-SCOPED-IN-frames-app-LMSh);--background-color: var(--background-background-color-SCOPED-IN-frames-app-LMSh);position:absolute;top:0;left:0}:host frames-side-nav .side-app{position:relative;width:var(--page-width-lv1-SCOPED-IN-frames-app-LMSh);height:100%}\n"] }]
369
429
  }], ctorParameters: null, propDecorators: null }) });
370
430
 
371
431
  /**