@koobiq/components 18.18.0 → 18.19.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 (207) hide show
  1. package/actions-panel/actions-panel-config.d.ts +79 -0
  2. package/actions-panel/actions-panel-container.d.ts +90 -0
  3. package/actions-panel/actions-panel-container.scss +33 -0
  4. package/actions-panel/actions-panel-ref.d.ts +31 -0
  5. package/actions-panel/actions-panel-tokens.scss +13 -0
  6. package/actions-panel/actions-panel.d.ts +144 -0
  7. package/actions-panel/index.d.ts +5 -0
  8. package/actions-panel/module.d.ts +7 -0
  9. package/core/animation/animation.d.ts +26 -0
  10. package/core/form-field/form-field-ref.d.ts +4 -0
  11. package/core/locales/en-US.d.ts +45 -0
  12. package/core/locales/es-LA.d.ts +45 -0
  13. package/core/locales/fa-IR.d.ts +45 -0
  14. package/core/locales/locale-service.d.ts +315 -0
  15. package/core/locales/pt-BR.d.ts +45 -0
  16. package/core/locales/ru-RU.d.ts +45 -0
  17. package/core/locales/tk-TM.d.ts +45 -0
  18. package/core/locales/types.d.ts +6 -0
  19. package/core/locales/zh-CN.d.ts +45 -0
  20. package/core/option/option.d.ts +3 -1
  21. package/datepicker/calendar.component.d.ts +9 -0
  22. package/datepicker/datepicker-input.directive.d.ts +5 -1
  23. package/dl/dl.component.d.ts +3 -4
  24. package/dropdown/_dropdown-theme.scss +9 -10
  25. package/dropdown/dropdown-tokens.scss +1 -0
  26. package/dropdown/dropdown.component.d.ts +1 -1
  27. package/dropdown/dropdown.scss +5 -0
  28. package/dropdown/dropdown.types.d.ts +3 -1
  29. package/esm2022/accordion/accordion-trigger.component.mjs +1 -1
  30. package/esm2022/actions-panel/actions-panel-config.mjs +55 -0
  31. package/esm2022/actions-panel/actions-panel-container.mjs +217 -0
  32. package/esm2022/actions-panel/actions-panel-ref.mjs +62 -0
  33. package/esm2022/actions-panel/actions-panel.mjs +220 -0
  34. package/esm2022/actions-panel/index.mjs +6 -0
  35. package/esm2022/actions-panel/koobiq-components-actions-panel.mjs +5 -0
  36. package/esm2022/actions-panel/module.mjs +21 -0
  37. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  38. package/esm2022/code-block/code-block.mjs +1 -1
  39. package/esm2022/core/animation/animation.mjs +29 -1
  40. package/esm2022/core/common-behaviors/common-module.mjs +2 -2
  41. package/esm2022/core/form-field/form-field-ref.mjs +1 -1
  42. package/esm2022/core/locales/en-US.mjs +46 -1
  43. package/esm2022/core/locales/es-LA.mjs +46 -1
  44. package/esm2022/core/locales/fa-IR.mjs +46 -1
  45. package/esm2022/core/locales/pt-BR.mjs +46 -1
  46. package/esm2022/core/locales/ru-RU.mjs +46 -1
  47. package/esm2022/core/locales/tk-TM.mjs +46 -1
  48. package/esm2022/core/locales/types.mjs +1 -1
  49. package/esm2022/core/locales/zh-CN.mjs +46 -1
  50. package/esm2022/core/option/option.mjs +10 -3
  51. package/esm2022/core/version.mjs +2 -2
  52. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  53. package/esm2022/datepicker/calendar.component.mjs +20 -2
  54. package/esm2022/datepicker/datepicker-input.directive.mjs +22 -11
  55. package/esm2022/datepicker/datepicker-toggle.component.mjs +1 -1
  56. package/esm2022/dl/dl.component.mjs +8 -7
  57. package/esm2022/dropdown/dropdown-item.component.mjs +1 -1
  58. package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -1
  59. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  60. package/esm2022/dropdown/dropdown.types.mjs +1 -1
  61. package/esm2022/file-upload/multiple-file-upload.component.mjs +1 -1
  62. package/esm2022/file-upload/single-file-upload.component.mjs +1 -1
  63. package/esm2022/filter-bar/filter-bar-button.mjs +30 -0
  64. package/esm2022/filter-bar/filter-bar.mjs +168 -0
  65. package/esm2022/filter-bar/filter-bar.module.mjs +65 -0
  66. package/esm2022/filter-bar/filter-bar.types.mjs +13 -0
  67. package/esm2022/filter-bar/filter-refresher.mjs +34 -0
  68. package/esm2022/filter-bar/filter-reset.mjs +38 -0
  69. package/esm2022/filter-bar/filter-search.mjs +132 -0
  70. package/esm2022/filter-bar/filters.mjs +225 -0
  71. package/esm2022/filter-bar/index.mjs +2 -0
  72. package/esm2022/filter-bar/koobiq-components-filter-bar.mjs +5 -0
  73. package/esm2022/filter-bar/pipe-add.mjs +129 -0
  74. package/esm2022/filter-bar/pipe.directive.mjs +55 -0
  75. package/esm2022/filter-bar/pipes/base-pipe.mjs +106 -0
  76. package/esm2022/filter-bar/pipes/pipe-button.mjs +59 -0
  77. package/esm2022/filter-bar/pipes/pipe-date.mjs +171 -0
  78. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +172 -0
  79. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +96 -0
  80. package/esm2022/filter-bar/pipes/pipe-select.mjs +88 -0
  81. package/esm2022/filter-bar/pipes/pipe-state.mjs +45 -0
  82. package/esm2022/filter-bar/pipes/pipe-text.mjs +89 -0
  83. package/esm2022/filter-bar/pipes/pipe-title.mjs +96 -0
  84. package/esm2022/filter-bar/public-api.mjs +20 -0
  85. package/esm2022/form-field/cleaner.mjs +1 -1
  86. package/esm2022/form-field/form-field.mjs +13 -6
  87. package/esm2022/form-field/password-hint.mjs +1 -1
  88. package/esm2022/form-field/password-toggle.mjs +1 -1
  89. package/esm2022/form-field/stepper.mjs +1 -1
  90. package/esm2022/icon/icon-button.component.mjs +9 -9
  91. package/esm2022/icon/icon-item.component.mjs +10 -10
  92. package/esm2022/icon/icon.component.mjs +9 -12
  93. package/esm2022/list/list-selection.component.mjs +4 -4
  94. package/esm2022/modal/modal.component.mjs +1 -1
  95. package/esm2022/modal/modal.directive.mjs +1 -1
  96. package/esm2022/navbar/navbar-item.component.mjs +2 -2
  97. package/esm2022/overflow-items/overflow-items.mjs +129 -139
  98. package/esm2022/popover/popover.component.mjs +30 -10
  99. package/esm2022/select/select.component.mjs +3 -3
  100. package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
  101. package/esm2022/tabs/tab-header.component.mjs +1 -1
  102. package/esm2022/tabs/tab-nav-bar.mjs +2 -2
  103. package/esm2022/textarea/textarea.component.mjs +9 -5
  104. package/esm2022/timezone/timezone-select.component.mjs +2 -2
  105. package/esm2022/title/title.directive.mjs +12 -5
  106. package/esm2022/toast/toast.component.mjs +2 -2
  107. package/esm2022/tree/toggle.mjs +1 -1
  108. package/esm2022/tree/tree-option.component.mjs +3 -2
  109. package/esm2022/tree/tree-selection.component.mjs +4 -2
  110. package/esm2022/tree-select/tree-select.component.mjs +6 -4
  111. package/fesm2022/koobiq-components-accordion.mjs +1 -1
  112. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  113. package/fesm2022/koobiq-components-actions-panel.mjs +567 -0
  114. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -0
  115. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  116. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  117. package/fesm2022/koobiq-components-code-block.mjs +1 -1
  118. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  119. package/fesm2022/koobiq-components-core.mjs +355 -5
  120. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  121. package/fesm2022/koobiq-components-datepicker.mjs +40 -12
  122. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  123. package/fesm2022/koobiq-components-dl.mjs +7 -6
  124. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  125. package/fesm2022/koobiq-components-dropdown.mjs +9 -4
  126. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  127. package/fesm2022/koobiq-components-file-upload.mjs +2 -2
  128. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  129. package/fesm2022/koobiq-components-filter-bar.mjs +1596 -0
  130. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -0
  131. package/fesm2022/koobiq-components-form-field.mjs +16 -9
  132. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  133. package/fesm2022/koobiq-components-icon.mjs +23 -26
  134. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  135. package/fesm2022/koobiq-components-list.mjs +3 -3
  136. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  137. package/fesm2022/koobiq-components-modal.mjs +2 -2
  138. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  139. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  140. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  141. package/fesm2022/koobiq-components-overflow-items.mjs +129 -139
  142. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  143. package/fesm2022/koobiq-components-popover.mjs +29 -9
  144. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  145. package/fesm2022/koobiq-components-select.mjs +2 -2
  146. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  147. package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
  148. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-tabs.mjs +2 -2
  150. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-textarea.mjs +8 -4
  152. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  154. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-title.mjs +11 -4
  156. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-toast.mjs +1 -1
  158. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-tree-select.mjs +5 -3
  160. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-tree.mjs +6 -3
  162. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  163. package/filter-bar/_filter-bar-theme.scss +61 -0
  164. package/filter-bar/filter-bar-button.d.ts +8 -0
  165. package/filter-bar/filter-bar.d.ts +55 -0
  166. package/filter-bar/filter-bar.module.d.ts +17 -0
  167. package/filter-bar/filter-bar.scss +60 -0
  168. package/filter-bar/filter-bar.types.d.ts +97 -0
  169. package/filter-bar/filter-refresher.d.ts +5 -0
  170. package/filter-bar/filter-refresher.scss +6 -0
  171. package/filter-bar/filter-reset.d.ts +11 -0
  172. package/filter-bar/filter-search.d.ts +25 -0
  173. package/filter-bar/filter-search.scss +14 -0
  174. package/filter-bar/filters.d.ts +72 -0
  175. package/filter-bar/filters.scss +92 -0
  176. package/filter-bar/index.d.ts +1 -0
  177. package/filter-bar/pipe-add.d.ts +18 -0
  178. package/filter-bar/pipe-add.scss +5 -0
  179. package/filter-bar/pipe.directive.d.ts +13 -0
  180. package/filter-bar/pipes/base-pipe.d.ts +40 -0
  181. package/filter-bar/pipes/base-pipe.scss +117 -0
  182. package/filter-bar/pipes/pipe-button.d.ts +13 -0
  183. package/filter-bar/pipes/pipe-button.scss +5 -0
  184. package/filter-bar/pipes/pipe-date.d.ts +41 -0
  185. package/filter-bar/pipes/pipe-date.scss +132 -0
  186. package/filter-bar/pipes/pipe-datetime.d.ts +41 -0
  187. package/filter-bar/pipes/pipe-multi-select.d.ts +22 -0
  188. package/filter-bar/pipes/pipe-multiselect.scss +15 -0
  189. package/filter-bar/pipes/pipe-select.d.ts +21 -0
  190. package/filter-bar/pipes/pipe-select.scss +3 -0
  191. package/filter-bar/pipes/pipe-state.d.ts +14 -0
  192. package/filter-bar/pipes/pipe-text.d.ts +19 -0
  193. package/filter-bar/pipes/pipe-title.d.ts +25 -0
  194. package/filter-bar/public-api.d.ts +19 -0
  195. package/form-field/form-field.d.ts +6 -1
  196. package/form-field/form-field.scss +1 -0
  197. package/icon/icon-button.component.d.ts +5 -3
  198. package/icon/icon-item.component.d.ts +5 -3
  199. package/icon/icon.component.d.ts +5 -4
  200. package/overflow-items/overflow-items.d.ts +59 -71
  201. package/package.json +18 -6
  202. package/popover/popover.component.d.ts +6 -1
  203. package/schematics/ng-add/index.js +5 -5
  204. package/select/_select-theme.scss +9 -1
  205. package/textarea/textarea.component.d.ts +2 -1
  206. package/title/title.directive.d.ts +2 -0
  207. package/tree-select/_tree-select-theme.scss +9 -1
