@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
@@ -57,11 +57,11 @@ IconAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IconAtom, selector
57
57
  i0.ɵɵadvance(2);
58
58
  i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind1(3, 4, ctx.hasSvgIcon$));
59
59
  }
60
- }, 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 });
60
+ }, 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 });
61
61
  (function () {
62
62
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IconAtom, [{
63
63
  type: Component,
64
- 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"] }]
64
+ 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"] }]
65
65
  }], function () { return [{ type: i1.MatIconRegistry }]; }, { name: [{
66
66
  type: Input
67
67
  }], 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":";;;;;;;;;;QAAA,EAGY,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;;;;AADV,QAAA,EAAyB,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA,CAAA;;;;;AAE3B,QAAA,EAEC,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;AAAA,QAAA,EAAmB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;QAAA,EAAW,CAAA,YAAA,EAAA,CAAA;;;;AAA9B,QAAA,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAnB,QAAA,EAAmB,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA,CAAA;;;MCKP,QAAQ,CAAA;AAkBnB,IAAA,WAAA,CAAoB,QAAyB,EAAA;AAAzB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QAhB7C,IAAA,CAAA,KAAK,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;QACrC,IAAW,CAAA,WAAA,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAChD,SAAS,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAChE,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,EACzB,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAC5B,CAAC;KAWgD;IATlD,IACI,IAAI,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACvB;;;gEAZU,QAAQ,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA;2DAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA;QAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;ADXrB,YAAA,EAGY,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;AACZ,YAAA,EAE+B,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;;;AAL5B,YAAA,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA,CAAA;AAIzB,YAAA,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA5B,YAAA,EAA4B,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA,CAAA;;;;4ECMlB,QAAQ,EAAA,CAAA;kBANpB,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2KAAA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,CAAA;sEAY3C,IAAI,EAAA,CAAA;sBADP,KAAK;gBAON,KAAK,EAAA,CAAA;sBAFJ,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;;;;MCNK,UAAU,CAAA;;oEAAV,UAAU,GAAA,CAAA,EAAA,CAAA;4DAAV,UAAU,EAAA,CAAA,CAAA;AATZ,UAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA;YACP,YAAY;;YAEZ,aAAa;SACd,CAAA,EAAA,CAAA,CAAA;;4EAKU,UAAU,EAAA,CAAA;kBAbtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,QAAQ;AACT,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;;wBAEZ,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,QAAQ;AACT,qBAAA;iBACF,CAAA;;;;6EACY,UAAU,EAAA,EAAA,YAAA,EAAA,CAXnB,QAAQ,CAAA,EAAA,OAAA,EAAA,CAGR,YAAY;;YAEZ,aAAa,aAGb,QAAQ,CAAA,EAAA,CAAA,CAAA;AAAA,CAAA,GAAA;;ACjBZ;;AAEG;;;;"}
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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"}
@@ -19,7 +19,7 @@ function SmartMenuButtonAtom_ng_container_2_Template(rf, ctx) {
19
19
  const _r6 = i0.ɵɵgetCurrentView();
20
20
  i0.ɵɵelementContainerStart(0);
21
21
  i0.ɵɵelementStart(1, "button", 5);
22
- 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]]); });
22
+ 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]); });
23
23
  i0.ɵɵelementStart(2, "mat-icon");
24
24
  i0.ɵɵtext(3);
25
25
  i0.ɵɵelementEnd()();
@@ -28,7 +28,7 @@ function SmartMenuButtonAtom_ng_container_2_Template(rf, ctx) {
28
28
  if (rf & 2) {
29
29
  const ctx_r1 = i0.ɵɵnextContext();
30
30
  i0.ɵɵadvance(3);
31
- i0.ɵɵtextInterpolate(ctx_r1.actionItems[0] == null ? null : ctx_r1.actionItems[0].icon);
31
+ i0.ɵɵtextInterpolate(ctx_r1.items[0] == null ? null : ctx_r1.items[0].icon);
32
32
  }
33
33
  }
