@koobiq/components 18.17.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 (208) 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 +151 -195
  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 +152 -196
  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 +68 -82
  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
  208. package/tree-select/tree-select.component.d.ts +1 -1
@@ -1,5 +1,4 @@
1
- @use '../core/styles/theming/theming' as *;
2
- @use '../core/styles/common/tokens' as *;
1
+ @use '../core/styles/common/tokens';
3
2
 
4
3
  @mixin kbq-dropdown-item-state($style-name) {
5
4
  background: var(--kbq-list-#{$style-name}-container-background);
@@ -8,10 +7,6 @@
8
7
  .kbq-icon:not(.kbq-icon-button, .kbq-icon-item) {
9
8
  color: var(--kbq-list-#{$style-name}-text-color);
10
9
  }
11
-
12
- .kbq-dropdown-item__caption {
13
- color: var(--kbq-list-#{$style-name}-caption-color);
14
- }
15
10
  }
16
11
 
17
12
  @mixin kbq-dropdown-theme() {
@@ -23,6 +18,10 @@
23
18
  .kbq-dropdown-item {
24
19
  @include kbq-dropdown-item-state(default);
25
20
 
21
+ .kbq-dropdown-item__caption {
22
+ color: var(--kbq-dropdown-item-caption-color);
23
+ }
24
+
26
25
  &.kbq-dropdown-item_highlighted,
27
26
  &:hover:not(.kbq-disabled) {
28
27
  @include kbq-dropdown-item-state(states-hover);
@@ -70,19 +69,19 @@
70
69
  @mixin kbq-dropdown-typography() {
71
70
  .kbq-dropdown-item,
72
71
  .kbq-dropdown__content {
73
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
72
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
74
73
 
75
74
  .kbq-dropdown-item__caption {
76
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
75
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
77
76
  }
78
77
  }
79
78
 
80
79
  .kbq-dropdown__group-header {
81
- @include kbq-typography-level-to-styles-css-variables(typography, big-strong);
80
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, big-strong);
82
81
 
83
82
  // @deprecated, use <kbq-optgroup label="Label" /> instead. Will be removed in the next major release
84
83
  &.kbq-dropdown__group-header_small {
85
- @include kbq-typography-level-to-styles-css-variables(typography, caps-compact-strong);
84
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, caps-compact-strong);
86
85
  }
87
86
  }
88
87
  }
@@ -9,6 +9,7 @@
9
9
  --kbq-dropdown-container-background: var(--kbq-background-card);
10
10
  --kbq-dropdown-container-shadow: var(--kbq-shadow-popup);
11
11
  --kbq-dropdown-item-border-radius: var(--kbq-size-xs);
12
+ --kbq-dropdown-item-caption-color: var(--kbq-foreground-contrast-secondary);
12
13
  /* LIST THEME TOKENS */
13
14
  @include list-tokens.list-theme-tokens;
14
15
  }
@@ -111,7 +111,7 @@ export declare class KbqDropdown implements AfterContentInit, KbqDropdownPanel,
111
111
  close(): void;
112
112
  /**
113
113
  * Sets up a stream that will keep track of any newly-added menu items and will update the list
114
- * of direct descendants. We collect the descendants this way, because `_allItems` can include
114
+ * of direct descendants. We collect the descendants this way, because `items` can include
115
115
  * items that are part of child menus, and using a custom way of registering items is unreliable
116
116
  * when it comes to maintaining the item order.
117
117
  */
@@ -53,6 +53,11 @@
53
53
  left: calc(100% + var(--kbq-size-3xs)); // outline size
54
54
  }
55
55
  }
56
+
57
+ .kbq-divider {
58
+ margin-left: calc(var(--kbq-size-xxs) * -1);
59
+ margin-right: calc(var(--kbq-size-xxs) * -1);
60
+ }
56
61
  }
57
62
 