@@ -115,7 +115,7 @@ class KbqAccordionTrigger {
115
115
  }
116
116
 
117
117
  <ng-content />
118
- `, isInline: true, styles: [".kbq-accordion-trigger{display:flex;flex-direction:row;align-items:center;background:transparent;border:none;outline:none}.kbq-accordion-trigger .kbq-accordion-trigger__icon{padding:var(--kbq-size-xxs);transition:transform .3s ease-out}.kbq-accordion-trigger .kbq-accordion-trigger__badge,.kbq-accordion-trigger .kbq-accordion-trigger__caption{margin-top:var(--kbq-size-xxs);margin-right:var(--kbq-size-s)}.kbq-accordion-trigger .kbq-accordion-trigger__action{padding:var(--kbq-size-xxs) var(--kbq-size-xxs) var(--kbq-size-3xs);margin-bottom:calc(-1 * var(--kbq-size-3xs))}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger.kbq-accordion-trigger_fill{padding:var(--kbq-accordion-size-item-header-variant-fill-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_fill[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug{flex-direction:row-reverse;justify-content:flex-end;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between{flex-direction:row-reverse;justify-content:space-between;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(-180deg)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}button.kbq-accordion-trigger{flex:1}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor"] }], encapsulation: i0.ViewEncapsulation.None }); }
118
+ `, isInline: true, styles: [".kbq-accordion-trigger{display:flex;flex-direction:row;align-items:center;background:transparent;border:none;outline:none}.kbq-accordion-trigger .kbq-accordion-trigger__icon{padding:var(--kbq-size-xxs);transition:transform .3s ease-out}.kbq-accordion-trigger .kbq-accordion-trigger__badge,.kbq-accordion-trigger .kbq-accordion-trigger__caption{margin-top:var(--kbq-size-xxs);margin-right:var(--kbq-size-s)}.kbq-accordion-trigger .kbq-accordion-trigger__action{padding:var(--kbq-size-xxs) var(--kbq-size-xxs) var(--kbq-size-3xs);margin-bottom:calc(-1 * var(--kbq-size-3xs))}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger.kbq-accordion-trigger_fill{padding:var(--kbq-accordion-size-item-header-variant-fill-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_fill[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug{flex-direction:row-reverse;justify-content:flex-end;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between{flex-direction:row-reverse;justify-content:space-between;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(-180deg)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)!important}button.kbq-accordion-trigger{flex:1}\n", ".kbq-accordion{--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
119
119
  }
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqAccordionTrigger, decorators: [{
121
121
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion.component.ts","../../../packages/components/accordion/accordion-trigger.component.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { RdxAccordionContentDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n hostDirectives: [RdxAccordionContentDirective],\n host: {\n class: 'kbq-accordion-content'\n }\n})\nexport class KbqAccordionContent {}\n","import { Directive } from '@angular/core';\nimport { RdxAccordionHeaderDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n hostDirectives: [RdxAccordionHeaderDirective],\n host: {\n class: 'kbq-accordion-header'\n }\n})\nexport class KbqAccordionHeader {}\n","import { Directive } from '@angular/core';\nimport { RdxAccordionItemDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n hostDirectives: [\n {\n directive: RdxAccordionItemDirective,\n inputs: ['expanded', 'disabled', 'value'],\n outputs: ['closed', 'opened', 'expandedChange']\n }\n ],\n host: {\n class: 'kbq-accordion-item'\n }\n})\nexport class KbqAccordionItem {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { RdxAccordionRootDirective, RdxAccordionType } from '@radix-ng/primitives/accordion';\n\nexport type KbqAccordionType = RdxAccordionType;\n\nexport enum KbqAccordionVariant {\n fill = 'fill',\n hug = 'hug',\n hugSpaceBetween = 'hugSpaceBetween'\n}\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.component.scss', 'accordion-tokens.scss'],\n hostDirectives: [\n {\n directive: RdxAccordionRootDirective,\n inputs: ['type', 'collapsible', 'disabled', 'defaultValue', 'value'],\n outputs: ['onValueChange']\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion'\n }\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit {\n protected readonly focusMonitor = inject(FocusMonitor);\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n\n @Input() variant: KbqAccordionVariant | string = KbqAccordionVariant.fill;\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n}\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { RdxAccordionTriggerDirective } from '@radix-ng/primitives/accordion';\nimport { KbqAccordion, KbqAccordionVariant } from './accordion.component';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n template: `\n @if (isHugSpaceBetween) {\n <i class=\"kbq-accordion-trigger__icon\" kbq-icon=\"kbq-chevron-down-s_16\"></i>\n } @else {\n <i class=\"kbq-accordion-trigger__icon\" kbq-icon=\"kbq-chevron-right-s_16\"></i>\n }\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.component.scss', 'accordion-tokens.scss'],\n hostDirectives: [RdxAccordionTriggerDirective],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n }\n})\nexport class KbqAccordionTrigger {\n protected accordion: KbqAccordion = inject(KbqAccordion);\n\n get isFill(): boolean {\n return this.accordion.variant === KbqAccordionVariant.fill;\n }\n\n get isHug(): boolean {\n return this.accordion.variant === KbqAccordionVariant.hug;\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant === KbqAccordionVariant.hugSpaceBetween;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger.component';\nimport { KbqAccordion } from './accordion.component';\n\n@NgModule({\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n imports: [\n KbqIcon\n ],\n declarations: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-accordion.mjs","sources":["../../../packages/components/accordion/accordion-content.ts","../../../packages/components/accordion/accordion-header.ts","../../../packages/components/accordion/accordion-item.ts","../../../packages/components/accordion/accordion.component.ts","../../../packages/components/accordion/accordion-trigger.component.ts","../../../packages/components/accordion/accordion.module.ts","../../../packages/components/accordion/koobiq-components-accordion.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { RdxAccordionContentDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-content, [kbq-accordion-content]',\n hostDirectives: [RdxAccordionContentDirective],\n host: {\n class: 'kbq-accordion-content'\n }\n})\nexport class KbqAccordionContent {}\n","import { Directive } from '@angular/core';\nimport { RdxAccordionHeaderDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-header, [kbq-accordion-header]',\n hostDirectives: [RdxAccordionHeaderDirective],\n host: {\n class: 'kbq-accordion-header'\n }\n})\nexport class KbqAccordionHeader {}\n","import { Directive } from '@angular/core';\nimport { RdxAccordionItemDirective } from '@radix-ng/primitives/accordion';\n\n@Directive({\n selector: 'kbq-accordion-item, [kbq-accordion-item]',\n hostDirectives: [\n {\n directive: RdxAccordionItemDirective,\n inputs: ['expanded', 'disabled', 'value'],\n outputs: ['closed', 'opened', 'expandedChange']\n }\n ],\n host: {\n class: 'kbq-accordion-item'\n }\n})\nexport class KbqAccordionItem {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n ViewEncapsulation\n} from '@angular/core';\nimport { RdxAccordionRootDirective, RdxAccordionType } from '@radix-ng/primitives/accordion';\n\nexport type KbqAccordionType = RdxAccordionType;\n\nexport enum KbqAccordionVariant {\n fill = 'fill',\n hug = 'hug',\n hugSpaceBetween = 'hugSpaceBetween'\n}\n\n@Component({\n selector: 'kbq-accordion, [kbq-accordion]',\n template: '<ng-content />',\n styleUrls: ['accordion.component.scss', 'accordion-tokens.scss'],\n hostDirectives: [\n {\n directive: RdxAccordionRootDirective,\n inputs: ['type', 'collapsible', 'disabled', 'defaultValue', 'value'],\n outputs: ['onValueChange']\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion'\n }\n})\nexport class KbqAccordion implements OnDestroy, AfterViewInit {\n protected readonly focusMonitor = inject(FocusMonitor);\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n\n @Input() variant: KbqAccordionVariant | string = KbqAccordionVariant.fill;\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.elementRef, true);\n }\n\n ngOnDestroy(): void {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n}\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { RdxAccordionTriggerDirective } from '@radix-ng/primitives/accordion';\nimport { KbqAccordion, KbqAccordionVariant } from './accordion.component';\n\n@Component({\n selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]',\n template: `\n @if (isHugSpaceBetween) {\n <i class=\"kbq-accordion-trigger__icon\" kbq-icon=\"kbq-chevron-down-s_16\"></i>\n } @else {\n <i class=\"kbq-accordion-trigger__icon\" kbq-icon=\"kbq-chevron-right-s_16\"></i>\n }\n\n <ng-content />\n `,\n styleUrls: ['accordion-trigger.component.scss', 'accordion-tokens.scss'],\n hostDirectives: [RdxAccordionTriggerDirective],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-accordion-trigger',\n '[class.kbq-accordion-trigger_fill]': 'isFill',\n '[class.kbq-accordion-trigger_hug]': 'isHug',\n '[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'\n }\n})\nexport class KbqAccordionTrigger {\n protected accordion: KbqAccordion = inject(KbqAccordion);\n\n get isFill(): boolean {\n return this.accordion.variant === KbqAccordionVariant.fill;\n }\n\n get isHug(): boolean {\n return this.accordion.variant === KbqAccordionVariant.hug;\n }\n\n get isHugSpaceBetween(): boolean {\n return this.accordion.variant === KbqAccordionVariant.hugSpaceBetween;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqAccordionContent } from './accordion-content';\nimport { KbqAccordionHeader } from './accordion-header';\nimport { KbqAccordionItem } from './accordion-item';\nimport { KbqAccordionTrigger } from './accordion-trigger.component';\nimport { KbqAccordion } from './accordion.component';\n\n@NgModule({\n exports: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ],\n imports: [\n KbqIcon\n ],\n declarations: [\n KbqAccordion,\n KbqAccordionContent,\n KbqAccordionHeader,\n KbqAccordionItem,\n KbqAccordionTrigger\n ]\n})\nexport class KbqAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,567 @@
1
+ import * as i2$1 from '@angular/cdk/bidi';
2
+ import * as i4$1 from '@angular/cdk/dialog';
3
+ import { CdkDialogContainer, Dialog, DEFAULT_DIALOG_CONFIG, DIALOG_SCROLL_STRATEGY } from '@angular/cdk/dialog';
4
+ import * as i1$1 from '@angular/cdk/overlay';
5
+ import { OverlayContainer, Overlay } from '@angular/cdk/overlay';
6
+ import * as i3$1 from '@angular/common';
7
+ import { DOCUMENT } from '@angular/common';
8
+ import * as i0 from '@angular/core';
9
+ import { InjectionToken, EventEmitter, inject, Renderer2, Component, ChangeDetectionStrategy, ViewEncapsulation, Injectable, ANIMATION_MODULE_TYPE, Inject, Optional, SkipSelf, Injector, NgModule } from '@angular/core';
10
+ import { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';
11
+ import { CdkPortalOutlet } from '@angular/cdk/portal';
12
+ import { toSignal } from '@angular/core/rxjs-interop';
13
+ import * as i2 from '@koobiq/components/button';
14
+ import { KbqButtonModule } from '@koobiq/components/button';
15
+ import { ruRULocaleData, KbqAnimationDurations, KbqAnimationCurves, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
16
+ import * as i1 from '@koobiq/components/divider';
17
+ import { KbqDividerModule } from '@koobiq/components/divider';
18
+ import * as i3 from '@koobiq/components/icon';
19
+ import { KbqIconModule } from '@koobiq/components/icon';
20
+ import * as i4 from '@koobiq/components/tooltip';
21
+ import { KbqToolTipModule } from '@koobiq/components/tooltip';
22
+ import { map, of, Subject, filter, take } from 'rxjs';
23
+
24
+ /** Injection token that can be used to specify default actions panel config. */
25
+ const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken('KBQ_ACTIONS_PANEL_DEFAULT_CONFIG', { factory: () => new KbqActionsPanelConfig() });
26
+ /**
27
+ * Utility for providing default actions panel config.
28
+ *
29
+ * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`
30
+ */
31
+ const kbqActionsPanelDefaultConfigProvider = (config) => ({
32
+ provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,
33
+ useValue: config
34
+ });
35
+ /**
36
+ * Configuration for opened actions panel.
37
+ * Based on cdk `DialogConfig`.
38
+ *
39
+ * @see `DialogConfig`
40
+ *
41
+ */
42
+ class KbqActionsPanelConfig {
43
+ constructor() {
44
+ /**
45
+ * Data being injected into the child component.
46
+ *
47
+ * @see `KBQ_ACTIONS_PANEL_DATA`
48
+ */
49
+ this.data = null;
50
+ /**
51
+ * Whether the actions panel should be closed of when the user goes backwards/forwards in history.
52
+ * NOTE! This does not apply to router navigation.
53
+ *
54
+ * @default true
55
+ */
56
+ this.closeOnNavigation = true;
57
+ /**
58
+ * Direction of the text in the actions panel.
59
+ *
60
+ * @default 'ltr'
61
+ */
62
+ this.direction = 'ltr';
63
+ /**
64
+ * Scroll strategy to be used for the actions panel.
65
+ *
66
+ * @default `RepositionScrollStrategy`
67
+ */
68
+ this.scrollStrategy = (overlay) => overlay.scrollStrategies.reposition();
69
+ /**
70
+ * Whether the user can use ESC or click on close button to close the actions panel.
71
+ *
72
+ * @default false
73
+ */
74
+ this.disableClose = false;
75
+ }
76
+ }
77
+
78
+ /** Localization configuration provider. */
79
+ const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken('KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION', { factory: () => ruRULocaleData.actionsPanel });
80
+ /** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */
81
+ const kbqActionsPanelLocaleConfigurationProvider = (configuration) => ({
82
+ provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,
83
+ useValue: configuration
84
+ });
85
+ /**
86
+ * Animation that shows and hides the actions panel.
87
+ */
88
+ const KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [
89
+ state('void, hidden', style({ transform: 'translateY(100%)' })),
90
+ state('visible', style({ transform: 'translateY(0%)' })),
91
+ transition('visible => void, visible => hidden', group([
92
+ animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),
93
+ query('@*', animateChild(), { optional: true })
94
+ ])),
95
+ transition('void => visible', group([
96
+ animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),
97
+ query('@*', animateChild(), { optional: true })
98
+ ]))
99
+ ]);
100
+ /**
101
+ * Internal component that wraps user-provided actions panel content.
102
+ *
103
+ * @docs-private
104
+ */
105
+ class KbqActionsPanelContainer extends CdkDialogContainer {
106
+ constructor() {
107
+ super(...arguments);
108
+ /**
109
+ * The state of the actions panel animations.
110
+ *
111
+ * @docs-private
112
+ */
113
+ this.animationState = 'void';
114
+ /**
115
+ * Emits whenever the state of the animation changes.
116
+ *
117
+ * @docs-private
118
+ */
119
+ this.animationStateChanged = new EventEmitter();
120
+ /**
121
+ * Actions panel configuration.
122
+ *
123
+ * @docs-private
124
+ */
125
+ this.config = inject(KbqActionsPanelConfig);
126
+ this.actionsPanel = inject(KbqActionsPanel);
127
+ this.renderer = inject(Renderer2);
128
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
129
+ /**
130
+ * Actions panel locale configuration.
131
+ *
132
+ * @docs-private
133
+ */
134
+ this.localeConfiguration = toSignal(this.localeService
135
+ ? this.localeService.changes.pipe(map(() => this.localeService.getParams('actionsPanel')))
136
+ : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION)));
137
+ }
138
+ ngOnDestroy() {
139
+ super.ngOnDestroy();
140
+ this.destroyed = true;
141
+ }
142
+ /**
143
+ * Close the actions panel.
144
+ *
145
+ * @docs-private
146
+ */
147
+ close() {
148
+ this.actionsPanel.close();
149
+ }
150
+ /**
151
+ * Start animation of the actions panel entrance into view.
152
+ *
153
+ * @docs-private
154
+ */
155
+ startOpenAnimation() {
156
+ if (!this.destroyed) {
157
+ this.animationState = 'visible';
158
+ // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to
159
+ // call `markForCheck` to ensure the host view is refreshed eventually.
160
+ this._changeDetectorRef.markForCheck();
161
+ this._changeDetectorRef.detectChanges();
162
+ }
163
+ }
164
+ /**
165
+ * Start animation of the actions panel exiting from view.
166
+ *
167
+ * @docs-private
168
+ */
169
+ startCloseAnimation() {
170
+ if (!this.destroyed) {
171
+ this.animationState = 'hidden';
172
+ this._changeDetectorRef.markForCheck();
173
+ }
174
+ }
175
+ /**
176
+ * Handles animation done events.
177
+ *
178
+ * @docs-private
179
+ */
180
+ onAnimationDone(event) {
181
+ if (event.toState === 'visible') {
182
+ this._trapFocus();
183
+ }
184
+ this.animationStateChanged.emit(event);
185
+ }
186
+ /**
187
+ * Handles animation start events.
188
+ *
189
+ * @docs-private
190
+ */
191
+ onAnimationStart(event) {
192
+ this.animationStateChanged.emit(event);
193
+ }
194
+ /**
195
+ * Handles escape key events.
196
+ *
197
+ * @docs-private
198
+ */
199
+ handleEscape(event) {
200
+ if (!this.config.disableClose) {
201
+ event.preventDefault();
202
+ this.close();
203
+ }
204
+ }
205
+ /**
206
+ * @docs-private
207
+ */
208
+ _contentAttached() {
209
+ this.applyContainerClass();
210
+ }
211
+ applyContainerClass() {
212
+ const { containerClass } = this.config;
213
+ if (containerClass) {
214
+ if (Array.isArray(containerClass)) {
215
+ containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));
216
+ }
217
+ else {
218
+ this.renderer.addClass(this._elementRef.nativeElement, containerClass);
219
+ }
220
+ }
221
+ }
222
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
223
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqActionsPanelContainer, isStandalone: true, selector: "kbq-actions-panel-container", host: { listeners: { "@state.start": "onAnimationStart($event)", "@state.done": "onAnimationDone($event)", "keydown.escape": "handleEscape($event)" }, properties: { "class.kbq-actions-panel-container_rtl": "config.direction === \"rtl\"", "@state": "animationState" }, classAttribute: "kbq-actions-panel-container" }, usesInheritance: true, ngImport: i0, template: `
224
+ <div class="kbq-actions-panel-container__content">
225
+ <ng-template cdkPortalOutlet />
226
+ </div>
227
+ @if (!config.disableClose) {
228
+ <kbq-divider class="kbq-actions-panel-container__vertical-divider" [vertical]="true" />
229
+ <button
230
+ class="kbq-actions-panel-container__close-button"
231
+ [kbqTooltip]="localeConfiguration()!.closeTooltip"
232
+ [kbqTooltipOffset]="16"
233
+ (click)="close()"
234
+ color="contrast"
235
+ kbq-button
236
+ >
237
+ <i kbq-icon="kbq-xmark-circle_16"></i>
238
+ </button>
239
+ }
240
+ `, isInline: true, styles: [".kbq-actions-panel-container{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var(--kbq-line-contrast-fade);--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);margin:var(--kbq-actions-panel-margin);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-overlay-container{position:relative}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i1.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i4.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }], animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
241
+ }
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelContainer, decorators: [{
243
+ type: Component,
244
+ args: [{ standalone: true, imports: [
245
+ CdkPortalOutlet,
246
+ KbqDividerModule,
247
+ KbqButtonModule,
248
+ KbqIconModule,
249
+ KbqToolTipModule
250
+ ], selector: 'kbq-actions-panel-container', template: `
251
+ <div class="kbq-actions-panel-container__content">
252
+ <ng-template cdkPortalOutlet />
253
+ </div>
254
+ @if (!config.disableClose) {
255
+ <kbq-divider class="kbq-actions-panel-container__vertical-divider" [vertical]="true" />
256
+ <button
257
+ class="kbq-actions-panel-container__close-button"
258
+ [kbqTooltip]="localeConfiguration()!.closeTooltip"
259
+ [kbqTooltipOffset]="16"
260
+ (click)="close()"
261
+ color="contrast"
262
+ kbq-button
263
+ >
264
+ <i kbq-icon="kbq-xmark-circle_16"></i>
265
+ </button>
266
+ }
267
+ `, animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], host: {
268
+ class: 'kbq-actions-panel-container',
269
+ '[class.kbq-actions-panel-container_rtl]': 'config.direction === "rtl"',
270
+ '[@state]': 'animationState',
271
+ '(@state.start)': 'onAnimationStart($event)',
272
+ '(@state.done)': 'onAnimationDone($event)',
273
+ '(keydown.escape)': 'handleEscape($event)'
274
+ }, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, styles: [".kbq-actions-panel-container{--kbq-actions-panel-background-color: var(--kbq-background-contrast);--kbq-actions-panel-text-color: var(--kbq-foreground-on-contrast);--kbq-actions-panel-padding: var(--kbq-size-s);--kbq-actions-panel-margin: var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-l);--kbq-actions-panel-border-radius: var(--kbq-size-l);--kbq-actions-panel-box-shadow: var(--kbq-shadow-card);--kbq-actions-panel-height: var(--kbq-size-5xl);--kbq-actions-panel-vertical-divider-background-color: var(--kbq-line-contrast-fade);--kbq-actions-panel-vertical-divider-height: var(--kbq-size-m);--kbq-actions-panel-vertical-divider-margin: 0 var(--kbq-size-s)}\n", ".kbq-actions-panel-container{background:var(--kbq-actions-panel-background-color);color:var(--kbq-actions-panel-text-color);box-shadow:var(--kbq-actions-panel-box-shadow);height:var(--kbq-actions-panel-height);padding:var(--kbq-actions-panel-padding);margin:var(--kbq-actions-panel-margin);border-radius:var(--kbq-actions-panel-border-radius);display:flex;flex-grow:1;align-items:center;overflow:hidden;box-sizing:border-box}.kbq-actions-panel-container .kbq-actions-panel-container__content{display:flex;align-items:center;flex-grow:1;overflow:hidden}.kbq-actions-panel-container .kbq-actions-panel-container__vertical-divider{background-color:var(--kbq-actions-panel-vertical-divider-background-color);height:var(--kbq-actions-panel-vertical-divider-height)!important;margin:var(--kbq-actions-panel-vertical-divider-margin)}.kbq-actions-panel-overlay-container{position:relative}\n"] }]
275
+ }] });
276
+
277
+ /**
278
+ * Reference to actions panel opened by `KbqActionsPanel` service.
279
+ */
280
+ class KbqActionsPanelRef {
281
+ /** Gets an observable that is notified when the actions panel is finished closing. */
282
+ get afterClosed() {
283
+ return this.dialogRef.closed;
284
+ }
285
+ /** Gets an observable that emits when keydown events are targeted on the overlay. */
286
+ get keydownEvents() {
287
+ return this.dialogRef.keydownEvents;
288
+ }
289
+ /** Gets an observable that is notified when the actions panel has opened and appeared. */
290
+ get afterOpened() {
291
+ return this._afterOpened;
292
+ }
293
+ constructor(dialogRef, containerInstance) {
294
+ this.dialogRef = dialogRef;
295
+ this._afterOpened = new Subject();
296
+ this.containerInstance = containerInstance;
297
+ this.handleAnimation();
298
+ this.handleOverlayDetachments();
299
+ }
300
+ /** Closes the actions panel. */
301
+ close(result) {
302
+ if (!this.containerInstance) {
303
+ return;
304
+ }
305
+ this.containerInstance.animationStateChanged
306
+ .pipe(filter((event) => event.phaseName === 'start'), take(1))
307
+ .subscribe(({ totalTime }) => {
308
+ this.closeAnimationFallbackTimeout = setTimeout(() => this.dialogRef.close(this.result), totalTime + 100);
309
+ });
310
+ this.result = result;
311
+ this.containerInstance.startCloseAnimation();
312
+ this.containerInstance = null;
313
+ }
314
+ handleAnimation() {
315
+ this.containerInstance.animationStateChanged
316
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'visible'), take(1))
317
+ .subscribe(() => {
318
+ this._afterOpened.next();
319
+ this._afterOpened.complete();
320
+ });
321
+ this.containerInstance.animationStateChanged
322
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'hidden'), take(1))
323
+ .subscribe(() => {
324
+ clearTimeout(this.closeAnimationFallbackTimeout);
325
+ this.dialogRef.close(this.result);
326
+ });
327
+ }
328
+ handleOverlayDetachments() {
329
+ this.dialogRef.overlayRef
330
+ .detachments()
331
+ .pipe(take(1))
332
+ .subscribe(() => {
333
+ this.dialogRef.close(this.result);
334
+ });
335
+ }
336
+ }
337
+
338
+ /** Injection token that can be used to access the data that was passed in to actions panel. */
339
+ const KBQ_ACTIONS_PANEL_DATA = new InjectionToken('KBQ_ACTIONS_PANEL_DATA');
340
+ /**
341
+ * Selector for actions panel overlay.
342
+ *
343
+ * @docs-private
344
+ */
345
+ const KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR = 'kbq-actions-panel-overlay';
346
+ /**
347
+ * Selector for custom actions panel overlay container.
348
+ *
349
+ * @docs-private
350
+ */
351
+ const KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR = 'kbq-actions-panel-overlay-container';
352
+ /**
353
+ * Actions panel overlay container.
354
+ *
355
+ * @docs-private
356
+ */
357
+ class KbqActionsPanelOverlayContainer extends OverlayContainer {
358
+ /**
359
+ * Set the overlay container element.
360
+ *
361
+ * @param containerElement The element into which the overlay will be rendered.
362
+ * @returns Current OverlayContainer instance.
363
+ */
364
+ setContainerElement(containerElement) {
365
+ this._containerElement = containerElement || this._document.body.querySelector('.cdk-overlay-container');
366
+ }
367
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlayContainer, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
368
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlayContainer, providedIn: 'root' }); }
369
+ }
370
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlayContainer, decorators: [{
371
+ type: Injectable,
372
+ args: [{ providedIn: 'root' }]
373
+ }] });
374
+ /**
375
+ * Actions panel overlay.
376
+ *
377
+ * @docs-private
378
+ */
379
+ class KbqActionsPanelOverlay extends Overlay {
380
+ constructor(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType) {
381
+ super(scrollStrategies, overlayContainer, componentFactoryResolver, positionBuilder, keyboardDispatcher, injector, ngZone, document, directionality, location, outsideClickDispatcher, animationsModuleType);
382
+ this.overlayContainer = overlayContainer;
383
+ }
384
+ /**
385
+ * Set the overlay container element.
386
+ *
387
+ * @param containerElement The element into which the overlay will be rendered.
388
+ * @returns Current Overlay instance.
389
+ */
390
+ setOverlayContainerElement(containerElement) {
391
+ this.overlayContainer.setContainerElement(containerElement);
392
+ }
393
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlay, deps: [{ token: i1$1.ScrollStrategyOptions }, { token: KbqActionsPanelOverlayContainer }, { token: i0.ComponentFactoryResolver }, { token: i1$1.OverlayPositionBuilder }, { token: i1$1.OverlayKeyboardDispatcher }, { token: i0.Injector }, { token: i0.NgZone }, { token: DOCUMENT }, { token: i2$1.Directionality }, { token: i3$1.Location }, { token: i1$1.OverlayOutsideClickDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
394
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlay, providedIn: 'root' }); }
395
+ }
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelOverlay, decorators: [{
397
+ type: Injectable,
398
+ args: [{ providedIn: 'root' }]
399
+ }], ctorParameters: () => [{ type: i1$1.ScrollStrategyOptions }, { type: KbqActionsPanelOverlayContainer }, { type: i0.ComponentFactoryResolver }, { type: i1$1.OverlayPositionBuilder }, { type: i1$1.OverlayKeyboardDispatcher }, { type: i0.Injector }, { type: i0.NgZone }, { type: undefined, decorators: [{
400
+ type: Inject,
401
+ args: [DOCUMENT]
402
+ }] }, { type: i2$1.Directionality }, { type: i3$1.Location }, { type: i1$1.OverlayOutsideClickDispatcher }, { type: undefined, decorators: [{
403
+ type: Inject,
404
+ args: [ANIMATION_MODULE_TYPE]
405
+ }, {
406
+ type: Optional
407
+ }] }] });
408
+ /**
409
+ * Actions panel dialog service.
410
+ *
411
+ * @docs-private
412
+ */
413
+ class KbqActionsPanelDialog extends Dialog {
414
+ constructor(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy) {
415
+ super(overlay, injector, defaultOptions, parentDialog, overlayContainer, scrollStrategy);
416
+ this.overlay = overlay;
417
+ }
418
+ /**
419
+ * Set the dialog overlay container element.
420
+ *
421
+ * @param containerElement The element into which the overlay will be rendered.
422
+ * @returns Current dialog instance.
423
+ */
424
+ setOverlayContainerElement(containerElement) {
425
+ this.overlay.setOverlayContainerElement(containerElement);
426
+ return this;
427
+ }
428
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelDialog, deps: [{ token: KbqActionsPanelOverlay }, { token: i0.Injector }, { token: DEFAULT_DIALOG_CONFIG, optional: true }, { token: i4$1.Dialog, optional: true, skipSelf: true }, { token: KbqActionsPanelOverlayContainer }, { token: DIALOG_SCROLL_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable }); }
429
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelDialog, providedIn: 'root' }); }
430
+ }
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelDialog, decorators: [{
432
+ type: Injectable,
433
+ args: [{ providedIn: 'root' }]
434
+ }], ctorParameters: () => [{ type: KbqActionsPanelOverlay }, { type: i0.Injector }, { type: i4$1.DialogConfig, decorators: [{
435
+ type: Optional
436
+ }, {
437
+ type: Inject,
438
+ args: [DEFAULT_DIALOG_CONFIG]
439
+ }] }, { type: i4$1.Dialog, decorators: [{
440
+ type: Optional
441
+ }, {
442
+ type: SkipSelf
443
+ }] }, { type: KbqActionsPanelOverlayContainer }, { type: undefined, decorators: [{
444
+ type: Inject,
445
+ args: [DIALOG_SCROLL_STRATEGY]
446
+ }] }] });
447
+ /**
448
+ * Service for opening actions panel.
449
+ */
450
+ class KbqActionsPanel {
451
+ constructor() {
452
+ this.injector = inject(Injector);
453
+ this.overlay = inject(KbqActionsPanelOverlay);
454
+ this.dialog = inject(KbqActionsPanelDialog);
455
+ this.defaultConfig = inject(KBQ_ACTIONS_PANEL_DEFAULT_CONFIG);
456
+ /** The reference to the currently opened actions panel. */
457
+ this.openedActionsPanelRef = null;
458
+ }
459
+ ngOnDestroy() {
460
+ this.close();
461
+ }
462
+ open(componentOrTemplateRef, config) {
463
+ const _config = {
464
+ ...this.defaultConfig,
465
+ ...config
466
+ };
467
+ const actionsPanelRef = this.openDialog(componentOrTemplateRef, _config);
468
+ actionsPanelRef.afterClosed.subscribe(() => {
469
+ if (this.openedActionsPanelRef === actionsPanelRef) {
470
+ this.openedActionsPanelRef = null;
471
+ }
472
+ });
473
+ if (this.openedActionsPanelRef) {
474
+ this.openedActionsPanelRef.afterClosed.subscribe(() => {
475
+ actionsPanelRef.containerInstance?.startOpenAnimation();
476
+ });
477
+ this.openedActionsPanelRef.close();
478
+ }
479
+ else {
480
+ actionsPanelRef.containerInstance.startOpenAnimation();
481
+ }
482
+ this.openedActionsPanelRef = actionsPanelRef;
483
+ return actionsPanelRef;
484
+ }
485
+ /** Closes the currently opened actions panel. */
486
+ close(result) {
487
+ this.openedActionsPanelRef?.close(result);
488
+ }
489
+ openDialog(componentOrTemplateRef, config = {}) {
490
+ let actionsPanelRef;
491
+ const overlayContainerElement = config.overlayContainer?.nativeElement;
492
+ overlayContainerElement?.classList.add(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
493
+ const dialogRef = this.dialog
494
+ .setOverlayContainerElement(overlayContainerElement)
495
+ .open(componentOrTemplateRef, {
496
+ ...config,
497
+ container: KbqActionsPanelContainer,
498
+ restoreFocus: false,
499
+ autoFocus: null,
500
+ hasBackdrop: false,
501
+ // Disable closing since we need to sync it up to the animation ourselves
502
+ closeOnOverlayDetachments: false,
503
+ // Disable closing since we need to sync it up to the animation ourselves
504
+ closeOnDestroy: false,
505
+ // Disable closing since we need to sync it up to the animation ourselves
506
+ disableClose: true,
507
+ scrollStrategy: config.scrollStrategy && config.scrollStrategy(this.overlay),
508
+ positionStrategy: this.overlay.position().global().centerHorizontally().bottom(),
509
+ templateContext: () => {
510
+ return {
511
+ $implicit: config.data,
512
+ data: config.data,
513
+ actionsPanelRef
514
+ };
515
+ },
516
+ injector: Injector.create({
517
+ parent: config.injector || this.injector,
518
+ providers: [{ provide: KbqActionsPanelConfig, useValue: config }]
519
+ }),
520
+ providers: (dialogRef, _dialogConfig, container) => {
521
+ actionsPanelRef = new KbqActionsPanelRef(dialogRef, container);
522
+ return [
523
+ { provide: KbqActionsPanelRef, useValue: actionsPanelRef },
524
+ { provide: KBQ_ACTIONS_PANEL_DATA, useValue: config.data }
525
+ ];
526
+ }
527
+ });
528
+ dialogRef.addPanelClass(KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR);
529
+ if (config.overlayPanelClass) {
530
+ dialogRef.addPanelClass(config.overlayPanelClass);
531
+ }
532
+ actionsPanelRef?.afterClosed.subscribe(() => {
533
+ overlayContainerElement?.classList.remove(KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR);
534
+ });
535
+ return actionsPanelRef;
536
+ }
537
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
538
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanel, providedIn: 'root' }); }
539
+ }
540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanel, decorators: [{
541
+ type: Injectable,
542
+ args: [{ providedIn: 'root' }]
543
+ }] });
544
+
545
+ const COMPONENTS = [
546
+ KbqActionsPanelContainer
547
+ ];
548
+ class KbqActionsPanelModule {
549
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
550
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelModule, imports: [KbqActionsPanelContainer], exports: [KbqActionsPanelContainer] }); }
551
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelModule, providers: [KbqActionsPanel], imports: [COMPONENTS] }); }
552
+ }
553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelModule, decorators: [{
554
+ type: NgModule,
555
+ args: [{
556
+ imports: COMPONENTS,
557
+ exports: COMPONENTS,
558
+ providers: [KbqActionsPanel]
559
+ }]
560
+ }] });
561
+
562
+ /**
563
+ * Generated bundle index. Do not edit.
564
+ */
565
+
566
+ export { KBQ_ACTIONS_PANEL_DATA, KBQ_ACTIONS_PANEL_DEFAULT_CONFIG, KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION, KBQ_ACTIONS_PANEL_OVERLAY_CONTAINER_SELECTOR, KBQ_ACTIONS_PANEL_OVERLAY_SELECTOR, KbqActionsPanel, KbqActionsPanelConfig, KbqActionsPanelContainer, KbqActionsPanelDialog, KbqActionsPanelModule, KbqActionsPanelOverlay, KbqActionsPanelOverlayContainer, KbqActionsPanelRef, kbqActionsPanelDefaultConfigProvider, kbqActionsPanelLocaleConfigurationProvider };
567
+ //# sourceMappingURL=koobiq-components-actions-panel.mjs.map