34
34
  function SmartMenuButtonAtom_ng_container_3_button_1_Template(rf, ctx) {
@@ -52,31 +52,31 @@ function SmartMenuButtonAtom_ng_container_3_Template(rf, ctx) {
52
52
  if (rf & 2) {
53
53
  const ctx_r2 = i0.ɵɵnextContext();
54
54
  i0.ɵɵadvance(1);
55
- i0.ɵɵproperty("ngIf", ctx_r2.actionItems.length);
55
+ i0.ɵɵproperty("ngIf", ctx_r2.items.length);
56
56
  }
57
57
  }
58
58
  function SmartMenuButtonAtom_button_6_Template(rf, ctx) {
59
59
  if (rf & 1) {
60
60
  const _r10 = i0.ɵɵgetCurrentView();
61
61
  i0.ɵɵelementStart(0, "button", 8);
62
- 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]); });
62
+ 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); });
63
63
  i0.ɵɵtext(1);
64
64
  i0.ɵɵelementEnd();
65
65
  }
66
66
  if (rf & 2) {
67
- const actionItem_r8 = ctx.$implicit;
67
+ const item_r8 = ctx.$implicit;
68
68
  i0.ɵɵadvance(1);
69
- i0.ɵɵtextInterpolate(actionItem_r8.name);
69
+ i0.ɵɵtextInterpolate(item_r8.name);
70
70
  }
71
71
  }
72
72
  class SmartMenuButtonAtom {
73
73
  constructor() {
74
- this.actionItems = [];
75
- this.actionItemClick = new EventEmitter();
74
+ this.items = [];
75
+ this.action = new EventEmitter();
76
76
  }
77
77
  }
78
78
  SmartMenuButtonAtom.ɵfac = function SmartMenuButtonAtom_Factory(t) { return new (t || SmartMenuButtonAtom)(); };
79
- 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) {
79
+ 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) {
80
80
  if (rf & 1) {
81
81
  i0.ɵɵelementContainerStart(0, 0);
82
82
  i0.ɵɵtemplate(1, SmartMenuButtonAtom_ng_container_1_Template, 1, 0, "ng-container", 1);
@@ -88,22 +88,23 @@ SmartMenuButtonAtom.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SmartMe
88
88
  i0.ɵɵelementEnd();
89
89
  }
90
90
  if (rf & 2) {
91
- i0.ɵɵproperty("ngSwitch", ctx.actionItems.length);
91
+ let tmp_0_0;
92
+ i0.ɵɵproperty("ngSwitch", (tmp_0_0 = ctx.items == null ? null : ctx.items.length) !== null && tmp_0_0 !== undefined ? tmp_0_0 : 0);
92
93
  i0.ɵɵadvance(1);
93
94
  i0.ɵɵproperty("ngSwitchCase", 0);
94
95
  i0.ɵɵadvance(1);
95
96
  i0.ɵɵproperty("ngSwitchCase", 1);
96
97
  i0.ɵɵadvance(4);
97
- i0.ɵɵproperty("ngForOf", ctx.actionItems);
98
+ i0.ɵɵproperty("ngForOf", ctx.items);
98
99
  }
99
100
  }, 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 });
100
101
  (function () {
101
102
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmartMenuButtonAtom, [{
102
103
  type: Component,
103
- 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"] }]
104
- }], null, { actionItems: [{
104
+ 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"] }]
105
+ }], null, { items: [{
105
106
  type: Input
106
- }], actionItemClick: [{
107
+ }], action: [{
107
108
  type: Output
108
109
  }] });
109
110
  })();
