@ng-atomic/components 3.3.0 → 3.6.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 (231) hide show
  1. package/atoms/smart-menu-button/smart-menu-button.atom.d.ts +4 -4
  2. package/atoms/smart-menu-button/smart-menu-button.atom.d.ts.map +1 -1
  3. package/esm2020/atoms/icon/icon.atom.mjs +2 -2
  4. package/esm2020/atoms/smart-menu-button/smart-menu-button.atom.mjs +16 -15
  5. package/esm2020/frames/auto-layout/auto-layout.frame.mjs +2 -2
  6. package/esm2020/frames/drawer/drawer.frame.mjs +2 -2
  7. package/esm2020/frames/line-up/line-up.animations.mjs +14 -17
  8. package/esm2020/frames/line-up/line-up.frame.mjs +76 -39
  9. package/esm2020/frames/line-up/line-up.module.mjs +1 -1
  10. package/esm2020/frames/line-up/resize-observer.mjs +7 -21
  11. package/esm2020/frames/overlay/overlay.animations.mjs +4 -4
  12. package/esm2020/frames/overlay/overlay.frame.mjs +16 -32
  13. package/esm2020/frames/scroll/scroll.frame.mjs +2 -2
  14. package/esm2020/frames/smart-menu/smart-menu.frame.mjs +2 -2
  15. package/esm2020/molecules/actions-column/actions-column.molecule.mjs +9 -9
  16. package/esm2020/molecules/chips-input-field/chips-input-field.molecule.mjs +7 -4
  17. package/esm2020/molecules/date-input-field/date-input-field.molecule.mjs +2 -2
  18. package/esm2020/molecules/header/header.module.mjs +27 -0
  19. package/esm2020/molecules/header/header.molecule.mjs +32 -0
  20. package/esm2020/molecules/header/index.mjs +3 -0
  21. package/esm2020/molecules/header/ng-atomic-components-molecules-header.mjs +5 -0
  22. package/esm2020/molecules/select-input-field/select-input-field.molecule.mjs +2 -2
  23. package/esm2020/organisms/action-buttons-section/action-buttons-section.organism.mjs +10 -10
  24. package/esm2020/organisms/back-navigator/back-navigator.organism.mjs +10 -10
  25. package/esm2020/organisms/card-input-section/card-input-section.organism.mjs +2 -2
  26. package/esm2020/organisms/cvc-and-exp-input-section/cvc-and-exp-input-section.organism.mjs +2 -2
  27. package/esm2020/organisms/date-input-section/date-input-section.organism.mjs +2 -2
  28. package/esm2020/organisms/heading/heading.organism.mjs +2 -2
  29. package/esm2020/organisms/navigation-list/navigation-list.organism.mjs +3 -3
  30. package/esm2020/organisms/navigator/navigator.organism.mjs +37 -42
  31. package/esm2020/organisms/paginator/paginator.organism.mjs +5 -5
  32. package/esm2020/organisms/select-input-section/select-input-section.organism.mjs +2 -2
  33. package/esm2020/organisms/smart-table/smart-table.organism.mjs +11 -10
  34. package/esm2020/organisms/social-login-section/social-login-section.organism.mjs +2 -2
  35. package/esm2020/organisms/text-input-section/text-input-section.organism.mjs +2 -2
  36. package/esm2020/organisms/textarea-section/textarea-section.organism.mjs +2 -2
  37. package/esm2020/organisms/top-navigator/top-navigator.organism.mjs +10 -10
  38. package/esm2020/templates/entrance/entrance.template.mjs +5 -5
  39. package/esm2020/templates/menu/menu.template.mjs +3 -3
  40. package/esm2020/templates/smart-crud/smart-crud.module.mjs +13 -6
  41. package/esm2020/templates/smart-crud/smart-crud.template.mjs +63 -51
  42. package/esm2020/templates/smart-index/smart-index.module.mjs +12 -5
  43. package/esm2020/templates/smart-index/smart-index.template.mjs +42 -26
  44. package/fesm2015/ng-atomic-components-atoms-icon.mjs +2 -2
  45. package/fesm2015/ng-atomic-components-atoms-icon.mjs.map +1 -1
  46. package/fesm2015/ng-atomic-components-atoms-smart-menu-button.mjs +15 -14
  47. package/fesm2015/ng-atomic-components-atoms-smart-menu-button.mjs.map +1 -1
  48. package/fesm2015/ng-atomic-components-frames-auto-layout.mjs +2 -2
  49. package/fesm2015/ng-atomic-components-frames-drawer.mjs +2 -2
  50. package/fesm2015/ng-atomic-components-frames-line-up.mjs +94 -74
  51. package/fesm2015/ng-atomic-components-frames-line-up.mjs.map +1 -1
  52. package/fesm2015/ng-atomic-components-frames-overlay.mjs +17 -35
  53. package/fesm2015/ng-atomic-components-frames-overlay.mjs.map +1 -1
  54. package/fesm2015/ng-atomic-components-frames-scroll.mjs +2 -2
  55. package/fesm2015/ng-atomic-components-frames-smart-menu.mjs +2 -2
  56. package/fesm2015/ng-atomic-components-molecules-actions-column.mjs +8 -8
  57. package/fesm2015/ng-atomic-components-molecules-actions-column.mjs.map +1 -1
  58. package/fesm2015/ng-atomic-components-molecules-chips-input-field.mjs +6 -3
  59. package/fesm2015/ng-atomic-components-molecules-chips-input-field.mjs.map +1 -1
  60. package/fesm2015/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  61. package/fesm2015/ng-atomic-components-molecules-header.mjs +70 -0
  62. package/fesm2015/ng-atomic-components-molecules-header.mjs.map +1 -0
  63. package/fesm2015/ng-atomic-components-molecules-select-input-field.mjs +2 -2
  64. package/fesm2015/ng-atomic-components-organisms-action-buttons-section.mjs +9 -9
  65. package/fesm2015/ng-atomic-components-organisms-action-buttons-section.mjs.map +1 -1
  66. package/fesm2015/ng-atomic-components-organisms-back-navigator.mjs +9 -9
  67. package/fesm2015/ng-atomic-components-organisms-back-navigator.mjs.map +1 -1
  68. package/fesm2015/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  69. package/fesm2015/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  70. package/fesm2015/ng-atomic-components-organisms-date-input-section.mjs +2 -2
  71. package/fesm2015/ng-atomic-components-organisms-heading.mjs +2 -2
  72. package/fesm2015/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  73. package/fesm2015/ng-atomic-components-organisms-navigation-list.mjs.map +1 -1
  74. package/fesm2015/ng-atomic-components-organisms-navigator.mjs +41 -42
  75. package/fesm2015/ng-atomic-components-organisms-navigator.mjs.map +1 -1
  76. package/fesm2015/ng-atomic-components-organisms-paginator.mjs +4 -4
  77. package/fesm2015/ng-atomic-components-organisms-paginator.mjs.map +1 -1
  78. package/fesm2015/ng-atomic-components-organisms-select-input-section.mjs +2 -2
  79. package/fesm2015/ng-atomic-components-organisms-smart-table.mjs +10 -9
  80. package/fesm2015/ng-atomic-components-organisms-smart-table.mjs.map +1 -1
  81. package/fesm2015/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  82. package/fesm2015/ng-atomic-components-organisms-text-input-section.mjs +2 -2
  83. package/fesm2015/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  84. package/fesm2015/ng-atomic-components-organisms-top-navigator.mjs +9 -9
  85. package/fesm2015/ng-atomic-components-organisms-top-navigator.mjs.map +1 -1
  86. package/fesm2015/ng-atomic-components-templates-entrance.mjs +4 -4
  87. package/fesm2015/ng-atomic-components-templates-entrance.mjs.map +1 -1
  88. package/fesm2015/ng-atomic-components-templates-menu.mjs +2 -2
  89. package/fesm2015/ng-atomic-components-templates-menu.mjs.map +1 -1
  90. package/fesm2015/ng-atomic-components-templates-smart-crud.mjs +75 -56
  91. package/fesm2015/ng-atomic-components-templates-smart-crud.mjs.map +1 -1
  92. package/fesm2015/ng-atomic-components-templates-smart-index.mjs +53 -30
  93. package/fesm2015/ng-atomic-components-templates-smart-index.mjs.map +1 -1
  94. package/fesm2020/ng-atomic-components-atoms-icon.mjs +2 -2
  95. package/fesm2020/ng-atomic-components-atoms-icon.mjs.map +1 -1
  96. package/fesm2020/ng-atomic-components-atoms-smart-menu-button.mjs +15 -14
  97. package/fesm2020/ng-atomic-components-atoms-smart-menu-button.mjs.map +1 -1
  98. package/fesm2020/ng-atomic-components-frames-auto-layout.mjs +2 -2
  99. package/fesm2020/ng-atomic-components-frames-drawer.mjs +2 -2
  100. package/fesm2020/ng-atomic-components-frames-line-up.mjs +93 -74
  101. package/fesm2020/ng-atomic-components-frames-line-up.mjs.map +1 -1
  102. package/fesm2020/ng-atomic-components-frames-overlay.mjs +17 -33
  103. package/fesm2020/ng-atomic-components-frames-overlay.mjs.map +1 -1
  104. package/fesm2020/ng-atomic-components-frames-scroll.mjs +2 -2
  105. package/fesm2020/ng-atomic-components-frames-smart-menu.mjs +2 -2
  106. package/fesm2020/ng-atomic-components-molecules-actions-column.mjs +8 -8
  107. package/fesm2020/ng-atomic-components-molecules-actions-column.mjs.map +1 -1
  108. package/fesm2020/ng-atomic-components-molecules-chips-input-field.mjs +6 -3
  109. package/fesm2020/ng-atomic-components-molecules-chips-input-field.mjs.map +1 -1
  110. package/fesm2020/ng-atomic-components-molecules-date-input-field.mjs +2 -2
  111. package/fesm2020/ng-atomic-components-molecules-header.mjs +63 -0
  112. package/fesm2020/ng-atomic-components-molecules-header.mjs.map +1 -0
  113. package/fesm2020/ng-atomic-components-molecules-select-input-field.mjs +2 -2
  114. package/fesm2020/ng-atomic-components-organisms-action-buttons-section.mjs +9 -9
  115. package/fesm2020/ng-atomic-components-organisms-action-buttons-section.mjs.map +1 -1
  116. package/fesm2020/ng-atomic-components-organisms-back-navigator.mjs +9 -9
  117. package/fesm2020/ng-atomic-components-organisms-back-navigator.mjs.map +1 -1
  118. package/fesm2020/ng-atomic-components-organisms-card-input-section.mjs +2 -2
  119. package/fesm2020/ng-atomic-components-organisms-cvc-and-exp-input-section.mjs +2 -2
  120. package/fesm2020/ng-atomic-components-organisms-date-input-section.mjs +2 -2
  121. package/fesm2020/ng-atomic-components-organisms-heading.mjs +2 -2
  122. package/fesm2020/ng-atomic-components-organisms-navigation-list.mjs +2 -2
  123. package/fesm2020/ng-atomic-components-organisms-navigation-list.mjs.map +1 -1
  124. package/fesm2020/ng-atomic-components-organisms-navigator.mjs +37 -42
  125. package/fesm2020/ng-atomic-components-organisms-navigator.mjs.map +1 -1
  126. package/fesm2020/ng-atomic-components-organisms-paginator.mjs +4 -4
  127. package/fesm2020/ng-atomic-components-organisms-paginator.mjs.map +1 -1
  128. package/fesm2020/ng-atomic-components-organisms-select-input-section.mjs +2 -2
  129. package/fesm2020/ng-atomic-components-organisms-smart-table.mjs +10 -9
  130. package/fesm2020/ng-atomic-components-organisms-smart-table.mjs.map +1 -1
  131. package/fesm2020/ng-atomic-components-organisms-social-login-section.mjs +2 -2
  132. package/fesm2020/ng-atomic-components-organisms-text-input-section.mjs +2 -2
  133. package/fesm2020/ng-atomic-components-organisms-textarea-section.mjs +2 -2
  134. package/fesm2020/ng-atomic-components-organisms-top-navigator.mjs +9 -9
  135. package/fesm2020/ng-atomic-components-organisms-top-navigator.mjs.map +1 -1
  136. package/fesm2020/ng-atomic-components-templates-entrance.mjs +4 -4
  137. package/fesm2020/ng-atomic-components-templates-entrance.mjs.map +1 -1
  138. package/fesm2020/ng-atomic-components-templates-menu.mjs +2 -2
  139. package/fesm2020/ng-atomic-components-templates-menu.mjs.map +1 -1
  140. package/fesm2020/ng-atomic-components-templates-smart-crud.mjs +75 -56
  141. package/fesm2020/ng-atomic-components-templates-smart-crud.mjs.map +1 -1
  142. package/fesm2020/ng-atomic-components-templates-smart-index.mjs +53 -30
  143. package/fesm2020/ng-atomic-components-templates-smart-index.mjs.map +1 -1
  144. package/frames/line-up/line-up.animations.d.ts.map +1 -1
  145. package/frames/line-up/line-up.frame.d.ts +30 -17
  146. package/frames/line-up/line-up.frame.d.ts.map +1 -1
  147. package/frames/line-up/resize-observer.d.ts +2 -15
  148. package/frames/line-up/resize-observer.d.ts.map +1 -1
  149. package/frames/overlay/overlay.animations.d.ts +1 -1
  150. package/frames/overlay/overlay.animations.d.ts.map +1 -1
  151. package/frames/overlay/overlay.frame.d.ts +2 -5
  152. package/frames/overlay/overlay.frame.d.ts.map +1 -1
  153. package/molecules/actions-column/actions-column.molecule.d.ts +4 -4
  154. package/molecules/actions-column/actions-column.molecule.d.ts.map +1 -1
  155. package/molecules/chips-input-field/chips-input-field.molecule.d.ts +2 -1
  156. package/molecules/chips-input-field/chips-input-field.molecule.d.ts.map +1 -1
  157. package/molecules/header/header.module.d.ts +9 -0
  158. package/molecules/header/header.module.d.ts.map +1 -0
  159. package/molecules/header/header.molecule.d.ts +8 -0
  160. package/molecules/header/header.molecule.d.ts.map +1 -0
  161. package/molecules/header/index.d.ts +3 -0
  162. package/molecules/header/index.d.ts.map +1 -0
  163. package/molecules/header/ng-atomic-components-molecules-header.d.ts +6 -0
  164. package/molecules/header/ng-atomic-components-molecules-header.d.ts.map +1 -0
  165. package/molecules/header/package.json +10 -0
  166. package/organisms/action-buttons-section/action-buttons-section.organism.d.ts +5 -5
  167. package/organisms/action-buttons-section/action-buttons-section.organism.d.ts.map +1 -1
  168. package/organisms/back-navigator/back-navigator.organism.d.ts +4 -4
  169. package/organisms/back-navigator/back-navigator.organism.d.ts.map +1 -1
  170. package/organisms/navigation-list/navigation-list.organism.d.ts +1 -1
  171. package/organisms/navigation-list/navigation-list.organism.d.ts.map +1 -1
  172. package/organisms/navigator/navigator.organism.d.ts +5 -8
  173. package/organisms/navigator/navigator.organism.d.ts.map +1 -1
  174. package/organisms/smart-table/smart-table.organism.d.ts +5 -4
  175. package/organisms/smart-table/smart-table.organism.d.ts.map +1 -1
  176. package/organisms/top-navigator/top-navigator.organism.d.ts +3 -3
  177. package/organisms/top-navigator/top-navigator.organism.d.ts.map +1 -1
  178. package/package.json +13 -20
  179. package/templates/menu/menu.template.d.ts +1 -1
  180. package/templates/menu/menu.template.d.ts.map +1 -1
  181. package/templates/smart-crud/smart-crud.module.d.ts +3 -2
  182. package/templates/smart-crud/smart-crud.module.d.ts.map +1 -1
  183. package/templates/smart-crud/smart-crud.template.d.ts +16 -6
  184. package/templates/smart-crud/smart-crud.template.d.ts.map +1 -1
  185. package/templates/smart-index/smart-index.module.d.ts +3 -2
  186. package/templates/smart-index/smart-index.module.d.ts.map +1 -1
  187. package/templates/smart-index/smart-index.template.d.ts +13 -5
  188. package/templates/smart-index/smart-index.template.d.ts.map +1 -1
  189. package/esm2020/frames/line-up-v2/index.mjs +0 -3
  190. package/esm2020/frames/line-up-v2/line-up.animations.mjs +0 -64
  191. package/esm2020/frames/line-up-v2/line-up.frame.mjs +0 -110
  192. package/esm2020/frames/line-up-v2/line-up.module.mjs +0 -27
  193. package/esm2020/frames/line-up-v2/ng-atomic-components-frames-line-up-v2.mjs +0 -5
  194. package/esm2020/frames/line-up-v2/resize-observer.mjs +0 -13
  195. package/esm2020/frames/overlay-v2/index.mjs +0 -3
  196. package/esm2020/frames/overlay-v2/ng-atomic-components-frames-overlay-v2.mjs +0 -5
  197. package/esm2020/frames/overlay-v2/overlay.animations.mjs +0 -28
  198. package/esm2020/frames/overlay-v2/overlay.frame.mjs +0 -30
  199. package/esm2020/frames/overlay-v2/overlay.module.mjs +0 -29
  200. package/fesm2015/ng-atomic-components-frames-line-up-v2.mjs +0 -228
  201. package/fesm2015/ng-atomic-components-frames-line-up-v2.mjs.map +0 -1
  202. package/fesm2015/ng-atomic-components-frames-overlay-v2.mjs +0 -99
  203. package/fesm2015/ng-atomic-components-frames-overlay-v2.mjs.map +0 -1
  204. package/fesm2020/ng-atomic-components-frames-line-up-v2.mjs +0 -213
  205. package/fesm2020/ng-atomic-components-frames-line-up-v2.mjs.map +0 -1
  206. package/fesm2020/ng-atomic-components-frames-overlay-v2.mjs +0 -90
  207. package/fesm2020/ng-atomic-components-frames-overlay-v2.mjs.map +0 -1
  208. package/frames/line-up-v2/index.d.ts +0 -3
  209. package/frames/line-up-v2/index.d.ts.map +0 -1
  210. package/frames/line-up-v2/line-up.animations.d.ts +0 -2
  211. package/frames/line-up-v2/line-up.animations.d.ts.map +0 -1
  212. package/frames/line-up-v2/line-up.frame.d.ts +0 -36
  213. package/frames/line-up-v2/line-up.frame.d.ts.map +0 -1
  214. package/frames/line-up-v2/line-up.module.d.ts +0 -10
  215. package/frames/line-up-v2/line-up.module.d.ts.map +0 -1
  216. package/frames/line-up-v2/ng-atomic-components-frames-line-up-v2.d.ts +0 -6
  217. package/frames/line-up-v2/ng-atomic-components-frames-line-up-v2.d.ts.map +0 -1
  218. package/frames/line-up-v2/package.json +0 -10
  219. package/frames/line-up-v2/resize-observer.d.ts +0 -4
  220. package/frames/line-up-v2/resize-observer.d.ts.map +0 -1
  221. package/frames/overlay-v2/index.d.ts +0 -3
  222. package/frames/overlay-v2/index.d.ts.map +0 -1
  223. package/frames/overlay-v2/ng-atomic-components-frames-overlay-v2.d.ts +0 -6
  224. package/frames/overlay-v2/ng-atomic-components-frames-overlay-v2.d.ts.map +0 -1
  225. package/frames/overlay-v2/overlay.animations.d.ts +0 -2
  226. package/frames/overlay-v2/overlay.animations.d.ts.map +0 -1
  227. package/frames/overlay-v2/overlay.frame.d.ts +0 -7
  228. package/frames/overlay-v2/overlay.frame.d.ts.map +0 -1
  229. package/frames/overlay-v2/overlay.module.d.ts +0 -10
  230. package/frames/overlay-v2/overlay.module.d.ts.map +0 -1
  231. package/frames/overlay-v2/package.json +0 -10