58
63
  .kbq-dropdown__content {
@@ -1,7 +1,8 @@
1
1
  import { FocusOrigin } from '@angular/cdk/a11y';
2
2
  import { Direction } from '@angular/cdk/bidi';
3
- import { EventEmitter, InjectionToken, TemplateRef } from '@angular/core';
3
+ import { EventEmitter, InjectionToken, QueryList, TemplateRef } from '@angular/core';
4
4
  import { KbqDropdownContent } from './dropdown-content.directive';
5
+ import { KbqDropdownItem } from './dropdown-item.component';
5
6
  export type DropdownPositionX = 'before' | 'after';
6
7
  export type DropdownPositionY = 'above' | 'below';
7
8
  /** Reason why the menu was closed. */
@@ -23,6 +24,7 @@ export interface KbqDropdownPanel {
23
24
  lazyContent?: KbqDropdownContent;
24
25
  backdropClass?: string;
25
26
  hasBackdrop?: boolean;
27
+ items: QueryList<KbqDropdownItem>;
26
28
  focusFirstItem(origin?: FocusOrigin): void;
27
29
  resetActiveItem(): void;
28
30
  setPositionClasses?(x: DropdownPositionX, y: DropdownPositionY): void;
@@ -26,7 +26,7 @@ export class KbqAccordionTrigger {
26
26
  }
27
27
 
28
28
  <ng-content />
29
- `, 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 }); }
29
+ `, 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 }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqAccordionTrigger, decorators: [{
32
32
  type: Component,
@@ -0,0 +1,55 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /** Injection token that can be used to specify default actions panel config. */
3
+ export const KBQ_ACTIONS_PANEL_DEFAULT_CONFIG = new InjectionToken('KBQ_ACTIONS_PANEL_DEFAULT_CONFIG', { factory: () => new KbqActionsPanelConfig() });
4
+ /**
5
+ * Utility for providing default actions panel config.
6
+ *
7
+ * @see `KBQ_ACTIONS_PANEL_DEFAULT_CONFIG`
8
+ */
9
+ export const kbqActionsPanelDefaultConfigProvider = (config) => ({
10
+ provide: KBQ_ACTIONS_PANEL_DEFAULT_CONFIG,
11
+ useValue: config
12
+ });
13
+ /**
14
+ * Configuration for opened actions panel.
15
+ * Based on cdk `DialogConfig`.
16
+ *
17
+ * @see `DialogConfig`
18
+ *
19
+ */
20
+ export class KbqActionsPanelConfig {
21
+ constructor() {
22
+ /**
23
+ * Data being injected into the child component.
24
+ *
25
+ * @see `KBQ_ACTIONS_PANEL_DATA`
26
+ */
27
+ this.data = null;
28
+ /**
29
+ * Whether the actions panel should be closed of when the user goes backwards/forwards in history.
30
+ * NOTE! This does not apply to router navigation.
31
+ *
32
+ * @default true
33
+ */
34
+ this.closeOnNavigation = true;
35
+ /**
36
+ * Direction of the text in the actions panel.
37
+ *
38
+ * @default 'ltr'
39
+ */
40
+ this.direction = 'ltr';
41
+ /**
42
+ * Scroll strategy to be used for the actions panel.
43
+ *
44
+ * @default `RepositionScrollStrategy`
45
+ */
46
+ this.scrollStrategy = (overlay) => overlay.scrollStrategies.reposition();
47
+ /**
48
+ * Whether the user can use ESC or click on close button to close the actions panel.
49
+ *
50
+ * @default false
51
+ */
52
+ this.disableClose = false;
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FjdGlvbnMtcGFuZWwvYWN0aW9ucy1wYW5lbC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLGNBQWMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFFL0UsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUM5RCxrQ0FBa0MsRUFDbEMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxxQkFBcUIsRUFBRSxFQUFFLENBQ2pELENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsQ0FBSSxNQUFnQyxFQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0M7SUFDekMsUUFBUSxFQUFFLE1BQU07Q0FDbkIsQ0FBQyxDQUFDO0FBRUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUFsQztRQU1JOzs7O1dBSUc7UUFDSCxTQUFJLEdBQWMsSUFBSSxDQUFDO1FBS3ZCOzs7OztXQUtHO1FBQ0gsc0JBQWlCLEdBQWEsSUFBSSxDQUFDO1FBNkJuQzs7OztXQUlHO1FBQ0gsY0FBUyxHQUFlLEtBQUssQ0FBQztRQUU5Qjs7OztXQUlHO1FBQ0gsbUJBQWMsR0FBMEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUUzRzs7OztXQUlHO1FBQ0gsaUJBQVksR0FBYSxLQUFLLENBQUM7SUFDbkMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgT3ZlcmxheSwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGRlZmF1bHQgYWN0aW9ucyBwYW5lbCBjb25maWcuICovXG5leHBvcnQgY29uc3QgS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48S2JxQWN0aW9uc1BhbmVsQ29uZmlnPihcbiAgICAnS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUcnLFxuICAgIHsgZmFjdG9yeTogKCkgPT4gbmV3IEticUFjdGlvbnNQYW5lbENvbmZpZygpIH1cbik7XG5cbi8qKlxuICogVXRpbGl0eSBmb3IgcHJvdmlkaW5nIGRlZmF1bHQgYWN0aW9ucyBwYW5lbCBjb25maWcuXG4gKlxuICogQHNlZSBgS0JRX0FDVElPTlNfUEFORUxfREVGQVVMVF9DT05GSUdgXG4gKi9cbmV4cG9ydCBjb25zdCBrYnFBY3Rpb25zUGFuZWxEZWZhdWx0Q29uZmlnUHJvdmlkZXIgPSA8RD4oY29uZmlnOiBLYnFBY3Rpb25zUGFuZWxDb25maWc8RD4pOiBQcm92aWRlciA9PiAoe1xuICAgIHByb3ZpZGU6IEtCUV9BQ1RJT05TX1BBTkVMX0RFRkFVTFRfQ09ORklHLFxuICAgIHVzZVZhbHVlOiBjb25maWdcbn0pO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIG9wZW5lZCBhY3Rpb25zIHBhbmVsLlxuICogQmFzZWQgb24gY2RrIGBEaWFsb2dDb25maWdgLlxuICpcbiAqIEBzZWUgYERpYWxvZ0NvbmZpZ2BcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBLYnFBY3Rpb25zUGFuZWxDb25maWc8RCA9IHVua25vd24+IHtcbiAgICAvKipcbiAgICAgKiBJbmplY3RvciB1c2VkIGZvciB0aGUgaW5zdGFudGlhdGlvbiBvZiB0aGUgY29tcG9uZW50IHRvIGJlIGF0dGFjaGVkLlxuICAgICAqL1xuICAgIGluamVjdG9yPzogSW5qZWN0b3I7XG5cbiAgICAvKipcbiAgICAgKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgYEtCUV9BQ1RJT05TX1BBTkVMX0RBVEFgXG4gICAgICovXG4gICAgZGF0YT86IEQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgYWN0aW9ucyBwYW5lbCBjb250YWluZXIuICovXG4gICAgY29udGFpbmVyQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGFjdGlvbnMgcGFuZWwgc2hvdWxkIGJlIGNsb3NlZCBvZiB3aGVuIHRoZSB1c2VyIGdvZXMgYmFja3dhcmRzL2ZvcndhcmRzIGluIGhpc3RvcnkuXG4gICAgICogTk9URSEgVGhpcyBkb2VzIG5vdCBhcHBseSB0byByb3V0ZXIgbmF2aWdhdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBjbG9zZU9uTmF2aWdhdGlvbj86IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmxheSBjb250YWluZXIgZWxlbWVudCBpbiB3aGljaCB0aGUgYWN0aW9ucyBwYW5lbCBhcmUgcmVuZGVyZWQuXG4gICAgICovXG4gICAgb3ZlcmxheUNvbnRhaW5lcj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogRXh0cmEgQ1NTIGNsYXNzZXMgdG8gYmUgYWRkZWQgdG8gdGhlIG92ZXJsYXkgcGFuZWwuXG4gICAgICovXG4gICAgb3ZlcmxheVBhbmVsQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqL1xuICAgIHdpZHRoPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWluLXdpZHRoIG9mIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBhc3N1bWVzIHBpeGVsIHVuaXRzLlxuICAgICAqL1xuICAgIG1pbldpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWF4LXdpZHRoIG9mIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBhc3N1bWVzIHBpeGVsIHVuaXRzLlxuICAgICAqL1xuICAgIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRGlyZWN0aW9uIG9mIHRoZSB0ZXh0IGluIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ2x0cidcbiAgICAgKi9cbiAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb24gPSAnbHRyJztcblxuICAgIC8qKlxuICAgICAqIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGBSZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3lgXG4gICAgICovXG4gICAgc2Nyb2xsU3RyYXRlZ3k/OiAob3ZlcmxheTogT3ZlcmxheSkgPT4gU2Nyb2xsU3RyYXRlZ3kgPSAob3ZlcmxheSkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHVzZXIgY2FuIHVzZSBFU0Mgb3IgY2xpY2sgb24gY2xvc2UgYnV0dG9uIHRvIGNsb3NlIHRoZSBhY3Rpb25zIHBhbmVsLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBkaXNhYmxlQ2xvc2U/OiBib29sZWFuID0gZmFsc2U7XG59XG4iXX0=
@@ -0,0 +1,217 @@
1
+ import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
2
+ import { CdkDialogContainer } from '@angular/cdk/dialog';
3
+ import { CdkPortalOutlet } from '@angular/cdk/portal';
4
+ import { ChangeDetectionStrategy, Component, EventEmitter, inject, InjectionToken, Renderer2, ViewEncapsulation } from '@angular/core';
5
+ import { toSignal } from '@angular/core/rxjs-interop';
6
+ import { KbqButtonModule } from '@koobiq/components/button';
7
+ import { KBQ_LOCALE_SERVICE, KbqAnimationCurves, KbqAnimationDurations, ruRULocaleData } from '@koobiq/components/core';
8
+ import { KbqDividerModule } from '@koobiq/components/divider';
9
+ import { KbqIconModule } from '@koobiq/components/icon';
10
+ import { KbqToolTipModule } from '@koobiq/components/tooltip';
11
+ import { map, of } from 'rxjs';
12
+ import { KbqActionsPanel } from './actions-panel';
13
+ import { KbqActionsPanelConfig } from './actions-panel-config';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@koobiq/components/divider";
16
+ import * as i2 from "@koobiq/components/button";
17
+ import * as i3 from "@koobiq/components/icon";
18
+ import * as i4 from "@koobiq/components/tooltip";
19
+ /** Localization configuration provider. */
20
+ export const KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION = new InjectionToken('KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION', { factory: () => ruRULocaleData.actionsPanel });
21
+ /** Utility provider for `KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION`. */
22
+ export const kbqActionsPanelLocaleConfigurationProvider = (configuration) => ({
23
+ provide: KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION,
24
+ useValue: configuration
25
+ });
26
+ /**
27
+ * Animation that shows and hides the actions panel.
28
+ */
29
+ const KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION = trigger('state', [
30
+ state('void, hidden', style({ transform: 'translateY(100%)' })),
31
+ state('visible', style({ transform: 'translateY(0%)' })),
32
+ transition('visible => void, visible => hidden', group([
33
+ animate(`${KbqAnimationDurations.Entering} ${KbqAnimationCurves.StandardCurve}`),
34
+ query('@*', animateChild(), { optional: true })
35
+ ])),
36
+ transition('void => visible', group([
37
+ animate(`${KbqAnimationDurations.Exiting} ${KbqAnimationCurves.StandardCurve}`),
38
+ query('@*', animateChild(), { optional: true })
39
+ ]))
40
+ ]);
41
+ /**
42
+ * Internal component that wraps user-provided actions panel content.
43
+ *
44
+ * @docs-private
45
+ */
46
+ export class KbqActionsPanelContainer extends CdkDialogContainer {
47
+ constructor() {
48
+ super(...arguments);
49
+ /**
50
+ * The state of the actions panel animations.
51
+ *
52
+ * @docs-private
53
+ */
54
+ this.animationState = 'void';
55
+ /**
56
+ * Emits whenever the state of the animation changes.
57
+ *
58
+ * @docs-private
59
+ */
60
+ this.animationStateChanged = new EventEmitter();
61
+ /**
62
+ * Actions panel configuration.
63
+ *
64
+ * @docs-private
65
+ */
66
+ this.config = inject(KbqActionsPanelConfig);
67
+ this.actionsPanel = inject(KbqActionsPanel);
68
+ this.renderer = inject(Renderer2);
69
+ this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
70
+ /**
71
+ * Actions panel locale configuration.
72
+ *
73
+ * @docs-private
74
+ */
75
+ this.localeConfiguration = toSignal(this.localeService
76
+ ? this.localeService.changes.pipe(map(() => this.localeService.getParams('actionsPanel')))
77
+ : of(inject(KBQ_ACTIONS_PANEL_LOCALE_CONFIGURATION)));
78
+ }
79
+ ngOnDestroy() {
80
+ super.ngOnDestroy();
81
+ this.destroyed = true;
82
+ }
83
+ /**
84
+ * Close the actions panel.
85
+ *
86
+ * @docs-private
87
+ */
88
+ close() {
89
+ this.actionsPanel.close();
90
+ }
91
+ /**
92
+ * Start animation of the actions panel entrance into view.
93
+ *
94
+ * @docs-private
95
+ */
96
+ startOpenAnimation() {
97
+ if (!this.destroyed) {
98
+ this.animationState = 'visible';
99
+ // animationState lives in host bindings and `detectChanges` does not refresh host bindings so we have to
100
+ // call `markForCheck` to ensure the host view is refreshed eventually.
101
+ this._changeDetectorRef.markForCheck();
102
+ this._changeDetectorRef.detectChanges();
103
+ }
104
+ }
105
+ /**
106
+ * Start animation of the actions panel exiting from view.
107
+ *
108
+ * @docs-private
109
+ */
110
+ startCloseAnimation() {
111
+ if (!this.destroyed) {
112
+ this.animationState = 'hidden';
113
+ this._changeDetectorRef.markForCheck();
114
+ }
115
+ }
116
+ /**
117
+ * Handles animation done events.
118
+ *
119
+ * @docs-private
120
+ */
121
+ onAnimationDone(event) {
122
+ if (event.toState === 'visible') {
123
+ this._trapFocus();
124
+ }
125
+ this.animationStateChanged.emit(event);
126
+ }
127
+ /**
128
+ * Handles animation start events.
129
+ *
130
+ * @docs-private
131
+ */
132
+ onAnimationStart(event) {
133
+ this.animationStateChanged.emit(event);
134
+ }
135
+ /**
136
+ * Handles escape key events.
137
+ *
138
+ * @docs-private
139
+ */
140
+ handleEscape(event) {
141
+ if (!this.config.disableClose) {
142
+ event.preventDefault();
143
+ this.close();
144
+ }
145
+ }
146
+ /**
147
+ * @docs-private
148
+ */
149
+ _contentAttached() {
150
+ this.applyContainerClass();
151
+ }
152
+ applyContainerClass() {
153
+ const { containerClass } = this.config;
154
+ if (containerClass) {
155
+ if (Array.isArray(containerClass)) {
156
+ containerClass.forEach((cssClass) => this.renderer.addClass(this._elementRef.nativeElement, cssClass));
157
+ }
158
+ else {
159
+ this.renderer.addClass(this._elementRef.nativeElement, containerClass);
160
+ }
161
+ }
162
+ }
163
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
164
+ /** @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: `
165
+ <div class="kbq-actions-panel-container__content">
166
+ <ng-template cdkPortalOutlet />
167
+ </div>
168
+ @if (!config.disableClose) {
169
+ <kbq-divider class="kbq-actions-panel-container__vertical-divider" [vertical]="true" />
170
+ <button
171
+ class="kbq-actions-panel-container__close-button"
172
+ [kbqTooltip]="localeConfiguration()!.closeTooltip"
173
+ [kbqTooltipOffset]="16"
174
+ (click)="close()"
175
+ color="contrast"
176
+ kbq-button
177
+ >
178
+ <i kbq-icon="kbq-xmark-circle_16"></i>
179
+ </button>
180
+ }
181
+ `, 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 }); }
182
+ }
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqActionsPanelContainer, decorators: [{
184
+ type: Component,
185
+ args: [{ standalone: true, imports: [
186
+ CdkPortalOutlet,
187
+ KbqDividerModule,
188
+ KbqButtonModule,
189
+ KbqIconModule,
190
+ KbqToolTipModule
191
+ ], selector: 'kbq-actions-panel-container', template: `
192
+ <div class="kbq-actions-panel-container__content">
193
+ <ng-template cdkPortalOutlet />
194
+ </div>
195
+ @if (!config.disableClose) {
196
+ <kbq-divider class="kbq-actions-panel-container__vertical-divider" [vertical]="true" />
197
+ <button
198
+ class="kbq-actions-panel-container__close-button"
199
+ [kbqTooltip]="localeConfiguration()!.closeTooltip"
200
+ [kbqTooltipOffset]="16"
201
+ (click)="close()"
202
+ color="contrast"
203
+ kbq-button
204
+ >
205
+ <i kbq-icon="kbq-xmark-circle_16"></i>
206
+ </button>
207
+ }
208
+ `, animations: [KBQ_ACTIONS_PANEL_CONTAINER_ANIMATION], host: {
209
+ class: 'kbq-actions-panel-container',
210
+ '[class.kbq-actions-panel-container_rtl]': 'config.direction === "rtl"',
211
+ '[@state]': 'animationState',
212
+ '(@state.start)': 'onAnimationStart($event)',
213
+ '(@state.done)': 'onAnimationDone($event)',
214
+ '(keydown.escape)': 'handleEscape($event)'
215
+ }, 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"] }]
216
+ }] });
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FjdGlvbnMtcGFuZWwvYWN0aW9ucy1wYW5lbC1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxZQUFZLEVBRVosS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBR2QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFDSCxrQkFBa0IsRUFFbEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFC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ZCxcbiAgICBBbmltYXRpb25FdmVudCxcbiAgICBncm91cCxcbiAgICBxdWVyeSxcbiAgICBzdGF0ZSxcbiAgICBzdHlsZSxcbiAgICB0cmFuc2l0aW9uLFxuICAgIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtEaWFsb2dDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvZGlhbG9nJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBPbkRlc3Ryb3ksXG4gICAgUHJvdmlkZXIsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLYnFCdXR0b25Nb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgS0JRX0xPQ0FMRV9TRVJWSUNFLFxuICAgIEticUFjdGlvbnNQYW5lbExvY2FsZUNvbmZpZ3VyYXRpb24sXG4gICAgS2JxQW5pbWF0aW9uQ3VydmVzLFxuICAgIEticUFuaW1hdGlvbkR1cmF0aW9ucyxcbiAgICBydVJVTG9jYWxlRGF0YVxufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RpdmlkZXInO1xuaW1wb3J0IHsgS2JxSWNvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEticVRvb2xUaXBNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBtYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLYnFBY3Rpb25zUGFuZWwgfSBmcm9tICcuL2FjdGlvbnMtcGFuZWwnO1xuaW1wb3J0IHsgS2JxQWN0aW9uc1BhbmVsQ29uZmlnIH0gZnJvbSAnLi9hY3Rpb25zLXBhbmVsLWNvbmZpZyc7XG5cbi8qKiBMb2NhbGl6YXRpb24gY29uZmlndXJhdGlvbiBwcm92aWRlci4gKi9cbmV4cG9ydCBjb25zdCBLQlFfQUNUSU9OU19QQU5FTF9MT0NBTEVfQ09ORklHVVJBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxLYnFBY3Rpb25zUGFuZWxMb2NhbGVDb25maWd1cmF0aW9uPihcbiAgICAnS0JRX0FDVElPTlNfUEFORUxfTE9DQUxFX0NPTkZJR1VSQVRJT04nLFxuICAgIHsgZmFjdG9yeTogKCkgPT4gcnVSVUxvY2FsZURhdGEuYWN0aW9uc1BhbmVsIH1cbik7XG5cbi8qKiBVdGlsaXR5IHByb3ZpZGVyIGZvciBgS0JRX0FDVElPTlNfUEFORUxfTE9DQUxFX0NPTkZJR1VSQVRJT05gLiAqL1xuZXhwb3J0IGNvbnN0IGticUFjdGlvbnNQYW5lbExvY2FsZUNvbmZpZ3VyYXRpb25Qcm92aWRlciA9IChcbiAgICBjb25maWd1cmF0aW9uOiBLYnFBY3Rpb25zUGFuZWxMb2NhbGVDb25maWd1cmF0aW9uXG4pOiBQcm92aWRlciA9PiAoe1xuICAgIHByb3ZpZGU6IEtCUV9BQ1RJT05TX1BBTkVMX0xPQ0FMRV9DT05GSUdVUkFUSU9OLFxuICAgIHVzZVZhbHVlOiBjb25maWd1cmF0aW9uXG59KTtcblxuLyoqXG4gKiBBbmltYXRpb24gdGhhdCBzaG93cyBhbmQgaGlkZXMgdGhlIGFjdGlvbnMgcGFuZWwuXG4gKi9cbmNvbnN0IEtCUV9BQ1RJT05TX1BBTkVMX0NPTlRBSU5FUl9BTklNQVRJT04gPSB0cmlnZ2VyKCdzdGF0ZScsIFtcbiAgICBzdGF0ZSgndm9pZCwgaGlkZGVuJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDEwMCUpJyB9KSksXG4gICAgc3RhdGUoJ3Zpc2libGUnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCUpJyB9KSksXG4gICAgdHJhbnNpdGlvbihcbiAgICAgICAgJ3Zpc2libGUgPT4gdm9pZCwgdmlzaWJsZSA9PiBoaWRkZW4nLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgICBhbmltYXRlKGAke0ticUFuaW1hdGlvbkR1cmF0aW9ucy5FbnRlcmluZ30gJHtLYnFBbmltYXRpb25DdXJ2ZXMuU3RhbmRhcmRDdXJ2ZX1gKSxcbiAgICAgICAgICAgIHF1ZXJ5KCdAKicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pXG4gICAgICAgIF0pXG4gICAgKSxcbiAgICB0cmFuc2l0aW9uKFxuICAgICAgICAndm9pZCA9PiB2aXNpYmxlJyxcbiAgICAgICAgZ3JvdXAoW1xuICAgICAgICAgICAgYW5pbWF0ZShgJHtLYnFBbmltYXRpb25EdXJhdGlvbnMuRXhpdGluZ30gJHtLYnFBbmltYXRpb25DdXJ2ZXMuU3RhbmRhcmRDdXJ2ZX1gKSxcbiAgICAgICAgICAgIHF1ZXJ5KCdAKicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pXG4gICAgICAgIF0pXG4gICAgKVxuXSk7XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG9uZW50IHRoYXQgd3JhcHMgdXNlci1wcm92aWRlZCBhY3Rpb25zIHBhbmVsIGNvbnRlbnQuXG4gKlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ2RrUG9ydGFsT3V0bGV0LFxuICAgICAgICBLYnFEaXZpZGVyTW9kdWxlLFxuICAgICAgICBLYnFCdXR0b25Nb2R1bGUsXG4gICAgICAgIEticUljb25Nb2R1bGUsXG4gICAgICAgIEticVRvb2xUaXBNb2R1bGVcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2JxLWFjdGlvbnMtcGFuZWwtY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWFjdGlvbnMtcGFuZWwtY29udGFpbmVyX19jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsT3V0bGV0IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKCFjb25maWcuZGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgICA8a2JxLWRpdmlkZXIgY2xhc3M9XCJrYnEtYWN0aW9ucy1wYW5lbC1jb250YWluZXJfX3ZlcnRpY2FsLWRpdmlkZXJcIiBbdmVydGljYWxdPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtYWN0aW9ucy1wYW5lbC1jb250YWluZXJfX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ticVRvb2x0aXBdPVwibG9jYWxlQ29uZmlndXJhdGlvbigpIS5jbG9zZVRvb2x0aXBcIlxuICAgICAgICAgICAgICAgIFtrYnFUb29sdGlwT2Zmc2V0XT1cIjE2XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJjb250cmFzdFwiXG4gICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLXhtYXJrLWNpcmNsZV8xNlwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBzdHlsZVVybHM6IFtcbiAgICAgICAgJy4vYWN0aW9ucy1wYW5lbC10b2tlbnMuc2NzcycsXG4gICAgICAgICcuL2FjdGlvbnMtcGFuZWwtY29udGFpbmVyLnNjc3MnXG4gICAgXSxcbiAgICBhbmltYXRpb25zOiBbS0JRX0FDVElPTlNfUEFORUxfQ09OVEFJTkVSX0FOSU1BVElPTl0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1hY3Rpb25zLXBhbmVsLWNvbnRhaW5lcicsXG4gICAgICAgICdbY2xhc3Mua2JxLWFjdGlvbnMtcGFuZWwtY29udGFpbmVyX3J0bF0nOiAnY29uZmlnLmRpcmVjdGlvbiA9PT0gXCJydGxcIicsXG4gICAgICAgICdbQHN0YXRlXSc6ICdhbmltYXRpb25TdGF0ZScsXG4gICAgICAgICcoQHN0YXRlLnN0YXJ0KSc6ICdvbkFuaW1hdGlvblN0YXJ0KCRldmVudCknLFxuICAgICAgICAnKEBzdGF0ZS5kb25lKSc6ICdvbkFuaW1hdGlvbkRvbmUoJGV2ZW50KScsXG4gICAgICAgICcoa2V5ZG93bi5lc2NhcGUpJzogJ2hhbmRsZUVzY2FwZSgkZXZlbnQpJ1xuICAgIH0sXG4gICAgLy8gVXNlcyB0aGUgYERlZmF1bHRgIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kgYXMgcGFyZW50IGBDZGtEaWFsb2dDb250YWluZXJgOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi8xOC4yLjE0L3NyYy9jZGsvZGlhbG9nL2RpYWxvZy1jb250YWluZXIudHMjTDYwXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxQWN0aW9uc1BhbmVsQ29udGFpbmVyIGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIGFjdGlvbnMgcGFuZWwgYW5pbWF0aW9ucy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYW5pbWF0aW9uU3RhdGU6ICd2b2lkJyB8ICd2aXNpYmxlJyB8ICdoaWRkZW4nID0gJ3ZvaWQnO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIHN0YXRlIG9mIHRoZSBhbmltYXRpb24gY2hhbmdlcy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICByZWFkb25seSBhbmltYXRpb25TdGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGFjdGlvbnMgcGFuZWwgY29udGFpbmVyIGhhcyBiZWVuIGRlc3Ryb3llZC4gKi9cbiAgICBwcml2YXRlIGRlc3Ryb3llZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFjdGlvbnMgcGFuZWwgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KEticUFjdGlvbnNQYW5lbENvbmZpZyk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnNQYW5lbCA9IGluamVjdChLYnFBY3Rpb25zUGFuZWwpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoS0JRX0xPQ0FMRV9TRVJWSUNFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICogQWN0aW9ucyBwYW5lbCBsb2NhbGUgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlQ29uZmlndXJhdGlvbiA9IHRvU2lnbmFsPEticUFjdGlvbnNQYW5lbExvY2FsZUNvbmZpZ3VyYXRpb24+KFxuICAgICAgICB0aGlzLmxvY2FsZVNlcnZpY2VcbiAgICAgICAgICAgID8gdGhpcy5sb2NhbGVTZXJ2aWNlLmNoYW5nZXMucGlwZShtYXAoKCkgPT4gdGhpcy5sb2NhbGVTZXJ2aWNlIS5nZXRQYXJhbXMoJ2FjdGlvbnNQYW5lbCcpKSlcbiAgICAgICAgICAgIDogb2YoaW5qZWN0KEtCUV9BQ1RJT05TX1BBTkVMX0xPQ0FMRV9DT05GSUdVUkFUSU9OKSlcbiAgICApO1xuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSB0aGUgYWN0aW9ucyBwYW5lbC5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uc1BhbmVsLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RhcnQgYW5pbWF0aW9uIG9mIHRoZSBhY3Rpb25zIHBhbmVsIGVudHJhbmNlIGludG8gdmlldy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBzdGFydE9wZW5BbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGUgPSAndmlzaWJsZSc7XG4gICAgICAgICAgICAvLyBhbmltYXRpb25TdGF0ZSBsaXZlcyBpbiBob3N0IGJpbmRpbmdzIGFuZCBgZGV0ZWN0Q2hhbmdlc2AgZG9lcyBub3QgcmVmcmVzaCBob3N0IGJpbmRpbmdzICBzbyB3ZSBoYXZlIHRvXG4gICAgICAgICAgICAvLyBjYWxsIGBtYXJrRm9yQ2hlY2tgIHRvIGVuc3VyZSB0aGUgaG9zdCB2aWV3IGlzIHJlZnJlc2hlZCBldmVudHVhbGx5LlxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydCBhbmltYXRpb24gb2YgdGhlIGFjdGlvbnMgcGFuZWwgZXhpdGluZyBmcm9tIHZpZXcuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgc3RhcnRDbG9zZUFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGFuaW1hdGlvbiBkb25lIGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25BbmltYXRpb25Eb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgICAgICB0aGlzLl90cmFwRm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYW5pbWF0aW9uIHN0YXJ0IGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb25TdGF0ZUNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBlc2NhcGUga2V5IGV2ZW50cy5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXNjYXBlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuZGlzYWJsZUNsb3NlKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBfY29udGVudEF0dGFjaGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFwcGx5Q29udGFpbmVyQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5Q29udGFpbmVyQ2xhc3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgY29udGFpbmVyQ2xhc3MgfSA9IHRoaXMuY29uZmlnO1xuICAgICAgICBpZiAoY29udGFpbmVyQ2xhc3MpIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbnRhaW5lckNsYXNzKSkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzLmZvckVhY2goKGNzc0NsYXNzKSA9PiB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3MpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNvbnRhaW5lckNsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { filter, Subject, take } from 'rxjs';
2
+ /**
3
+ * Reference to actions panel opened by `KbqActionsPanel` service.
4
+ */
5
+ export class KbqActionsPanelRef {
6
+ /** Gets an observable that is notified when the actions panel is finished closing. */
7
+ get afterClosed() {
8
+ return this.dialogRef.closed;
9
+ }
10
+ /** Gets an observable that emits when keydown events are targeted on the overlay. */
11
+ get keydownEvents() {
12
+ return this.dialogRef.keydownEvents;
13
+ }
14
+ /** Gets an observable that is notified when the actions panel has opened and appeared. */
15
+ get afterOpened() {
16
+ return this._afterOpened;
17
+ }
18
+ constructor(dialogRef, containerInstance) {
19
+ this.dialogRef = dialogRef;
20
+ this._afterOpened = new Subject();
21
+ this.containerInstance = containerInstance;
22
+ this.handleAnimation();
23
+ this.handleOverlayDetachments();
24
+ }
25
+ /** Closes the actions panel. */
26
+ close(result) {
27
+ if (!this.containerInstance) {
28
+ return;
29
+ }
30
+ this.containerInstance.animationStateChanged
31
+ .pipe(filter((event) => event.phaseName === 'start'), take(1))
32
+ .subscribe(({ totalTime }) => {
33
+ this.closeAnimationFallbackTimeout = setTimeout(() => this.dialogRef.close(this.result), totalTime + 100);
34
+ });
35
+ this.result = result;
36
+ this.containerInstance.startCloseAnimation();
37
+ this.containerInstance = null;
38
+ }
39
+ handleAnimation() {
40
+ this.containerInstance.animationStateChanged
41
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'visible'), take(1))
42
+ .subscribe(() => {
43
+ this._afterOpened.next();
44
+ this._afterOpened.complete();
45
+ });
46
+ this.containerInstance.animationStateChanged
47
+ .pipe(filter((event) => event.phaseName === 'done' && event.toState === 'hidden'), take(1))
48
+ .subscribe(() => {
49
+ clearTimeout(this.closeAnimationFallbackTimeout);
50
+ this.dialogRef.close(this.result);
51
+ });
52
+ }
53
+ handleOverlayDetachments() {
54
+ this.dialogRef.overlayRef
55
+ .detachments()
56
+ .pipe(take(1))
57
+ .subscribe(() => {
58
+ this.dialogRef.close(this.result);
59
+ });
60
+ }
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1wYW5lbC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2FjdGlvbnMtcGFuZWwvYWN0aW9ucy1wYW5lbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3pEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQVEzQixzRkFBc0Y7SUFDdEYsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQscUZBQXFGO0lBQ3JGLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELDBGQUEwRjtJQUMxRixJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQVVELFlBQ3FCLFNBQTBCLEVBQzNDLGlCQUEyQztRQUQxQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQVQ5QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFZaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLEtBQUssQ0FBQyxNQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQjthQUN2QyxJQUFJLENBQ0QsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxFQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLDZCQUE2QixHQUFHLFVBQVUsQ0FDM0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUN2QyxTQUFTLEdBQUcsR0FBRyxDQUNsQixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSyxDQUFDO0lBQ25DLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUI7YUFDdkMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsRUFDNUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUI7YUFDdkMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsRUFDM0UsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNWO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sd0JBQXdCO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTthQUNwQixXQUFXLEVBQUU7YUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLYnFBY3Rpb25zUGFuZWxDb250YWluZXIgfSBmcm9tICcuL2FjdGlvbnMtcGFuZWwtY29udGFpbmVyJztcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYWN0aW9ucyBwYW5lbCBvcGVuZWQgYnkgYEticUFjdGlvbnNQYW5lbGAgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEticUFjdGlvbnNQYW5lbFJlZjxJID0gdW5rbm93biwgUiA9IHVua25vd24+IHtcbiAgICAvKipcbiAgICAgKiBJbnN0YW5jZSBvZiB0aGUgY29tcG9uZW50IGludG8gd2hpY2ggdGhlIGFjdGlvbnMgcGFuZWwgY29udGVudCBpcyBwcm9qZWN0ZWQuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgY29udGFpbmVySW5zdGFuY2U6IEticUFjdGlvbnNQYW5lbENvbnRhaW5lcjtcblxuICAgIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBpcyBub3RpZmllZCB3aGVuIHRoZSBhY3Rpb25zIHBhbmVsIGlzIGZpbmlzaGVkIGNsb3NpbmcuICovXG4gICAgZ2V0IGFmdGVyQ2xvc2VkKCk6IE9ic2VydmFibGU8UiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuY2xvc2VkO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGtleWRvd24gZXZlbnRzIGFyZSB0YXJnZXRlZCBvbiB0aGUgb3ZlcmxheS4gKi9cbiAgICBnZXQga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmLmtleWRvd25FdmVudHM7XG4gICAgfVxuXG4gICAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGlzIG5vdGlmaWVkIHdoZW4gdGhlIGFjdGlvbnMgcGFuZWwgaGFzIG9wZW5lZCBhbmQgYXBwZWFyZWQuICovXG4gICAgZ2V0IGFmdGVyT3BlbmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJPcGVuZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJPcGVuZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIFJlc3VsdCB0byBiZSBwYXNzZWQgZG93biB0byB0aGUgYGFmdGVyQ2xvc2VkYCBzdHJlYW0uICovXG4gICAgcHJpdmF0ZSByZXN1bHQ6IFIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogSGFuZGxlIHRvIHRoZSB0aW1lb3V0IHRoYXQncyBydW5uaW5nIGFzIGEgZmFsbGJhY2sgaW4gY2FzZSB0aGUgY2xvc2UgYW5pbWF0aW9uIGRvZXNuJ3QgZmlyZS4gKi9cbiAgICBwcml2YXRlIGNsb3NlQW5pbWF0aW9uRmFsbGJhY2tUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogRGlhbG9nUmVmPFIsIEk+LFxuICAgICAgICBjb250YWluZXJJbnN0YW5jZTogS2JxQWN0aW9uc1BhbmVsQ29udGFpbmVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UgPSBjb250YWluZXJJbnN0YW5jZTtcbiAgICAgICAgdGhpcy5oYW5kbGVBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5oYW5kbGVPdmVybGF5RGV0YWNobWVudHMoKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBhY3Rpb25zIHBhbmVsLiAqL1xuICAgIGNsb3NlKHJlc3VsdD86IFIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRhaW5lckluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlLmFuaW1hdGlvblN0YXRlQ2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQucGhhc2VOYW1lID09PSAnc3RhcnQnKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHRvdGFsVGltZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFuaW1hdGlvbkZhbGxiYWNrVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KSxcbiAgICAgICAgICAgICAgICAgICAgdG90YWxUaW1lICsgMTAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlLnN0YXJ0Q2xvc2VBbmltYXRpb24oKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJJbnN0YW5jZSA9IG51bGwhO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRhaW5lckluc3RhbmNlLmFuaW1hdGlvblN0YXRlQ2hhbmdlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQucGhhc2VOYW1lID09PSAnZG9uZScgJiYgZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSxcbiAgICAgICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hZnRlck9wZW5lZC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWZ0ZXJPcGVuZWQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVySW5zdGFuY2UuYW5pbWF0aW9uU3RhdGVDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5waGFzZU5hbWUgPT09ICdkb25lJyAmJiBldmVudC50b1N0YXRlID09PSAnaGlkZGVuJyksXG4gICAgICAgICAgICAgICAgdGFrZSgxKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VBbmltYXRpb25GYWxsYmFja1RpbWVvdXQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlT3ZlcmxheURldGFjaG1lbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5vdmVybGF5UmVmXG4gICAgICAgICAgICAuZGV0YWNobWVudHMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMucmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==