@@ -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":";;;;;;;;;;;;;AACE,QAAA,EAA+C,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAC/C,QAAA,EAAgC,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;QAC9B,EAAyE,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QAAjD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mEAAA,KAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,MAAA,CAAA,eAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,WAAA,CAAkC,CAAC,CAAA,CAAA,CAAG,CAAC,EAAA,CAAA,CAAA;AACtE,QAAA,EAAU,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;AAAA,QAAA,EAA0B,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,QAAA,EAAA,CAAA,YAAA,EAAW,EAAA,CAAA;QAEnD,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;AAFD,QAAA,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA1B,EAA0B,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA;;;;;AAItC,QAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAA8E,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;AAClE,QAAA,EAAI,CAAA,MAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;AAAA,QAAA,EAAA,CAAA,YAAA,EAAW,EAAA,CAAA;;;;;AADH,QAAA,EAA0B,CAAA,UAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,CAAA;;;;;AADpD,QAAA,EAA+B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,QAAA,EAES,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QACX,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;AAHuC,QAAA,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAxB,EAAwB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA;;;;;;QAO9E,EAIC,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QADC,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6DAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,aAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAS,4CAAkC,CAAC,EAAA,CAAA,CAAA;AAC7C,QAAA,EAAqB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;QAAA,EAAS,CAAA,YAAA,EAAA,CAAA;;;;AAA9B,QAAA,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,QAAA,EAAqB,CAAA,iBAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA;;;MCVX,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;AAG/B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAc,CAAC;KAClD;;sFANY,mBAAmB,GAAA,CAAA,EAAA,CAAA;sEAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA;QAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADThC,YAAA,EAA8C,CAAA,uBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAC5C,YAAA,EAA+C,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;AAC/C,YAAA,EAIe,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;AACf,YAAA,EAIe,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACjB,EAAe,CAAA,qBAAA,EAAA,CAAA;YAEf,EAA0B,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AACxB,YAAA,EAI+B,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;YACjC,EAAW,CAAA,YAAA,EAAA,CAAA;;;YApBG,EAA+B,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA;AAC5B,YAAA,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAf,YAAA,EAAe,CAAA,UAAA,CAAA,cAAA,EAAA,CAAA,CAAA,CAAA;AACf,YAAA,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAf,YAAA,EAAe,CAAA,UAAA,CAAA,cAAA,EAAA,CAAA,CAAA,CAAA;AAcL,YAAA,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAd,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA;;;;4ECP5B,mBAAmB,EAAA,CAAA;kBAN/B,SAAS;+BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0tBAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,CAAA;oBAI/C,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,MAAM;;;;MCOI,qBAAqB,CAAA;;0FAArB,qBAAqB,GAAA,CAAA,EAAA,CAAA;uEAArB,qBAAqB,EAAA,CAAA,CAAA;AATvB,qBAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA;YACP,YAAY;;YAEZ,eAAe;YACf,aAAa;YACb,aAAa;SACd,CAAA,EAAA,CAAA,CAAA;;4EAGU,qBAAqB,EAAA,CAAA;kBAXjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE;wBACP,YAAY;;wBAEZ,eAAe;wBACf,aAAa;wBACb,aAAa;AACd,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBAC/B,CAAA;;;;6EACY,qBAAqB,EAAA,EAAA,YAAA,EAAA,CAVjB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAEhC,YAAY;;YAEZ,eAAe;YACf,aAAa;YACb,aAAa,aAEL,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAAA,CAAA,GAAA;;AClB/B;;AAEG;;;;"}
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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"}
@@ -11,11 +11,11 @@ AutoLayoutFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AutoLayoutF
11
11
  i0.ɵɵprojectionDef();
12
12
  i0.ɵɵprojection(0);
13
13
  }
14
- }, 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 });
14
+ }, 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 });
15
15
  (function () {
16
16
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AutoLayoutFrame, [{
17
17
  type: Component,
18
- 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"] }]
18
+ 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"] }]
19
19
  }], null, null);
20
20
  })();
21
21
 
@@ -41,11 +41,11 @@ DrawerFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DrawerFrame, se
41
41
  if (rf & 2) {
42
42
  i0.ɵɵproperty("autosize", false);
43
43
  }