@@ -46,10 +46,10 @@ IconAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IconAtom, selector
46
46
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 2, ctx.hasSvgIcon$));
47
47
  i0.ɵɵadvance(2);
48
48
  i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(3, 4, ctx.hasSvgIcon$));
49
- } }, directives: [i2.NgIf, i1.MatIcon], pipes: [i2.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block;--color: inherit;--color-SCOPED-IN-icon-aTyc: var(--color)}[_nghost-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-SCOPED-IN-icon-aTyc)}"], changeDetection: 0 });
49
+ } }, directives: [i2.NgIf, i1.MatIcon], pipes: [i2.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block;--color: inherit;--color-SCOPED-IN-icon-uRvA: var(--color)}[_nghost-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-SCOPED-IN-icon-uRvA)}[_nghost-%COMP%] mat-icon[_ngcontent-%COMP%] svg .filled{transition:fill .5s;fill:var(--color-SCOPED-IN-icon-uRvA)}"], changeDetection: 0 });
50
50
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IconAtom, [{
51
51
  type: Component,
52
- args: [{ selector: 'atoms-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon\n *ngIf=\"hasSvgIcon$ | async\"\n [svgIcon]=\"name$ | async\"\n></mat-icon>\n<mat-icon\n *ngIf=\"!(hasSvgIcon$ | async)\"\n>{{ name$ | async }}</mat-icon>\n", styles: [":host{display:block;--color: inherit;--color-SCOPED-IN-icon-aTyc: var(--color)}:host mat-icon{color:var(--color-SCOPED-IN-icon-aTyc)}\n"] }]
52
+ args: [{ selector: 'atoms-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon\n *ngIf=\"hasSvgIcon$ | async\"\n [svgIcon]=\"name$ | async\"\n></mat-icon>\n<mat-icon\n *ngIf=\"!(hasSvgIcon$ | async)\"\n>{{ name$ | async }}</mat-icon>\n", styles: [":host{display:block;--color: inherit;--color-SCOPED-IN-icon-uRvA: var(--color)}:host mat-icon{color:var(--color-SCOPED-IN-icon-uRvA)}:host mat-icon ::ng-deep svg .filled{transition:fill .5s;fill:var(--color-SCOPED-IN-icon-uRvA)}\n"] }]
53
53
  }], function () { return [{ type: i1.MatIconRegistry }]; }, { name: [{
54
54
  type: Input
55
55
  }], color: [{
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-atoms-icon.mjs","sources":["../../../../libs/components/src/atoms/icon/icon.atom.html","../../../../libs/components/src/atoms/icon/icon.atom.ts","../../../../libs/components/src/atoms/icon/icon.module.ts","../../../../libs/components/src/atoms/icon/ng-atomic-components-atoms-icon.ts"],"sourcesContent":["<mat-icon\n *ngIf=\"hasSvgIcon$ | async\"\n [svgIcon]=\"name$ | async\"\n></mat-icon>\n<mat-icon\n *ngIf=\"!(hasSvgIcon$ | async)\"\n>{{ name$ | async }}</mat-icon>\n","import { Component, ChangeDetectionStrategy, Input, HostBinding } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { catchError, map, Observable, of, ReplaySubject, switchMap } from 'rxjs';\n\n\n@Component({\n selector: 'atoms-icon',\n templateUrl: './icon.atom.html',\n styleUrls: ['./icon.atom.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconAtom {\n\n name$ = new ReplaySubject<string>(1);\n hasSvgIcon$: Observable<boolean> = this.name$.pipe(\n switchMap((name: string) => this.registry.getNamedSvgIcon(name)),\n map(svgIcon => !!svgIcon),\n catchError(() => of(false)),\n );\n\n @Input()\n set name(_name: string) {\n this.name$.next(_name)\n };\n\n @HostBinding('style.--color')\n @Input()\n color?: string;\n\n constructor(private registry: MatIconRegistry) { }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IconAtom } from './icon.atom';\n\n\n\n@NgModule({\n declarations: [\n IconAtom\n ],\n imports: [\n CommonModule,\n // Material\n MatIconModule,\n ],\n exports: [\n IconAtom\n ]\n})\nexport class IconModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-atoms-icon.mjs","sources":["../../../../libs/components/src/atoms/icon/icon.atom.html","../../../../libs/components/src/atoms/icon/icon.atom.ts","../../../../libs/components/src/atoms/icon/icon.module.ts","../../../../libs/components/src/atoms/icon/ng-atomic-components-atoms-icon.ts"],"sourcesContent":["<mat-icon\n *ngIf=\"hasSvgIcon$ | async\"\n [svgIcon]=\"name$ | async\"\n></mat-icon>\n<mat-icon\n *ngIf=\"!(hasSvgIcon$ | async)\"\n>{{ name$ | async }}</mat-icon>\n","import { Component, ChangeDetectionStrategy, Input, HostBinding } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { catchError, map, Observable, of, ReplaySubject, switchMap } from 'rxjs';\n\n\n@Component({\n selector: 'atoms-icon',\n templateUrl: './icon.atom.html',\n styleUrls: ['./icon.atom.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconAtom {\n\n name$ = new ReplaySubject<string>(1);\n hasSvgIcon$: Observable<boolean> = this.name$.pipe(\n switchMap((name: string) => this.registry.getNamedSvgIcon(name)),\n map(svgIcon => !!svgIcon),\n catchError(() => of(false)),\n );\n\n @Input()\n set name(_name: string) {\n this.name$.next(_name)\n };\n\n @HostBinding('style.--color')\n @Input()\n color?: string;\n\n constructor(private registry: MatIconRegistry) { }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IconAtom } from './icon.atom';\n\n\n\n@NgModule({\n declarations: [\n IconAtom\n ],\n imports: [\n CommonModule,\n // Material\n MatIconModule,\n ],\n exports: [\n IconAtom\n ]\n})\nexport class IconModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ function SmartMenuButtonAtom_ng_container_2_Template(rf, ctx) { if (rf & 1) {
16
16
  const _r6 = i0.ɵɵgetCurrentView();
17
17
  i0.ɵɵelementContainerStart(0);
18
18
  i0.ɵɵelementStart(1, "button", 5);
19
- i0.ɵɵlistener("click", function SmartMenuButtonAtom_ng_container_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.actionItemClick.emit([ctx_r5.actionItems[0]]); });
19
+ i0.ɵɵlistener("click", function SmartMenuButtonAtom_ng_container_2_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.action.emit(ctx_r5.items[0]); });
20
20
  i0.ɵɵelementStart(2, "mat-icon");
21
21
  i0.ɵɵtext(3);
22
22
  i0.ɵɵelementEnd()();
@@ -24,7 +24,7 @@ function SmartMenuButtonAtom_ng_container_2_Template(rf, ctx) { if (rf & 1) {
24
24
  } if (rf & 2) {
25
25
  const ctx_r1 = i0.ɵɵnextContext();
26
26
  i0.ɵɵadvance(3);
27
- i0.ɵɵtextInterpolate(ctx_r1.actionItems[0] == null ? null : ctx_r1.actionItems[0].icon);
27
+ i0.ɵɵtextInterpolate(ctx_r1.items[0] == null ? null : ctx_r1.items[0].icon);
28
28
  } }
29
29
  function SmartMenuButtonAtom_ng_container_3_button_1_Template(rf, ctx) { if (rf & 1) {
30
30
  i0.ɵɵelementStart(0, "button", 7)(1, "mat-icon");
@@ -42,27 +42,27 @@ function SmartMenuButtonAtom_ng_container_3_Template(rf, ctx) { if (rf & 1) {
42
42
  } if (rf & 2) {
43
43
  const ctx_r2 = i0.ɵɵnextContext();
44
44
  i0.ɵɵadvance(1);
45
- i0.ɵɵproperty("ngIf", ctx_r2.actionItems.length);
45
+ i0.ɵɵproperty("ngIf", ctx_r2.items.length);
46
46
  } }
47
47
  function SmartMenuButtonAtom_button_6_Template(rf, ctx) { if (rf & 1) {
48
48
  const _r10 = i0.ɵɵgetCurrentView();
49
49
  i0.ɵɵelementStart(0, "button", 8);
50
- i0.ɵɵlistener("click", function SmartMenuButtonAtom_button_6_Template_button_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r10); const actionItem_r8 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.actionItemClick.emit([actionItem_r8]); });
50
+ i0.ɵɵlistener("click", function SmartMenuButtonAtom_button_6_Template_button_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r10); const item_r8 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.action.emit(item_r8); });
51
51
  i0.ɵɵtext(1);
52
52
  i0.ɵɵelementEnd();
53
53
  } if (rf & 2) {
54
- const actionItem_r8 = ctx.$implicit;
54
+ const item_r8 = ctx.$implicit;
55
55
  i0.ɵɵadvance(1);
56
- i0.ɵɵtextInterpolate(actionItem_r8.name);
56
+ i0.ɵɵtextInterpolate(item_r8.name);
57
57
  } }
58
58
  class SmartMenuButtonAtom {
59
59
  constructor() {
60
- this.actionItems = [];
61
- this.actionItemClick = new EventEmitter();
60
+ this.items = [];
61
+ this.action = new EventEmitter();
62
62
  }
63
63
  }
64
64
  SmartMenuButtonAtom.ɵfac = function SmartMenuButtonAtom_Factory(t) { return new (t || SmartMenuButtonAtom)(); };
65
- SmartMenuButtonAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SmartMenuButtonAtom, selectors: [["atoms-smart-menu-button"]], inputs: { actionItems: "actionItems" }, outputs: { actionItemClick: "actionItemClick" }, decls: 7, vars: 4, consts: [[3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["menu", "matMenu"], ["mat-menu-item", "", 3, "click", 4, "ngFor", "ngForOf"], ["mat-icon-button", "", 3, "click"], ["mat-icon-button", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-icon-button", "", 3, "matMenuTriggerFor"], ["mat-menu-item", "", 3, "click"]], template: function SmartMenuButtonAtom_Template(rf, ctx) { if (rf & 1) {
65
+ SmartMenuButtonAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SmartMenuButtonAtom, selectors: [["atoms-smart-menu-button"]], inputs: { items: "items" }, outputs: { action: "action" }, decls: 7, vars: 4, consts: [[3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["menu", "matMenu"], ["mat-menu-item", "", 3, "click", 4, "ngFor", "ngForOf"], ["mat-icon-button", "", 3, "click"], ["mat-icon-button", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-icon-button", "", 3, "matMenuTriggerFor"], ["mat-menu-item", "", 3, "click"]], template: function SmartMenuButtonAtom_Template(rf, ctx) { if (rf & 1) {
66
66
  i0.ɵɵelementContainerStart(0, 0);
67
67
  i0.ɵɵtemplate(1, SmartMenuButtonAtom_ng_container_1_Template, 1, 0, "ng-container", 1);
68
68
  i0.ɵɵtemplate(2, SmartMenuButtonAtom_ng_container_2_Template, 4, 1, "ng-container", 1);
@@ -72,20 +72,21 @@ SmartMenuButtonAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SmartMe
72
72
  i0.ɵɵtemplate(6, SmartMenuButtonAtom_button_6_Template, 2, 1, "button", 4);
73
73
  i0.ɵɵelementEnd();
74
74
  } if (rf & 2) {
75
- i0.ɵɵproperty("ngSwitch", ctx.actionItems.length);
75
+ let tmp_0_0;
76
+ i0.ɵɵproperty("ngSwitch", (tmp_0_0 = ctx.items == null ? null : ctx.items.length) !== null && tmp_0_0 !== undefined ? tmp_0_0 : 0);
76
77
  i0.ɵɵadvance(1);
77
78
  i0.ɵɵproperty("ngSwitchCase", 0);
78
79
  i0.ɵɵadvance(1);
79
80
  i0.ɵɵproperty("ngSwitchCase", 1);
80
81
  i0.ɵɵadvance(4);
81
- i0.ɵɵproperty("ngForOf", ctx.actionItems);
82
+ i0.ɵɵproperty("ngForOf", ctx.items);
82
83
  } }, directives: [i1.NgSwitch, i1.NgSwitchCase, i2.MatButton, i3.MatIcon, i1.NgSwitchDefault, i1.NgIf, i4.MatMenuTrigger, i4.MatMenu, i1.NgForOf, i4.MatMenuItem], styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%}"], changeDetection: 0 });
83
84
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmartMenuButtonAtom, [{
84
85
  type: Component,
85
- args: [{ selector: 'atoms-smart-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"actionItems.length\">\n <ng-container *ngSwitchCase=\"0\"></ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <button mat-icon-button (click)=\"actionItemClick.emit([actionItems[0]])\">\n <mat-icon>{{ actionItems[0]?.icon }}</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"actionItems.length\">\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\">\n <button \n *ngFor=\"let actionItem of actionItems\"\n mat-menu-item \n (click)=\"actionItemClick.emit([actionItem])\"\n >{{ actionItem.name }}</button>\n</mat-menu>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
86
- }], null, { actionItems: [{
86
+ args: [{ selector: 'atoms-smart-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"items?.length ?? 0\">\n <ng-container *ngSwitchCase=\"0\"></ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <button mat-icon-button (click)=\"action.emit(items[0])\">\n <mat-icon>{{ items[0]?.icon }}</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"items.length\">\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\">\n <button \n *ngFor=\"let item of items\"\n mat-menu-item \n (click)=\"action.emit(item)\"\n >{{ item.name }}</button>\n</mat-menu>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
87
+ }], null, { items: [{
87
88
  type: Input
88
- }], actionItemClick: [{
89
+ }], action: [{
89
90
  type: Output
90
91
  }] }); })();
91
92
 
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-atoms-smart-menu-button.mjs","sources":["../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.atom.html","../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.atom.ts","../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.module.ts","../../../../libs/components/src/atoms/smart-menu-button/ng-atomic-components-atoms-smart-menu-button.ts"],"sourcesContent":["<ng-container [ngSwitch]=\"actionItems.length\">\n <ng-container *ngSwitchCase=\"0\"></ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <button mat-icon-button (click)=\"actionItemClick.emit([actionItems[0]])\">\n <mat-icon>{{ actionItems[0]?.icon }}</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"actionItems.length\">\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\">\n <button \n *ngFor=\"let actionItem of actionItems\"\n mat-menu-item \n (click)=\"actionItemClick.emit([actionItem])\"\n >{{ actionItem.name }}</button>\n</mat-menu>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActionItem } from '@ng-atomic/common/models';\n\n@Component({\n selector: 'atoms-smart-menu-button',\n templateUrl: './smart-menu-button.atom.html',\n styleUrls: ['./smart-menu-button.atom.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SmartMenuButtonAtom {\n @Input()\n actionItems: ActionItem[] = [];\n\n @Output()\n actionItemClick = new EventEmitter<ActionItem>();\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { SmartMenuButtonAtom } from './smart-menu-button.atom';\n\n\n@NgModule({\n declarations: [SmartMenuButtonAtom],\n imports: [\n CommonModule,\n // Material\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n ],\n exports: [SmartMenuButtonAtom]\n})\nexport class SmartMenuButtonModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-atoms-smart-menu-button.mjs","sources":["../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.atom.html","../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.atom.ts","../../../../libs/components/src/atoms/smart-menu-button/smart-menu-button.module.ts","../../../../libs/components/src/atoms/smart-menu-button/ng-atomic-components-atoms-smart-menu-button.ts"],"sourcesContent":["<ng-container [ngSwitch]=\"items?.length ?? 0\">\n <ng-container *ngSwitchCase=\"0\"></ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <button mat-icon-button (click)=\"action.emit(items[0])\">\n <mat-icon>{{ items[0]?.icon }}</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" *ngIf=\"items.length\">\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n</ng-container>\n\n<mat-menu #menu=\"matMenu\">\n <button \n *ngFor=\"let item of items\"\n mat-menu-item \n (click)=\"action.emit(item)\"\n >{{ item.name }}</button>\n</mat-menu>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Action, ActionItem } from '@ng-atomic/common/models';\n\n@Component({\n selector: 'atoms-smart-menu-button',\n templateUrl: './smart-menu-button.atom.html',\n styleUrls: ['./smart-menu-button.atom.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SmartMenuButtonAtom {\n @Input()\n items: ActionItem[] = [];\n\n @Output()\n action = new EventEmitter<Action>();\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { SmartMenuButtonAtom } from './smart-menu-button.atom';\n\n\n@NgModule({\n declarations: [SmartMenuButtonAtom],\n imports: [\n CommonModule,\n // Material\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n ],\n exports: [SmartMenuButtonAtom]\n})\nexport class SmartMenuButtonModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ AutoLayoutFrame.ɵfac = function AutoLayoutFrame_Factory(t) { return new (t || A
9
9
  AutoLayoutFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AutoLayoutFrame, selectors: [["frames-auto-layout"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AutoLayoutFrame_Template(rf, ctx) { if (rf & 1) {
10
10
  i0.ɵɵprojectionDef();
11
11
  i0.ɵɵprojection(0);
12
- } }, styles: ["[_nghost-%COMP%]{--gap: 24px;--gap-SCOPED-IN-auto-layout-KBdo: var(--gap);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-auto-layout-KBdo: var(--vertical-padding)}[_nghost-%COMP%]{display:flex;width:100%;height:100%;justify-content:center;grid-gap:var(--gap-SCOPED-IN-auto-layout-KBdo);gap:var(--gap-SCOPED-IN-auto-layout-KBdo);box-sizing:border-box;padding:var(--vertical-padding-SCOPED-IN-auto-layout-KBdo) 0}[horizontal][_nghost-%COMP%]{flex-direction:row}[vertical][_nghost-%COMP%]{flex-direction:column}"], changeDetection: 0 });
12
+ } }, styles: ["[_nghost-%COMP%]{--gap: 24px;--gap-SCOPED-IN-auto-layout-ASco: var(--gap);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-auto-layout-ASco: var(--vertical-padding)}[_nghost-%COMP%]{display:flex;width:100%;height:100%;justify-content:center;grid-gap:var(--gap-SCOPED-IN-auto-layout-ASco);gap:var(--gap-SCOPED-IN-auto-layout-ASco);box-sizing:border-box;padding:var(--vertical-padding-SCOPED-IN-auto-layout-ASco) 0}[horizontal][_nghost-%COMP%]{flex-direction:row}[vertical][_nghost-%COMP%]{flex-direction:column}"], changeDetection: 0 });
13
13
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AutoLayoutFrame, [{
14
14
  type: Component,
15
- args: [{ selector: 'frames-auto-layout', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>", styles: [":host{--gap: 24px;--gap-SCOPED-IN-auto-layout-KBdo: var(--gap);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-auto-layout-KBdo: var(--vertical-padding)}:host{display:flex;width:100%;height:100%;justify-content:center;grid-gap:var(--gap-SCOPED-IN-auto-layout-KBdo);gap:var(--gap-SCOPED-IN-auto-layout-KBdo);box-sizing:border-box;padding:var(--vertical-padding-SCOPED-IN-auto-layout-KBdo) 0}:host[horizontal]{flex-direction:row}:host[vertical]{flex-direction:column}\n"] }]
15
+ args: [{ selector: 'frames-auto-layout', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>", styles: [":host{--gap: 24px;--gap-SCOPED-IN-auto-layout-ASco: var(--gap);--vertical-padding: 24px;--vertical-padding-SCOPED-IN-auto-layout-ASco: var(--vertical-padding)}:host{display:flex;width:100%;height:100%;justify-content:center;grid-gap:var(--gap-SCOPED-IN-auto-layout-ASco);gap:var(--gap-SCOPED-IN-auto-layout-ASco);box-sizing:border-box;padding:var(--vertical-padding-SCOPED-IN-auto-layout-ASco) 0}:host[horizontal]{flex-direction:row}:host[vertical]{flex-direction:column}\n"] }]
16
16
  }], null, null); })();
17
17
 
18
18
  class AutoLayoutModule {
@@ -34,10 +34,10 @@ DrawerFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawerFrame, se
34
34
  i0.ɵɵelementEnd()();
35
35
  } if (rf & 2) {
36
36
  i0.ɵɵproperty("autosize", false);
37
- } }, directives: [i1.MatDrawerContainer, i1.MatDrawer, i1.MatDrawerContent], styles: ["[_nghost-%COMP%]{--content-width: 360px;--content-width-SCOPED-IN-drawer-F8Z8: var(--content-width)}[_nghost-%COMP%] mat-drawer-content[_ngcontent-%COMP%]{width:100%}"], changeDetection: 0 });
37
+ } }, directives: [i1.MatDrawerContainer, i1.MatDrawer, i1.MatDrawerContent], styles: ["[_nghost-%COMP%]{--content-width: 360px;--content-width-SCOPED-IN-drawer-3IK8: var(--content-width)}[_nghost-%COMP%] mat-drawer-content[_ngcontent-%COMP%]{width:100%}"], changeDetection: 0 });
38
38
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerFrame, [{
39
39
  type: Component,
40
- args: [{ selector: 'frames-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [autosize]=\"false\">\n <mat-drawer #drawer mode=\"side\">\n <ng-content select=[drawer]></ng-content>\n </mat-drawer>\n\n <mat-drawer-content>\n <ng-content select=[contents]></ng-content>\n </mat-drawer-content>\n \n</mat-drawer-container>", styles: [":host{--content-width: 360px;--content-width-SCOPED-IN-drawer-F8Z8: var(--content-width)}:host mat-drawer-content{width:100%}\n"] }]
40
+ args: [{ selector: 'frames-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-drawer-container [autosize]=\"false\">\n <mat-drawer #drawer mode=\"side\">\n <ng-content select=[drawer]></ng-content>\n </mat-drawer>\n\n <mat-drawer-content>\n <ng-content select=[contents]></ng-content>\n </mat-drawer-content>\n \n</mat-drawer-container>", styles: [":host{--content-width: 360px;--content-width-SCOPED-IN-drawer-3IK8: var(--content-width)}:host mat-drawer-content{width:100%}\n"] }]
41
41
  }], null, { drawer: [{
42
42
  type: ViewChild,
43
43
  args: [MatDrawer]
@@ -1,67 +1,66 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, ChangeDetectionStrategy, HostBinding, Input, ViewChild, NgModule } from '@angular/core';
3
- import '@angular/router';
4
- import { Observable, ReplaySubject } from 'rxjs';
5
- import { startWith, map, distinctUntilChanged } from 'rxjs/operators';
3
+ import { Observable, ReplaySubject, BehaviorSubject, combineLatest } from 'rxjs';
4
+ import { map, startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
6
5
  import { trigger, state, style, transition, animate, sequence, query, group } from '@angular/animations';
7
6
  import ResizeObserver from 'resize-observer-polyfill';
8
7
  import { CommonModule } from '@angular/common';
9
8
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
10
9
 
11
- const visibleHiddenAnimation = trigger('visibleHidden', [
12
- state('visible', style({
10
+ const MAIN_ANIMATION = trigger('modeChangeForMain', [
11
+ state('*', style({
13
12
  width: '100%',
14
13
  })),
15
- state('hidden', style({
14
+ state('Next', style({
16
15
  display: 'none',
17
16
  width: '0%',
18
17
  })),
19
- transition('visible => hidden', [
18
+ transition('* => Next', [
20
19
  animate('0.5s', style({ width: '0%' })),
21
20
  style({ display: 'none' }),
22
21
  ]),
23
- transition('hidden => visible', [
22
+ transition('Next => *', [
24
23
  sequence([
25
24
  style({ display: 'inherit' }),
26
25
  animate('0.5s', style({ width: '100%' })),
27
26
  ]),
28
27
  ]),
29
28
  ]);
30
- const routeAnimation = trigger('pageChange', [
29
+ const NEXT_ANIMATION = trigger('modeChangeForNext', [
31
30
  state('Next', style({
32
31
  position: 'relative',
33
32
  width: '100%',
34
33
  })),
35
- state('NextWithMainPage', style({
34
+ state('Both', style({
36
35
  position: 'relative',
37
36
  width: '100%',
38
37
  })),
39
- state('Blank', style({
38
+ state('Main', style({
40
39
  position: 'relative',
41
40
  display: 'none',
42
41
  })),
43
- transition('Blank => Next', [
42
+ transition('Main => Next', [
44
43
  query(':enter', [animate('0.5s')], { optional: true }),
45
44
  sequence([
46
45
  style({ display: 'inherit', width: '100%' }),
47
46
  animate('0.5s'),
48
47
  ]),
49
48
  ]),
50
- transition('Blank => NextWithMainPage', [
49
+ transition('Main => Both', [
51
50
  query(':enter', [animate('0.5s')], { optional: true }),
52
51
  sequence([
53
52
  style({ display: 'inherit', width: '100%' }),
54
53
  animate('0.5s'),
55
54
  ]),
56
55
  ]),
57
- transition('Next => Blank', group([
56
+ transition('Next => Main', group([
58
57
  query(':leave', animate('0.5s', style({ width: '100%' })), { optional: true }),
59
58
  sequence([
60
59
  style({ position: 'absolute', display: 'block', left: '0%' }),
61
60
  animate('0.5s', style({ left: '100%' })),
62
61
  ]),
63
62
  ])),
64
- transition('NextWithMainPage => Blank', group([
63
+ transition('Both => Main', group([
65
64
  query(':leave', animate('0.5s', style({ width: '100%' })), { optional: true }),
66
65
  sequence([
67
66
  style({ position: 'absolute', display: 'block', left: '100%' }),
@@ -69,82 +68,104 @@ const routeAnimation = trigger('pageChange', [
69
68
  ]),
70
69
  ])),
71
70
  ]);
72
- const LINE_UP_ANIMATIONS = [
73
- visibleHiddenAnimation,
74
- routeAnimation,
75
- ];
71
+ const LINE_UP_ANIMATIONS = [MAIN_ANIMATION, NEXT_ANIMATION];
76
72
 
77
- function fromResize(...elements) {
73
+ function fromResize({ nativeElement }) {
78
74
  return Observable.create(function (observer) {
79
- const resizeObserver = new ResizeObserver((observerEntries) => {
80
- for (const entry of observerEntries) {
81
- observer.next(entry);
82
- }
83
- });
84
- for (const el of elements) {
85
- resizeObserver.observe(el);
86
- }
87
- // cancel resize observer on cancelation
75
+ const callback = (entries) => entries.forEach((e) => observer.next(e));
76
+ const resizeObserver = new ResizeObserver(callback);
77
+ resizeObserver.observe(nativeElement);
88
78
  return () => resizeObserver.disconnect();
89
- }).pipe(startWith({
90
- x: 0,
91
- y: 0,
92
- width: 0,
93
- height: 0,
94
- top: 0,
95
- right: 0,
96
- bottom: 0,
97
- left: 0,
98
- }));
79
+ }).pipe(map(({ contentRect }) => contentRect?.width ?? 0), startWith(0), distinctUntilChanged());
99
80
  }
100
81
 
101
82
  const _c0 = ["next"];
102
83
  const _c1 = [[["", "main", ""]], [["", "next", ""]]];
103
84
  const _c2 = ["[main]", "[next]"];
104
- const _fromResize = (el) => fromResize(el.nativeElement)
105
- .pipe(map(({ contentRect }) => contentRect?.width ?? 0))
106
- .pipe(distinctUntilChanged());
107
- class LineUpService {
85
+ var Mode;
86
+ (function (Mode) {
87
+ Mode["MAIN"] = "Main";
88
+ Mode["BOTH"] = "Both";
89
+ Mode["NEXT"] = "Next";
90
+ })(Mode || (Mode = {}));
91
+ class LineUpFrameService {
108
92
  constructor() {
109
- this.pageAnimationDone$ = new ReplaySubject(1);
93
+ this.frames = [];
94
+ }
95
+ register(frame) {
96
+ this.frames.push(frame);
97
+ console.debug('this.frames:', this.frames);
98
+ }
99
+ unregister(frame) {
100
+ this.frames = this.frames.slice(0, this.findIndex(frame));
101
+ }
102
+ findIndex(frame) {
103
+ return this.frames.findIndex((value) => value === frame);
104
+ }
105
+ propagate(frame) {
106
+ const target = this.frames?.[this.findIndex(frame) - 1];
107
+ target?.refresh();
110
108
  }
111
109
  }
112
- LineUpService.ɵfac = function LineUpService_Factory(t) { return new (t || LineUpService)(); };
113
- LineUpService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LineUpService, factory: LineUpService.ɵfac, providedIn: 'root' });
114
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpService, [{
110
+ LineUpFrameService.ɵfac = function LineUpFrameService_Factory(t) { return new (t || LineUpFrameService)(); };
111
+ LineUpFrameService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LineUpFrameService, factory: LineUpFrameService.ɵfac, providedIn: 'root' });
112
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpFrameService, [{
115
113
  type: Injectable,
116
114
  args: [{ providedIn: 'root' }]
117
115
  }], null, null); })();
118
116
  class LineUpFrame {
119
- constructor(service, cd) {
117
+ constructor(service) {
120
118
  this.service = service;
121
- this.cd = cd;
122
- this.isMainHidden = false;
123
- this.label = 'root';
119
+ this.Mode = Mode;
120
+ this.mode = Mode.MAIN;
121
+ this.refresh$ = new ReplaySubject(1);
122
+ this.destroy$ = new ReplaySubject(1);
123
+ this.hasNext$ = new BehaviorSubject(false);
124
+ this._hasNext = false;
124
125
  this.minNextWidth = 360;
125
126
  }
126
- get page() {
127
- const page = this.outlet?.activatedRouteData?.['page'];
128
- return page === 'Blank' ? 'Blank' : this.isMainHidden ? `Next` : `NextWithMainPage`;
127
+ set hasNext(_hasNext) {
128
+ this.hasNext$.next(_hasNext);
129
+ this._hasNext = _hasNext;
130
+ }
131
+ ;
132
+ get hasNext() {
133
+ return this._hasNext;
129
134
  }
130
135
  ngOnInit() {
131
- if (this.label === 'root')
132
- return;
133
- _fromResize(this.next).subscribe((width) => {
134
- this.isMainHidden = width > this.minNextWidth;
135
- this.cd.detectChanges();
136
+ this.service.register(this);
137
+ this.refresh();
138
+ combineLatest([
139
+ this.hasNext$,
140
+ fromResize(this.nextElementRef),
141
+ this.refresh$,
142
+ ]).pipe(takeUntil(this.destroy$)).subscribe(([hasNext, width]) => {
143
+ this.mode = this.resolveMode(hasNext, width);
144
+ setTimeout(() => this.service.propagate(this), 0);
136
145
  });
137
146
  }
147
+ ngOnDestroy() {
148
+ this.service.unregister(this);
149
+ this.destroy$.next();
150
+ }
151
+ refresh() {
152
+ this.refresh$.next();
153
+ }
154
+ resolveMode(hasNext, width) {
155
+ if (hasNext && width <= this.minNextWidth)
156
+ return Mode.BOTH;
157
+ return hasNext ? Mode.NEXT : Mode.MAIN;
158
+ }
138
159
  }
139
- LineUpFrame.ɵfac = function LineUpFrame_Factory(t) { return new (t || LineUpFrame)(i0.ɵɵdirectiveInject(LineUpService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
160
+ LineUpFrame.ɵfac = function LineUpFrame_Factory(t) { return new (t || LineUpFrame)(i0.ɵɵdirectiveInject(LineUpFrameService)); };
140
161
  LineUpFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LineUpFrame, selectors: [["frames-line-up"]], viewQuery: function LineUpFrame_Query(rf, ctx) { if (rf & 1) {
141
162
  i0.ɵɵviewQuery(_c0, 7);
142
163
  } if (rf & 2) {
143
164
  let _t;
144
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.next = _t.first);
165
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextElementRef = _t.first);
145
166
  } }, hostVars: 1, hostBindings: function LineUpFrame_HostBindings(rf, ctx) { if (rf & 2) {
146
- i0.ɵɵattribute("is-main-hidden", ctx.isMainHidden);
147
- } }, inputs: { label: "label", outlet: "outlet", minNextWidth: "minNextWidth" }, ngContentSelectors: _c2, decls: 6, vars: 2, consts: [[1, "main", "contents"], ["main", ""], [1, "next", "contents"], ["next", ""]], template: function LineUpFrame_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵattribute("has-next", ctx.hasNext);
168
+ } }, inputs: { hasNext: "hasNext", minNextWidth: "minNextWidth" }, ngContentSelectors: _c2, decls: 6, vars: 2, consts: [[1, "main"], ["main", ""], [1, "next"], ["next", ""]], template: function LineUpFrame_Template(rf, ctx) { if (rf & 1) {
148
169
  i0.ɵɵprojectionDef(_c1);
149
170
  i0.ɵɵelementStart(0, "div", 0, 1);
150
171
  i0.ɵɵprojection(2);
@@ -153,23 +174,21 @@ LineUpFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LineUpFrame, se
153
174
  i0.ɵɵprojection(5, 1);
154
175
  i0.ɵɵelementEnd();
155
176
  } if (rf & 2) {
156
- i0.ɵɵproperty("@visibleHidden", ctx.isMainHidden ? "hidden" : "visible");
177
+ i0.ɵɵproperty("@modeChangeForMain", ctx.mode);
157
178
  i0.ɵɵadvance(3);
158
- i0.ɵɵproperty("@pageChange", ctx.page);
159
- } }, styles: ["[_nghost-%COMP%]{--gap: 1px;--gap-SCOPED-IN-line-up-kPQ3: var(--gap);--background: #ccc;--background-SCOPED-IN-line-up-kPQ3: var(--background);--contents-background: transparent;--contents-background-SCOPED-IN-line-up-kPQ3: var(--contents-background)}[_nghost-%COMP%]{position:relative;display:flex;justify-content:flex-start;grid-gap:var(--gap-SCOPED-IN-line-up-kPQ3);gap:var(--gap-SCOPED-IN-line-up-kPQ3);width:-moz-fit-content;width:fit-content;height:100%;background:var(--background-SCOPED-IN-line-up-kPQ3)}[_nghost-%COMP%] .contents[_ngcontent-%COMP%]{display:flex;max-width:-moz-fit-content;max-width:fit-content;height:100%;background:var(--contents-background-SCOPED-IN-line-up-kPQ3)}[_nghost-%COMP%] .contents.main[_ngcontent-%COMP%]{overflow:hidden;justify-content:flex-end}[_nghost-%COMP%] .contents.next[_ngcontent-%COMP%]{overflow:visible;justify-content:flex-start}"], data: { animation: LINE_UP_ANIMATIONS } });
179
+ i0.ɵɵproperty("@modeChangeForNext", ctx.mode);
180
+ } }, styles: ["[_nghost-%COMP%]{--gap: 1px;--gap-SCOPED-IN-line-up-BU7a: var(--gap);--background: #ccc;--background-SCOPED-IN-line-up-BU7a: var(--background);--contents-background: transparent;--contents-background-SCOPED-IN-line-up-BU7a: var(--contents-background)}[_nghost-%COMP%]{position:relative;display:flex;justify-content:flex-start;grid-gap:var(--gap-SCOPED-IN-line-up-BU7a);gap:var(--gap-SCOPED-IN-line-up-BU7a);width:-moz-fit-content;width:fit-content;height:100%;background:var(--background-SCOPED-IN-line-up-BU7a)}[_nghost-%COMP%] div[_ngcontent-%COMP%]{display:flex;max-width:-moz-fit-content;max-width:fit-content;height:100%;background:var(--contents-background-SCOPED-IN-line-up-BU7a)}[_nghost-%COMP%] div.main[_ngcontent-%COMP%]{overflow:hidden;justify-content:flex-end}[_nghost-%COMP%] div.next[_ngcontent-%COMP%]{overflow:visible;justify-content:flex-start}"], data: { animation: LINE_UP_ANIMATIONS } });
160
181
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpFrame, [{
161
182
  type: Component,
162
- args: [{ selector: 'frames-line-up', changeDetection: ChangeDetectionStrategy.Default, animations: LINE_UP_ANIMATIONS, template: "<div class=\"main contents\" [@visibleHidden]=\"isMainHidden ? 'hidden' : 'visible' \" #main>\n <ng-content select=\"[main]\"></ng-content>\n</div>\n<div class=\"next contents\" [@pageChange]=\"page\" #next>\n <ng-content select=\"[next]\"></ng-content>\n</div>", styles: [":host{--gap: 1px;--gap-SCOPED-IN-line-up-kPQ3: var(--gap);--background: #ccc;--background-SCOPED-IN-line-up-kPQ3: var(--background);--contents-background: transparent;--contents-background-SCOPED-IN-line-up-kPQ3: var(--contents-background)}:host{position:relative;display:flex;justify-content:flex-start;grid-gap:var(--gap-SCOPED-IN-line-up-kPQ3);gap:var(--gap-SCOPED-IN-line-up-kPQ3);width:-moz-fit-content;width:fit-content;height:100%;background:var(--background-SCOPED-IN-line-up-kPQ3)}:host .contents{display:flex;max-width:-moz-fit-content;max-width:fit-content;height:100%;background:var(--contents-background-SCOPED-IN-line-up-kPQ3)}:host .contents.main{overflow:hidden;justify-content:flex-end}:host .contents.next{overflow:visible;justify-content:flex-start}\n"] }]
163
- }], function () { return [{ type: LineUpService }, { type: i0.ChangeDetectorRef }]; }, { isMainHidden: [{
183
+ args: [{ selector: 'frames-line-up', changeDetection: ChangeDetectionStrategy.Default, animations: LINE_UP_ANIMATIONS, template: "<div class=\"main\" [@modeChangeForMain]=\"mode\" #main>\n <ng-content select=\"[main]\"></ng-content>\n</div>\n<div class=\"next\" [@modeChangeForNext]=\"mode\" #next>\n <ng-content select=\"[next]\"></ng-content>\n</div>", styles: [":host{--gap: 1px;--gap-SCOPED-IN-line-up-BU7a: var(--gap);--background: #ccc;--background-SCOPED-IN-line-up-BU7a: var(--background);--contents-background: transparent;--contents-background-SCOPED-IN-line-up-BU7a: var(--contents-background)}:host{position:relative;display:flex;justify-content:flex-start;grid-gap:var(--gap-SCOPED-IN-line-up-BU7a);gap:var(--gap-SCOPED-IN-line-up-BU7a);width:-moz-fit-content;width:fit-content;height:100%;background:var(--background-SCOPED-IN-line-up-BU7a)}:host div{display:flex;max-width:-moz-fit-content;max-width:fit-content;height:100%;background:var(--contents-background-SCOPED-IN-line-up-BU7a)}:host div.main{overflow:hidden;justify-content:flex-end}:host div.next{overflow:visible;justify-content:flex-start}\n"] }]
184
+ }], function () { return [{ type: LineUpFrameService }]; }, { hasNext: [{
164
185
  type: HostBinding,
165
- args: ['attr.is-main-hidden']
166
- }], label: [{
167
- type: Input
168
- }], outlet: [{
186
+ args: ['attr.has-next']
187
+ }, {
169
188
  type: Input
170
189
  }], minNextWidth: [{
171
190
  type: Input
172
- }], next: [{
191
+ }], nextElementRef: [{
173
192
  type: ViewChild,
174
193
  args: ['next', { static: true }]
175
194
  }] }); })();
@@ -200,5 +219,5 @@ LineUpModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
200
219
  * Generated bundle index. Do not edit.
201
220
  */
202
221
 
203
- export { LineUpFrame, LineUpModule };
222
+ export { LineUpFrame, LineUpFrameService, LineUpModule };
204
223
  //# sourceMappingURL=ng-atomic-components-frames-line-up.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-components-frames-line-up.mjs","sources":["../../../../libs/components/src/frames/line-up/line-up.animations.ts","../../../../libs/components/src/frames/line-up/resize-observer.ts","../../../../libs/components/src/frames/line-up/line-up.frame.ts","../../../../libs/components/src/frames/line-up/line-up.frame.html","../../../../libs/components/src/frames/line-up/line-up.module.ts","../../../../libs/components/src/frames/line-up/ng-atomic-components-frames-line-up.ts"],"sourcesContent":["import { animate, query, sequence, state, style, transition, trigger, group } from '@angular/animations';\n\nconst visibleHiddenAnimation = trigger('visibleHidden', [\n state('visible', style({\n width: '100%',\n })),\n state('hidden', style({\n display: 'none',\n width: '0%',\n })),\n transition('visible => hidden', [\n animate('0.5s', style({ width: '0%' })),\n style({display: 'none'}),\n ]),\n transition('hidden => visible', [\n sequence([\n style({ display: 'inherit' }),\n animate('0.5s', style({ width: '100%' })),\n ]),\n ]),\n]);\n\nconst routeAnimation = trigger('pageChange', [\n state('Next', style({\n position: 'relative',\n width: '100%',\n })),\n state('NextWithMainPage', style({\n position: 'relative',\n width: '100%',\n })),\n state('Blank', style({\n position: 'relative',\n display: 'none',\n })),\n transition('Blank => Next', [\n query(':enter', [animate('0.5s')], { optional: true }),\n sequence([\n style({ display: 'inherit', width: '100%' }),\n animate('0.5s'),\n ]),\n ]),\n transition('Blank => NextWithMainPage', [\n query(':enter', [animate('0.5s')], { optional: true }),\n sequence([\n style({ display: 'inherit', width: '100%' }),\n animate('0.5s'),\n ]),\n ]),\n transition('Next => Blank', group([\n query(':leave', animate('0.5s', style({width: '100%'})), { optional: true }),\n sequence([\n style({position: 'absolute', display: 'block', left: '0%'}),\n animate('0.5s', style({left: '100%'})),\n ]),\n ])),\n transition('NextWithMainPage => Blank', group([\n query(':leave', animate('0.5s', style({width: '100%'})), { optional: true }),\n sequence([\n style({position: 'absolute', display: 'block', left: '100%'}),\n animate('0.5s', style({})),\n ]),\n ])),\n]);\n\nexport const LINE_UP_ANIMATIONS = [\n visibleHiddenAnimation,\n routeAnimation,\n];","import { Observable } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nexport interface DOMRectReadOnly {\n readonly x: number;\n readonly y: number;\n readonly width: number;\n readonly height: number;\n readonly top: number;\n readonly right: number;\n readonly bottom: number;\n readonly left: number;\n}\n\nexport interface ResizeObserverEntry {\n readonly target: Element;\n readonly contentRect: DOMRectReadOnly;\n}\n\nexport function fromResize(...elements: Element[]): Observable<ResizeObserverEntry> {\n return Observable.create(function(observer: any) {\n\n const resizeObserver = new ResizeObserver((observerEntries: any) => {\n for (const entry of observerEntries) {\n observer.next(entry);\n }\n });\n\n for (const el of elements) {\n resizeObserver.observe(el);\n }\n\n // cancel resize observer on cancelation\n return () => resizeObserver.disconnect();\n }).pipe(\n startWith({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n }) \n );\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Injectable, Input, ViewChild } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { LINE_UP_ANIMATIONS } from './line-up.animations';\nimport { fromResize } from './resize-observer';\n\nconst _fromResize = (el: ElementRef) => fromResize(el.nativeElement)\n .pipe(map(({contentRect}: {contentRect: {width: number}}) => contentRect?.width ?? 0))\n .pipe(distinctUntilChanged());\n\n@Injectable({providedIn: 'root'})\nclass LineUpService {\n pageAnimationDone$ = new ReplaySubject(1);\n}\n\n@Component({\n selector: 'frames-line-up',\n templateUrl: './line-up.frame.html',\n styleUrls: ['./line-up.frame.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n animations: LINE_UP_ANIMATIONS,\n})\nexport class LineUpFrame {\n @HostBinding('attr.is-main-hidden')\n isMainHidden = false;\n\n @Input()\n label = 'root';\n\n @Input()\n outlet?: RouterOutlet;\n\n @Input()\n minNextWidth: number = 360;\n\n @ViewChild('next', {static: true})\n next!: ElementRef;\n\n get page(): string {\n const page: string = this.outlet?.activatedRouteData?.['page'];\n return page === 'Blank' ? 'Blank' : this.isMainHidden ? `Next` : `NextWithMainPage`;\n }\n\n constructor(\n public service: LineUpService,\n private cd: ChangeDetectorRef,\n ) { }\n\n ngOnInit(): void {\n if (this.label === 'root') return; \n\n _fromResize(this.next).subscribe((width: number) => {\n this.isMainHidden = width > this.minNextWidth;\n this.cd.detectChanges();\n });\n }\n}\n","<div class=\"main contents\" [@visibleHidden]=\"isMainHidden ? 'hidden' : 'visible' \" #main>\n <ng-content select=\"[main]\"></ng-content>\n</div>\n<div class=\"next contents\" [@pageChange]=\"page\" #next>\n <ng-content select=\"[next]\"></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { LineUpFrame } from './line-up.frame';\n\n\n@NgModule({\n declarations: [LineUpFrame],\n imports: [\n CommonModule,\n MatProgressSpinnerModule\n ],\n exports: [LineUpFrame]\n})\nexport class LineUpModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-components-frames-line-up.mjs","sources":["../../../../libs/components/src/frames/line-up/line-up.animations.ts","../../../../libs/components/src/frames/line-up/resize-observer.ts","../../../../libs/components/src/frames/line-up/line-up.frame.ts","../../../../libs/components/src/frames/line-up/line-up.frame.html","../../../../libs/components/src/frames/line-up/line-up.module.ts","../../../../libs/components/src/frames/line-up/ng-atomic-components-frames-line-up.ts"],"sourcesContent":["import { animate, query, sequence, state, style, transition, trigger, group } from '@angular/animations';\n\nconst MAIN_ANIMATION = trigger('modeChangeForMain', [\n state('*', style({\n width: '100%',\n })),\n state('Next', style({\n display: 'none',\n width: '0%',\n })),\n transition('* => Next', [\n animate('0.5s', style({ width: '0%' })),\n style({display: 'none'}),\n ]),\n transition('Next => *', [\n sequence([\n style({ display: 'inherit' }),\n animate('0.5s', style({ width: '100%' })),\n ]),\n ]),\n]);\n\nconst NEXT_ANIMATION = trigger('modeChangeForNext', [\n state('Next', style({\n position: 'relative',\n width: '100%',\n })),\n state('Both', style({\n position: 'relative',\n width: '100%',\n })),\n state('Main', style({\n position: 'relative',\n display: 'none',\n })),\n transition('Main => Next', [\n query(':enter', [animate('0.5s')], { optional: true }),\n sequence([\n style({ display: 'inherit', width: '100%' }),\n animate('0.5s'),\n ]),\n ]),\n transition('Main => Both', [\n query(':enter', [animate('0.5s')], { optional: true }),\n sequence([\n style({ display: 'inherit', width: '100%' }),\n animate('0.5s'),\n ]),\n ]),\n transition('Next => Main', group([\n query(':leave', animate('0.5s', style({width: '100%'})), { optional: true }),\n sequence([\n style({position: 'absolute', display: 'block', left: '0%'}),\n animate('0.5s', style({left: '100%'})),\n ]),\n ])),\n transition('Both => Main', group([\n query(':leave', animate('0.5s', style({width: '100%'})), { optional: true }),\n sequence([\n style({position: 'absolute', display: 'block', left: '100%'}),\n animate('0.5s', style({})),\n ]),\n ])),\n]);\n\nexport const LINE_UP_ANIMATIONS = [MAIN_ANIMATION, NEXT_ANIMATION];\n","import { Observable } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { ElementRef } from '@angular/core';\n\nexport function fromResize({nativeElement}: ElementRef<Element>): Observable<number> {\n return Observable.create(function(observer: any) {\n const callback = (entries: any) => entries.forEach((e: any) => observer.next(e));\n const resizeObserver = new ResizeObserver(callback);\n resizeObserver.observe(nativeElement);\n return () => resizeObserver.disconnect();\n }).pipe(\n map(({contentRect}) => contentRect?.width ?? 0),\n startWith(0),\n distinctUntilChanged(),\n );\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Injectable, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest, ReplaySubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { LINE_UP_ANIMATIONS } from './line-up.animations';\nimport { fromResize } from './resize-observer';\n\nenum Mode {\n MAIN = 'Main',\n BOTH = 'Both',\n NEXT = 'Next',\n}\n\n@Injectable({providedIn: 'root'})\nexport class LineUpFrameService {\n frames: LineUpFrame[] = [];\n\n register(frame: LineUpFrame) {\n this.frames.push(frame);\n console.debug('this.frames:', this.frames);\n }\n\n unregister(frame: LineUpFrame) {\n this.frames = this.frames.slice(0, this.findIndex(frame));\n }\n\n findIndex(frame: LineUpFrame): number {\n return this.frames.findIndex((value) => value === frame);\n }\n\n propagate(frame: LineUpFrame): void {\n const target = this.frames?.[this.findIndex(frame) - 1];\n target?.refresh();\n }\n}\n\n@Component({\n selector: 'frames-line-up',\n templateUrl: './line-up.frame.html',\n styleUrls: ['./line-up.frame.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n animations: LINE_UP_ANIMATIONS,\n})\nexport class LineUpFrame implements OnInit, OnDestroy {\n Mode = Mode;\n mode = Mode.MAIN;\n\n private readonly refresh$ = new ReplaySubject<void>(1);\n private readonly destroy$ = new ReplaySubject<void>(1);\n private readonly hasNext$ = new BehaviorSubject(false); \n\n\n private _hasNext = false;\n @HostBinding('attr.has-next')\n @Input()\n set hasNext(_hasNext: boolean) {\n this.hasNext$.next(_hasNext);\n this._hasNext = _hasNext;\n };\n get hasNext(): boolean {\n return this._hasNext;\n }\n\n @Input()\n minNextWidth: number = 360;\n\n @ViewChild('next', {static: true})\n nextElementRef!: ElementRef;\n\n constructor(private service: LineUpFrameService) { }\n\n ngOnInit(): void {\n this.service.register(this);\n this.refresh();\n \n combineLatest([\n this.hasNext$, \n fromResize(this.nextElementRef),\n this.refresh$,\n ]).pipe(takeUntil(this.destroy$)).subscribe(([hasNext, width]) => {\n this.mode = this.resolveMode(hasNext, width);\n setTimeout(() => this.service.propagate(this), 0);\n });\n }\n\n ngOnDestroy(): void {\n this.service.unregister(this);\n this.destroy$.next(); \n }\n\n refresh() {\n this.refresh$.next();\n }\n\n private resolveMode(hasNext: boolean, width: number): Mode {\n if (hasNext && width <= this.minNextWidth) return Mode.BOTH;\n return hasNext ? Mode.NEXT : Mode.MAIN;\n }\n}\n","<div class=\"main\" [@modeChangeForMain]=\"mode\" #main>\n <ng-content select=\"[main]\"></ng-content>\n</div>\n<div class=\"next\" [@modeChangeForNext]=\"mode\" #next>\n <ng-content select=\"[next]\"></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { LineUpFrame } from './line-up.frame';\n\n\n@NgModule({\n declarations: [LineUpFrame],\n imports: [\n CommonModule,\n MatProgressSpinnerModule\n ],\n exports: [LineUpFrame]\n})\nexport class LineUpModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}