44
- }, 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 });
44
+ }, 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 });
45
45
  (function () {
46
46
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrawerFrame, [{
47
47
  type: Component,
48
- 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"] }]
48
+ 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"] }]
49
49
  }], null, { drawer: [{
50
50
  type: ViewChild,
51
51
  args: [MatDrawer]
@@ -1,66 +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 { Observable, ReplaySubject } from 'rxjs';
4
- import { startWith, map, distinctUntilChanged } from 'rxjs/operators';
3
+ import { Observable, ReplaySubject, BehaviorSubject, combineLatest } from 'rxjs';
4
+ import { map, startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';
5
5
  import { trigger, state, style, transition, animate, sequence, query, group } from '@angular/animations';
6
6
  import ResizeObserver from 'resize-observer-polyfill';
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
9
9
 
10
- const visibleHiddenAnimation = trigger('visibleHidden', [
11
- state('visible', style({
10
+ const MAIN_ANIMATION = trigger('modeChangeForMain', [
11
+ state('*', style({
12
12
  width: '100%',
13
13
  })),
14
- state('hidden', style({
14
+ state('Next', style({
15
15
  display: 'none',
16
16
  width: '0%',
17
17
  })),
18
- transition('visible => hidden', [
18
+ transition('* => Next', [
19
19
  animate('0.5s', style({ width: '0%' })),
20
20
  style({ display: 'none' }),
21
21
  ]),
22
- transition('hidden => visible', [
22
+ transition('Next => *', [
23
23
  sequence([
24
24
  style({ display: 'inherit' }),
25
25
  animate('0.5s', style({ width: '100%' })),
26
26
  ]),
27
27
  ]),
28
28
  ]);
29
- const routeAnimation = trigger('pageChange', [
29
+ const NEXT_ANIMATION = trigger('modeChangeForNext', [
30
30
  state('Next', style({
31
31
  position: 'relative',
32
32
  width: '100%',
33
33
  })),
34
- state('NextWithMainPage', style({
34
+ state('Both', style({
35
35
  position: 'relative',
36
36
  width: '100%',
37
37
  })),
38
- state('Blank', style({
38
+ state('Main', style({
39
39
  position: 'relative',
40
40
  display: 'none',
41
41
  })),
42
- transition('Blank => Next', [
42
+ transition('Main => Next', [
43
43
  query(':enter', [animate('0.5s')], { optional: true }),
44
44
  sequence([
45
45
  style({ display: 'inherit', width: '100%' }),
46
46
  animate('0.5s'),
47
47
  ]),
48
48
  ]),
49
- transition('Blank => NextWithMainPage', [
49
+ transition('Main => Both', [
50
50
  query(':enter', [animate('0.5s')], { optional: true }),
51
51
  sequence([
52
52
  style({ display: 'inherit', width: '100%' }),
53
53
  animate('0.5s'),
54
54
  ]),
55
55
  ]),
56
- transition('Next => Blank', group([
56
+ transition('Next => Main', group([
57
57
  query(':leave', animate('0.5s', style({ width: '100%' })), { optional: true }),
58
58
  sequence([
59
59
  style({ position: 'absolute', display: 'block', left: '0%' }),
60
60
  animate('0.5s', style({ left: '100%' })),
61
61
  ]),
62
62
  ])),
63
- transition('NextWithMainPage => Blank', group([
63
+ transition('Both => Main', group([
64
64
  query(':leave', animate('0.5s', style({ width: '100%' })), { optional: true }),
65
65
  sequence([
66
66
  style({ position: 'absolute', display: 'block', left: '100%' }),
@@ -68,90 +68,112 @@ const routeAnimation = trigger('pageChange', [
68
68
  ]),
69
69
  ])),
70
70
  ]);
71
- const LINE_UP_ANIMATIONS = [
72
- visibleHiddenAnimation,
73
- routeAnimation,
74
- ];
71
+ const LINE_UP_ANIMATIONS = [MAIN_ANIMATION, NEXT_ANIMATION];
75
72
 
76
- function fromResize(...elements) {
73
+ function fromResize({ nativeElement }) {
77
74
  return Observable.create(function (observer) {
78
- const resizeObserver = new ResizeObserver((observerEntries) => {
79
- for (const entry of observerEntries) {
80
- observer.next(entry);
81
- }
82
- });
83
- for (const el of elements) {
84
- resizeObserver.observe(el);
85
- }
86
- // 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);
87
78
  return () => resizeObserver.disconnect();
88
- }).pipe(startWith({
89
- x: 0,
90
- y: 0,
91
- width: 0,
92
- height: 0,
93
- top: 0,
94
- right: 0,
95
- bottom: 0,
96
- left: 0,
97
- }));
79
+ }).pipe(map(({ contentRect }) => { var _a; return (_a = contentRect === null || contentRect === void 0 ? void 0 : contentRect.width) !== null && _a !== void 0 ? _a : 0; }), startWith(0), distinctUntilChanged());
98
80
  }
99
81
 
100
82
  const _c0 = ["next"];
101
83
  const _c1 = [[["", "main", ""]], [["", "next", ""]]];
102
84
  const _c2 = ["[main]", "[next]"];
103
- const _fromResize = (el) => fromResize(el.nativeElement)
104
- .pipe(map(({ contentRect }) => { var _a; return (_a = contentRect === null || contentRect === void 0 ? void 0 : contentRect.width) !== null && _a !== void 0 ? _a : 0; }))
105
- .pipe(distinctUntilChanged());
106
- 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 {
107
92
  constructor() {
108
- 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
+ var _a;
107
+ const target = (_a = this.frames) === null || _a === void 0 ? void 0 : _a[this.findIndex(frame) - 1];
108
+ target === null || target === void 0 ? void 0 : target.refresh();
109
109
  }
110
110
  }
111
- LineUpService.ɵfac = function LineUpService_Factory(t) { return new (t || LineUpService)(); };
112
- LineUpService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LineUpService, factory: LineUpService.ɵfac, providedIn: 'root' });
111
+ LineUpFrameService.ɵfac = function LineUpFrameService_Factory(t) { return new (t || LineUpFrameService)(); };
112
+ LineUpFrameService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LineUpFrameService, factory: LineUpFrameService.ɵfac, providedIn: 'root' });
113
113
  (function () {
114
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpService, [{
114
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpFrameService, [{
115
115
  type: Injectable,
116
116
  args: [{ providedIn: 'root' }]
117
117
  }], null, null);
118
118
  })();
119
119
  class LineUpFrame {
120
- constructor(service, cd) {
120
+ constructor(service) {
121
121
  this.service = service;
122
- this.cd = cd;
123
- this.isMainHidden = false;
124
- this.label = 'root';
122
+ this.Mode = Mode;
123
+ this.mode = Mode.MAIN;
124
+ this.refresh$ = new ReplaySubject(1);
125
+ this.destroy$ = new ReplaySubject(1);
126
+ this.hasNext$ = new BehaviorSubject(false);
127
+ this._hasNext = false;
125
128
  this.minNextWidth = 360;
126
129
  }
127
- get page() {
128
- var _a, _b;
129
- const page = (_b = (_a = this.outlet) === null || _a === void 0 ? void 0 : _a.activatedRouteData) === null || _b === void 0 ? void 0 : _b['page'];
130
- return page === 'Blank' ? 'Blank' : this.isMainHidden ? `Next` : `NextWithMainPage`;
130
+ set hasNext(_hasNext) {
131
+ this.hasNext$.next(_hasNext);
132
+ this._hasNext = _hasNext;
133
+ }
134
+ ;
135
+ get hasNext() {
136
+ return this._hasNext;
131
137
  }
132
138
  ngOnInit() {
133
- if (this.label === 'root')
134
- return;
135
- _fromResize(this.next).subscribe((width) => {
136
- this.isMainHidden = width > this.minNextWidth;
137
- this.cd.detectChanges();
139
+ this.service.register(this);
140
+ this.refresh();
141
+ combineLatest([
142
+ this.hasNext$,
143
+ fromResize(this.nextElementRef),
144
+ this.refresh$,
145
+ ]).pipe(takeUntil(this.destroy$)).subscribe(([hasNext, width]) => {
146
+ this.mode = this.resolveMode(hasNext, width);
147
+ setTimeout(() => this.service.propagate(this), 0);
138
148
  });
139
149
  }
150
+ ngOnDestroy() {
151
+ this.service.unregister(this);
152
+ this.destroy$.next();
153
+ }
154
+ refresh() {
155
+ this.refresh$.next();
156
+ }
157
+ resolveMode(hasNext, width) {
158
+ if (hasNext && width <= this.minNextWidth)
159
+ return Mode.BOTH;
160
+ return hasNext ? Mode.NEXT : Mode.MAIN;
161
+ }
140
162
  }
141
- LineUpFrame.ɵfac = function LineUpFrame_Factory(t) { return new (t || LineUpFrame)(i0.ɵɵdirectiveInject(LineUpService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
163
+ LineUpFrame.ɵfac = function LineUpFrame_Factory(t) { return new (t || LineUpFrame)(i0.ɵɵdirectiveInject(LineUpFrameService)); };
142
164
  LineUpFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LineUpFrame, selectors: [["frames-line-up"]], viewQuery: function LineUpFrame_Query(rf, ctx) {
143
165
  if (rf & 1) {
144
166
  i0.ɵɵviewQuery(_c0, 7);
145
167
  }
146
168
  if (rf & 2) {
147
169
  let _t;
148
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.next = _t.first);
170
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextElementRef = _t.first);
149
171
  }
150
172
  }, hostVars: 1, hostBindings: function LineUpFrame_HostBindings(rf, ctx) {
151
173
  if (rf & 2) {
152
- i0.ɵɵattribute("is-main-hidden", ctx.isMainHidden);
174
+ i0.ɵɵattribute("has-next", ctx.hasNext);
153
175
  }
154
- }, 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) {
176
+ }, inputs: { hasNext: "hasNext", minNextWidth: "minNextWidth" }, ngContentSelectors: _c2, decls: 6, vars: 2, consts: [[1, "main"], ["main", ""], [1, "next"], ["next", ""]], template: function LineUpFrame_Template(rf, ctx) {
155
177
  if (rf & 1) {
156
178
  i0.ɵɵprojectionDef(_c1);
157
179
  i0.ɵɵelementStart(0, "div", 0, 1);
@@ -162,25 +184,23 @@ LineUpFrame.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LineUpFrame, se
162
184
  i0.ɵɵelementEnd();
163
185
  }
164
186
  if (rf & 2) {
165
- i0.ɵɵproperty("@visibleHidden", ctx.isMainHidden ? "hidden" : "visible");
187
+ i0.ɵɵproperty("@modeChangeForMain", ctx.mode);
166
188
  i0.ɵɵadvance(3);
167
- i0.ɵɵproperty("@pageChange", ctx.page);
189
+ i0.ɵɵproperty("@modeChangeForNext", ctx.mode);
168
190
  }
169
- }, 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 } });
191
+ }, 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 } });
170
192
  (function () {
171
193
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LineUpFrame, [{
172
194
  type: Component,
173
- 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"] }]
174
- }], function () { return [{ type: LineUpService }, { type: i0.ChangeDetectorRef }]; }, { isMainHidden: [{
195
+ 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"] }]
196
+ }], function () { return [{ type: LineUpFrameService }]; }, { hasNext: [{
175
197
  type: HostBinding,
176
- args: ['attr.is-main-hidden']
177
- }], label: [{
178
- type: Input
179
- }], outlet: [{
198
+ args: ['attr.has-next']
199
+ }, {
180
200
  type: Input
181
201
  }], minNextWidth: [{
182
202
  type: Input
183
- }], next: [{
203
+ }], nextElementRef: [{
184
204
  type: ViewChild,
185
205
  args: ['next', { static: true }]
186
206
  }] });
@@ -216,5 +236,5 @@ LineUpModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[
216
236
  * Generated bundle index. Do not edit.
217
237
  */
218
238
 
219
- export { LineUpFrame, LineUpModule };
239
+ export { LineUpFrame, LineUpFrameService, LineUpModule };
220
240
  //# 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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"}