@koobiq/components 18.34.0 → 18.35.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 (139) hide show
  1. package/button/_button-theme.scss +1 -0
  2. package/core/form-field/field-sizing-content.d.ts +21 -0
  3. package/core/form-field/index.d.ts +1 -0
  4. package/core/locales/en-US.d.ts +6 -0
  5. package/core/locales/es-LA.d.ts +6 -0
  6. package/core/locales/fa-IR.d.ts +6 -0
  7. package/core/locales/locale-service.d.ts +42 -0
  8. package/core/locales/pt-BR.d.ts +6 -0
  9. package/core/locales/ru-RU.d.ts +6 -0
  10. package/core/locales/tk-TM.d.ts +6 -0
  11. package/core/locales/zh-CN.d.ts +6 -0
  12. package/core/navbar/index.d.ts +1 -0
  13. package/core/navbar/rectangle-item.d.ts +14 -0
  14. package/core/option/option.d.ts +3 -1
  15. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  16. package/core/public-api.d.ts +1 -0
  17. package/core/utils/dom.d.ts +9 -0
  18. package/core/utils/index.d.ts +1 -0
  19. package/core/utils/utils.d.ts +4 -0
  20. package/datepicker/datepicker-input.directive.d.ts +18 -7
  21. package/dropdown/dropdown-item.scss +1 -0
  22. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  23. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  24. package/esm2022/button/button.component.mjs +2 -2
  25. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  26. package/esm2022/core/form-field/index.mjs +2 -1
  27. package/esm2022/core/locales/en-US.mjs +7 -1
  28. package/esm2022/core/locales/es-LA.mjs +7 -1
  29. package/esm2022/core/locales/fa-IR.mjs +7 -1
  30. package/esm2022/core/locales/pt-BR.mjs +7 -1
  31. package/esm2022/core/locales/ru-RU.mjs +7 -1
  32. package/esm2022/core/locales/tk-TM.mjs +7 -1
  33. package/esm2022/core/locales/zh-CN.mjs +7 -1
  34. package/esm2022/core/navbar/index.mjs +2 -0
  35. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  36. package/esm2022/core/option/option.mjs +8 -4
  37. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  38. package/esm2022/core/public-api.mjs +2 -1
  39. package/esm2022/core/utils/dom.mjs +14 -0
  40. package/esm2022/core/utils/index.mjs +2 -1
  41. package/esm2022/core/utils/utils.mjs +9 -1
  42. package/esm2022/core/version.mjs +2 -2
  43. package/esm2022/datepicker/calendar-header.component.mjs +1 -1
  44. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  45. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  46. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  47. package/esm2022/file-upload/file-upload.mjs +6 -1
  48. package/esm2022/file-upload/multiple-file-upload.component.mjs +12 -7
  49. package/esm2022/file-upload/single-file-upload.component.mjs +14 -7
  50. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  51. package/esm2022/filter-bar/filters.mjs +16 -4
  52. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  53. package/esm2022/filter-bar/pipes/pipe-date.mjs +2 -2
  54. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +2 -2
  55. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +9 -9
  56. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  57. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  58. package/esm2022/form-field/fieldset.mjs +2 -2
  59. package/esm2022/form-field/form-field.mjs +2 -2
  60. package/esm2022/navbar-ic/index.mjs +2 -0
  61. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  62. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  63. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  64. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  65. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  66. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  67. package/esm2022/navbar-ic/public-api.mjs +5 -0
  68. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  69. package/esm2022/popover/popover.component.mjs +10 -5
  70. package/esm2022/select/select.component.mjs +2 -2
  71. package/esm2022/tags/tag-list.component.mjs +24 -5
  72. package/esm2022/tags/tag.component.mjs +231 -22
  73. package/esm2022/tags/tag.module.mjs +16 -6
  74. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  75. package/esm2022/tree-select/tree-select.component.mjs +2 -2
  76. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  77. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-button.mjs +2 -2
  79. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-core.mjs +243 -31
  81. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-datepicker.mjs +24 -22
  83. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-dropdown.mjs +31 -11
  85. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-file-upload.mjs +26 -9
  87. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-filter-bar.mjs +29 -17
  89. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-form-field.mjs +4 -4
  91. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  93. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  94. package/fesm2022/koobiq-components-popover.mjs +11 -6
  95. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-select.mjs +1 -1
  97. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-tags.mjs +271 -34
  99. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  101. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-tree-select.mjs +1 -1
  103. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  104. package/file-upload/file-upload.d.ts +5 -2
  105. package/file-upload/multiple-file-upload.component.d.ts +3 -1
  106. package/file-upload/single-file-upload.component.d.ts +3 -1
  107. package/filter-bar/_filter-bar-theme.scss +2 -2
  108. package/filter-bar/filters.d.ts +1 -0
  109. package/form-field/form-field.scss +7 -1
  110. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  111. package/navbar-ic/index.d.ts +1 -0
  112. package/navbar-ic/navbar-ic-divider.scss +7 -0
  113. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  114. package/navbar-ic/navbar-ic-header.scss +53 -0
  115. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  116. package/navbar-ic/navbar-ic-item.scss +96 -0
  117. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  118. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  119. package/navbar-ic/navbar-ic.d.ts +103 -0
  120. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  121. package/navbar-ic/navbar-ic.scss +32 -0
  122. package/navbar-ic/public-api.d.ts +4 -0
  123. package/package.json +10 -4
  124. package/popover/_popover-theme.scss +6 -2
  125. package/popover/popover-tokens.scss +2 -0
  126. package/popover/popover.component.d.ts +4 -1
  127. package/prebuilt-themes/dark-theme.css +1 -1
  128. package/prebuilt-themes/light-theme.css +1 -1
  129. package/prebuilt-themes/theme.css +1 -1
  130. package/schematics/ng-add/index.js +3 -3
  131. package/tags/_tag-theme.scss +10 -1
  132. package/tags/tag-list.component.d.ts +10 -2
  133. package/tags/tag-list.scss +5 -0
  134. package/tags/tag.component.d.ts +78 -8
  135. package/tags/tag.module.d.ts +1 -1
  136. package/tags/tag.scss +18 -0
  137. package/textarea/textarea-tokens.scss +1 -1
  138. package/tooltip/_tooltip-theme.scss +9 -2
  139. package/tooltip/tooltip-tokens.scss +2 -0
@@ -171,7 +171,7 @@ export class KbqPipeDateComponent extends KbqBasePipe {
171
171
  provide: KbqBasePipe,
172
172
  useExisting: this
173
173
  }
174
- ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
174
+ ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field class=\"kbq-date-period__date kbq-form__control\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
175
  }
176
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeDateComponent, decorators: [{
177
177
  type: Component,
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
203
203
  type: ViewChild,
204
204
  args: ['popover']
205
205
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdC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SSxhQUMxQjt3QkFDUCwyQ0FBMkMsRUFBRTt3QkFDN0M7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJO3lCQUNwQjtxQkFDSixXQUNRO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcixcbiAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgIFBvcFVwUGxhY2VtZW50c1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFMaXN0TW9kdWxlLCBLYnFMaXN0U2VsZWN0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxRGF0ZVRpbWVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1kYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydiYXNlLXBpcGUuc2NzcycsICdwaXBlLWRhdGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGticURpc2FibGVMZWdhY3lWYWxpZGF0aW9uRGlyZWN0aXZlUHJvdmlkZXIoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxTGlzdE1vZHVsZSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZURhdGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlcyA9IEticUJ1dHRvblN0eWxlcztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGF0ZSBpcyBsaXN0IG9mIHBlcmlvZHMuIFdoZW4gZmFsc2Ugd2lsbCBkaXNwbGF5ZWQgY29udHJvbCBmb3Igc2V0IGN1c3RvbSBwZXJpb2QgKi9cbiAgICBwcm90ZWN0ZWQgaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNob3dTdGFydENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogZm9ybWF0dGVkIHZhbHVlIGZvciBwZXJpb2QgKi9cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnZhbHVlPy5uYW1lID8/ICcnO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZGlzYWJsZWQuICovXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZSkgfHxcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlKSB8fFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuaW52YWxpZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBwYXJzZWQgc3RhcnQgKi9cbiAgICBnZXQgc3RhcnQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5zdGFydCwgJycpO1xuICAgIH1cblxuICAgIC8qKiBkZWZhdWx0IG9iamVjdCBmb3Igc3RhcnQgKi9cbiAgICBnZXQgZGVmYXVsdFN0YXJ0KCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXModGhpcy5kYXRhLnZhbHVlPy5zdGFydCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBlbmQgKi9cbiAgICBnZXQgZW5kKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnBhcnNlKHRoaXMuZGF0YS52YWx1ZT8uZW5kLCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBlbmQgKi9cbiAgICBnZXQgZGVmYXVsdEVuZCgpOiBEIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKS5wbHVzKHsgZGF5czogMSB9KTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGVtcHR5LiAqL1xuICAgIG92ZXJyaWRlIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5uYW1lKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5zdGFydCkgfHwgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmVuZCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJykgcG9wb3ZlcjogS2JxUG9wb3ZlclRyaWdnZXI7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBsaXN0U2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0U2VsZWN0aW9uJywgeyByZWFkOiBLYnFMaXN0U2VsZWN0aW9uIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcmV0dXJuQnV0dG9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdyZXR1cm5CdXR0b24nLCB7IHJlYWQ6IEticUJ1dHRvbiB9KTtcblxuICAgIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnZpc2libGVDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmlzaWJsZSkgPT4gIXZpc2libGUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmlsdGVyQmFyPy5vbkNsb3NlUGlwZS5uZXh0KHRoaXMuZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKiBrZXlkb3duIGhhbmRsZXJcbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25LZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5tZXRhS2V5KSAmJiAkZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMub25BcHBseVBlcmlvZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcHBseVBlcmlvZCgpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnZhbHVlLnRvSVNPKCksXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZS50b0lTTygpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLm5leHQodGhpcy5kYXRhKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KGl0ZW06IEticURhdGVUaW1lVmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gaXRlbTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgc2hvd1BlcmlvZCgpIHtcbiAgICAgICAgdGhpcy5pc0xpc3RNb2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmluaXRGb3JtR3JvdXAoKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHRoaXMucmV0dXJuQnV0dG9uKCkuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xpc3QoKSB7XG4gICAgICAgIHRoaXMuaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxpc3RTZWxlY3Rpb24oKS5mb2N1cygpKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBvcGVucyBwb3BvdmVyICovXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnNob3coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFN0YXJ0RGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RFbmREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1N0YXJ0SW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzRW5kSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhpZGVDYWxlbmRhcnMoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBzdGFydDogbmV3IEZvcm1Db250cm9sKHRoaXMuc3RhcnQgfHwgdGhpcy5kZWZhdWx0U3RhcnQpLFxuICAgICAgICAgICAgZW5kOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbmQgfHwgdGhpcy5kZWZhdWx0RW5kKVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgI3BvcG92ZXI9XCJrYnFQb3BvdmVyXCJcbiAgICBrYnEtYnV0dG9uXG4gICAga2JxUG9wb3ZlclxuICAgIFtkaXNhYmxlZF09XCJkYXRhLmRpc2FibGVkXCJcbiAgICBba2JxUGlwZVN0YXRlXT1cImRhdGFcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFtrYnFQb3BvdmVyQXJyb3ddPVwiZmFsc2VcIlxuICAgIFtrYnFQb3BvdmVyQ2xhc3NdPVwiJ2ticS1waXBlLWRhdGVfX3BvcG92ZXInXCJcbiAgICBba2JxUG9wb3ZlckNvbnRlbnRdPVwiY29udGVudFwiXG4gICAgW2ticVBvcG92ZXJPZmZzZXRdPVwiNFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRdPVwicGxhY2VtZW50cy5Cb3R0b21MZWZ0XCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5XT1cIltwbGFjZW1lbnRzLkJvdHRvbUxlZnQsIHBsYWNlbWVudHMuVG9wTGVmdF1cIlxuICAgIChrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZSk9XCJpc0xpc3RNb2RlID0gdHJ1ZVwiXG4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX19uYW1lXCI+e3sgZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIiBbY2xhc3Mua2JxLXBpcGVfX3ZhbHVlX2VtcHR5XT1cIiFmb3JtYXR0ZWRWYWx1ZVwiPlxuICAgICAgICB7eyBmb3JtYXR0ZWRWYWx1ZSB9fVxuICAgIDwvc3Bhbj5cbjwvYnV0dG9uPlxuXG5AaWYgKHNob3dSZW1vdmVCdXR0b24pIHtcbiAgICA8a2JxLXBpcGUtYnV0dG9uIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICBAaWYgKGlzTGlzdE1vZGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLWxpc3RcIj5cbiAgICAgICAgICAgIDxrYnEtbGlzdC1zZWxlY3Rpb24gI2xpc3RTZWxlY3Rpb24gW2F1dG9TZWxlY3RdPVwiZmFsc2VcIiBbbmdNb2RlbF09XCJkYXRhLnZhbHVlPy5uYW1lXCI+XG4gICAgICAgICAgICAgICAgPGticS1saXN0LW9wdGlvbiAoY2xpY2spPVwic2hvd1BlcmlvZCgpXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd1BlcmlvZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGU/LmN1c3RvbVBlcmlvZCB9fVxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImticSBrYnEtaWNvbiBrYnEtY2hldnJvbi1yaWdodF8xNiBrYnEtY29udHJhc3QtZmFkZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1saXN0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFsdWVzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ubmFtZVwiIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiIChrZXlkb3duLmVudGVyKT1cIm9uU2VsZWN0KGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9rYnEtbGlzdC1zZWxlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kIGticS1kYXRlcGlja2VyX19jb250ZW50XCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgI3JldHVybkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvcnMuVGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwic3R5bGVzLlRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dMaXN0KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2hldnJvbi1sZWZ0XzE2XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmJhY2tUb1BlcmlvZFNlbGVjdGlvbiB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxrYnEtZGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudCBrYnEtZm9ybS1ob3Jpem9udGFsXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19jb250ZW50LWhlYWRlclwiPnt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwia2JxLWZvcm1fX2xhYmVsXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RGcm9tIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93U3RhcnRDYWxlbmRhclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJzdGFydERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c1N0YXJ0SW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI3N0YXJ0RGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93U3RhcnRDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdFN0YXJ0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwia2JxLWZvcm1fX2xhYmVsXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RUbyB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2RhdGUga2JxLWZvcm1fX2NvbnRyb2xcIiBbY2xhc3Mua2JxLWZvY3VzZWRdPVwic2hvd0VuZENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJlbmREYXRlQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0VuZElucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVDYWxlbmRhcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNhbGVuZGFyLW9fMTZcIiBrYnFTdWZmaXg+PC9pPlxuICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtaGludCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGludFwiIFtjb2xvcl09XCInZXJyb3InXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEVycm9ySGludCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1oaW50PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI2VuZERhdGVDYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNhbGVuZGFyX2hpZGRlbl09XCIhc2hvd0VuZENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0RW5kRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIid0aGVtZSdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcGx5UGVyaW9kKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgbG9jYWxlRGF0YS5waXBlLmFwcGx5QnV0dG9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYnV0dG9uX2hvdC1rZXlcIj57eyBpc01hYyA/ICfijJgnIDogJ0N0cmwrJyB9fUVudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGlwZVRvb2x0aXA+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX25hbWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGRhdGEubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX192YWx1ZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZm9ybWF0dGVkVmFsdWUgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZS50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdC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SSxhQUMxQjt3QkFDUCwyQ0FBMkMsRUFBRTt3QkFDN0M7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJO3lCQUNwQjtxQkFDSixXQUNRO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcixcbiAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgIFBvcFVwUGxhY2VtZW50c1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFMaXN0TW9kdWxlLCBLYnFMaXN0U2VsZWN0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxRGF0ZVRpbWVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAncGlwZS1kYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydiYXNlLXBpcGUuc2NzcycsICdwaXBlLWRhdGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGticURpc2FibGVMZWdhY3lWYWxpZGF0aW9uRGlyZWN0aXZlUHJvdmlkZXIoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEticUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgS2JxSWNvbixcbiAgICAgICAgS2JxSW5wdXRNb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVBvcG92ZXJNb2R1bGUsXG4gICAgICAgIEticUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgS2JxTGlzdE1vZHVsZSxcbiAgICAgICAgS2JxRGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxVGltZXBpY2tlck1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgICAgICBLYnFQaXBlQnV0dG9uLFxuICAgICAgICBLYnFUaXRsZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZVRpdGxlRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUGlwZURhdGVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlcyA9IEticUJ1dHRvblN0eWxlcztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGF0ZSBpcyBsaXN0IG9mIHBlcmlvZHMuIFdoZW4gZmFsc2Ugd2lsbCBkaXNwbGF5ZWQgY29udHJvbCBmb3Igc2V0IGN1c3RvbSBwZXJpb2QgKi9cbiAgICBwcm90ZWN0ZWQgaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNob3dTdGFydENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogZm9ybWF0dGVkIHZhbHVlIGZvciBwZXJpb2QgKi9cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnZhbHVlPy5uYW1lID8/ICcnO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZGlzYWJsZWQuICovXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZSkgfHxcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlKSB8fFxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuaW52YWxpZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBwYXJzZWQgc3RhcnQgKi9cbiAgICBnZXQgc3RhcnQoKTogRCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5zdGFydCwgJycpO1xuICAgIH1cblxuICAgIC8qKiBkZWZhdWx0IG9iamVjdCBmb3Igc3RhcnQgKi9cbiAgICBnZXQgZGVmYXVsdFN0YXJ0KCk6IEQge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5zdGFydCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnBsdXModGhpcy5kYXRhLnZhbHVlPy5zdGFydCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCk7XG4gICAgfVxuXG4gICAgLyoqIHBhcnNlZCBlbmQgKi9cbiAgICBnZXQgZW5kKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnBhcnNlKHRoaXMuZGF0YS52YWx1ZT8uZW5kLCAnJyk7XG4gICAgfVxuXG4gICAgLyoqIGRlZmF1bHQgb2JqZWN0IGZvciBlbmQgKi9cbiAgICBnZXQgZGVmYXVsdEVuZCgpOiBEIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKS5wbHVzKHsgZGF5czogMSB9KTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGVtcHR5LiAqL1xuICAgIG92ZXJyaWRlIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlID09PSBudWxsKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5kYXRhLnZhbHVlPy5uYW1lKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5zdGFydCkgfHwgIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLmVuZCk7XG4gICAgfVxuXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJykgcG9wb3ZlcjogS2JxUG9wb3ZlclRyaWdnZXI7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBsaXN0U2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0U2VsZWN0aW9uJywgeyByZWFkOiBLYnFMaXN0U2VsZWN0aW9uIH0pO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcmV0dXJuQnV0dG9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdyZXR1cm5CdXR0b24nLCB7IHJlYWQ6IEticUJ1dHRvbiB9KTtcblxuICAgIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLnZpc2libGVDaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigodmlzaWJsZSkgPT4gIXZpc2libGUpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZmlsdGVyQmFyPy5vbkNsb3NlUGlwZS5uZXh0KHRoaXMuZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKiBrZXlkb3duIGhhbmRsZXJcbiAgICAgKiBAZG9jcy1wcml2YXRlICovXG4gICAgb25LZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoKCRldmVudC5jdHJsS2V5IHx8ICRldmVudC5tZXRhS2V5KSAmJiAkZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMub25BcHBseVBlcmlvZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcHBseVBlcmlvZCgpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LnZhbHVlLnRvSVNPKCksXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZS50b0lTTygpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLm5leHQodGhpcy5kYXRhKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KGl0ZW06IEticURhdGVUaW1lVmFsdWUpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gaXRlbTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgc2hvd1BlcmlvZCgpIHtcbiAgICAgICAgdGhpcy5pc0xpc3RNb2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmluaXRGb3JtR3JvdXAoKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHRoaXMucmV0dXJuQnV0dG9uKCkuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd0xpc3QoKSB7XG4gICAgICAgIHRoaXMuaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxpc3RTZWxlY3Rpb24oKS5mb2N1cygpKTtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBvcGVucyBwb3BvdmVyICovXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnNob3coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFN0YXJ0RGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RFbmREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1N0YXJ0SW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzRW5kSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhpZGVDYWxlbmRhcnMoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBzdGFydDogbmV3IEZvcm1Db250cm9sKHRoaXMuc3RhcnQgfHwgdGhpcy5kZWZhdWx0U3RhcnQpLFxuICAgICAgICAgICAgZW5kOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5lbmQgfHwgdGhpcy5kZWZhdWx0RW5kKVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgI3BvcG92ZXI9XCJrYnFQb3BvdmVyXCJcbiAgICBrYnEtYnV0dG9uXG4gICAga2JxUG9wb3ZlclxuICAgIFtkaXNhYmxlZF09XCJkYXRhLmRpc2FibGVkXCJcbiAgICBba2JxUGlwZVN0YXRlXT1cImRhdGFcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFtrYnFQb3BvdmVyQXJyb3ddPVwiZmFsc2VcIlxuICAgIFtrYnFQb3BvdmVyQ2xhc3NdPVwiJ2ticS1waXBlLWRhdGVfX3BvcG92ZXInXCJcbiAgICBba2JxUG9wb3ZlckNvbnRlbnRdPVwiY29udGVudFwiXG4gICAgW2ticVBvcG92ZXJPZmZzZXRdPVwiNFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRdPVwicGxhY2VtZW50cy5Cb3R0b21MZWZ0XCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5XT1cIltwbGFjZW1lbnRzLkJvdHRvbUxlZnQsIHBsYWNlbWVudHMuVG9wTGVmdF1cIlxuICAgIChrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZSk9XCJpc0xpc3RNb2RlID0gdHJ1ZVwiXG4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX19uYW1lXCI+e3sgZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIiBbY2xhc3Mua2JxLXBpcGVfX3ZhbHVlX2VtcHR5XT1cIiFmb3JtYXR0ZWRWYWx1ZVwiPlxuICAgICAgICB7eyBmb3JtYXR0ZWRWYWx1ZSB9fVxuICAgIDwvc3Bhbj5cbjwvYnV0dG9uPlxuXG5AaWYgKHNob3dSZW1vdmVCdXR0b24pIHtcbiAgICA8a2JxLXBpcGUtYnV0dG9uIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICBAaWYgKGlzTGlzdE1vZGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLWxpc3RcIj5cbiAgICAgICAgICAgIDxrYnEtbGlzdC1zZWxlY3Rpb24gI2xpc3RTZWxlY3Rpb24gW2F1dG9TZWxlY3RdPVwiZmFsc2VcIiBbbmdNb2RlbF09XCJkYXRhLnZhbHVlPy5uYW1lXCI+XG4gICAgICAgICAgICAgICAgPGticS1saXN0LW9wdGlvbiAoY2xpY2spPVwic2hvd1BlcmlvZCgpXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd1BlcmlvZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxvY2FsZURhdGEuZGF0ZVBpcGU/LmN1c3RvbVBlcmlvZCB9fVxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImticSBrYnEtaWNvbiBrYnEtY2hldnJvbi1yaWdodF8xNiBrYnEtY29udHJhc3QtZmFkZVwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2ticS1saXN0LW9wdGlvbj5cblxuICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgdmFsdWVzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gW3ZhbHVlXT1cIml0ZW0ubmFtZVwiIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiIChrZXlkb3duLmVudGVyKT1cIm9uU2VsZWN0KGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9rYnEtbGlzdC1zZWxlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kIGticS1kYXRlcGlja2VyX19jb250ZW50XCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgI3JldHVybkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvcnMuVGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwic3R5bGVzLlRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dMaXN0KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2hldnJvbi1sZWZ0XzE2XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmJhY2tUb1BlcmlvZFNlbGVjdGlvbiB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxrYnEtZGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudCBrYnEtZm9ybS1ob3Jpem9udGFsXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19jb250ZW50LWhlYWRlclwiPnt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwia2JxLWZvcm1fX2xhYmVsXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RGcm9tIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93U3RhcnRDYWxlbmRhclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJzdGFydERhdGVDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c1N0YXJ0SW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI3N0YXJ0RGF0ZUNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2FsZW5kYXJfaGlkZGVuXT1cIiFzaG93U3RhcnRDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdFN0YXJ0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwia2JxLWZvcm1fX2xhYmVsXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RUbyB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2RhdGUga2JxLWZvcm1fX2NvbnRyb2xcIiBbY2xhc3Mua2JxLWZvY3VzZWRdPVwic2hvd0VuZENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJlbmREYXRlQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0VuZElucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVDYWxlbmRhcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNhbGVuZGFyLW9fMTZcIiBrYnFTdWZmaXg+PC9pPlxuICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtaGludCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGludFwiIFtjb2xvcl09XCInZXJyb3InXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEVycm9ySGludCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1oaW50PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI2VuZERhdGVDYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNhbGVuZGFyX2hpZGRlbl09XCIhc2hvd0VuZENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0RW5kRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIid0aGVtZSdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcGx5UGVyaW9kKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgbG9jYWxlRGF0YS5waXBlLmFwcGx5QnV0dG9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYnV0dG9uX2hvdC1rZXlcIj57eyBpc01hYyA/ICfijJgnIDogJ0N0cmwrJyB9fUVudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGlwZVRvb2x0aXA+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX25hbWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGRhdGEubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX192YWx1ZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZm9ybWF0dGVkVmFsdWUgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -173,7 +173,7 @@ export class KbqPipeDatetimeComponent extends KbqBasePipe {
173
173
  provide: KbqBasePipe,
174
174
  useExisting: this
175
175
  }
176
- ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i9.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
176
+ ], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverOffset]=\"4\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"isListMode = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (isListMode) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection #listSelection [autoSelect]=\"false\" [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"showPeriod()\" (keydown.enter)=\"showPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"showList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showStartCalendar\">\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <label class=\"kbq-form__label\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <div class=\"kbq-form__row_with-time kbq-form__control\">\n <kbq-form-field class=\"kbq-date-period__date\" [class.kbq-focused]=\"showEndCalendar\">\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n &nbsp;\n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-tree-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active,[disabled])+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-on-contrast);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option{margin-left:var(--kbq-size-xxs);margin-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:grid;grid-auto-columns:minmax(min-content,1fr);grid-template-columns:min-content;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{grid-column:2 span;padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__label{padding-left:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__control{padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time{display:flex}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;grid-column:2 span;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{grid-column:2 span;padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverPreventClose", "kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset", "kbqLeaveDelay"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["autoSelect", "noUnselectLast", "horizontal", "tabIndex", "disabled", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["errorStateMatcher", "placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i9.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button", inputs: ["readonly"] }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
177
177
  }
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqPipeDatetimeComponent, decorators: [{
179
179
  type: Component,
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
205
205
  type: ViewChild,
206
206
  args: ['popover']
207
207
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRldGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGV0aW1lLnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZXRpbWUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFh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QXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCwyQ0FBMkMsRUFBRTt3QkFDN0M7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJO3lCQUNwQjtxQkFDSixXQUNRO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcixcbiAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgIFBvcFVwUGxhY2VtZW50c1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFMaXN0TW9kdWxlLCBLYnFMaXN0U2VsZWN0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxRGF0ZVRpbWVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLWRhdGV0aW1lJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BpcGUtZGF0ZXRpbWUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Jhc2UtcGlwZS5zY3NzJywgJ3BpcGUtZGF0ZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcigpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJY29uLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFMaXN0TW9kdWxlLFxuICAgICAgICBLYnFEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFUaW1lcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFQaXBlU3RhdGUsXG4gICAgICAgIEticUZvcm1hdHRlcnNNb2R1bGUsXG4gICAgICAgIEticVBpcGVCdXR0b24sXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFQaXBlVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQaXBlRGF0ZXRpbWVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlcyA9IEticUJ1dHRvblN0eWxlcztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGF0ZSBpcyBsaXN0IG9mIHBlcmlvZHMuIFdoZW4gZmFsc2Ugd2lsbCBkaXNwbGF5ZWQgY29udHJvbCBmb3Igc2V0IGN1c3RvbSBwZXJpb2QgKi9cbiAgICBwcm90ZWN0ZWQgaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNob3dTdGFydENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogZm9ybWF0dGVkIHZhbHVlIGZvciBwZXJpb2QgKi9cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZVRpbWUodGhpcy5zdGFydCwgdGhpcy5lbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS52YWx1ZT8ubmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGRpc2FibGVkLiAqL1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUpIHx8XG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZSkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogcGFyc2VkIHN0YXJ0ICovXG4gICAgZ2V0IHN0YXJ0KCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnBhcnNlKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQsICcnKTtcbiAgICB9XG5cbiAgICAvKiogZGVmYXVsdCBvYmplY3QgZm9yIHN0YXJ0ICovXG4gICAgZ2V0IGRlZmF1bHRTdGFydCgpOiBEIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKS5wbHVzKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBwYXJzZWQgZW5kICovXG4gICAgZ2V0IGVuZCgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wYXJzZSh0aGlzLmRhdGEudmFsdWU/LmVuZCwgJycpO1xuICAgIH1cblxuICAgIC8qKiBkZWZhdWx0IG9iamVjdCBmb3IgZW5kICovXG4gICAgZ2V0IGRlZmF1bHRFbmQoKTogRCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCkuZW5kT2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZW1wdHkuICovXG4gICAgb3ZlcnJpZGUgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/Lm5hbWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLnN0YXJ0KSB8fCAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGxpc3RTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2xpc3RTZWxlY3Rpb24nLCB7IHJlYWQ6IEticUxpc3RTZWxlY3Rpb24gfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZXR1cm5CdXR0b24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ3JldHVybkJ1dHRvbicsIHsgcmVhZDogS2JxQnV0dG9uIH0pO1xuXG4gICAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudmlzaWJsZUNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2aXNpYmxlKSA9PiAhdmlzaWJsZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5maWx0ZXJCYXI/Lm9uQ2xvc2VQaXBlLm5leHQodGhpcy5kYXRhKSk7XG4gICAgfVxuXG4gICAgLyoqIGtleWRvd24gaGFuZGxlclxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uQXBwbHlQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZS50b0lTTygpLFxuICAgICAgICAgICAgZW5kOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUudG9JU08oKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFEYXRlVGltZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLm5leHQodGhpcy5kYXRhKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIHNob3dQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuaXNMaXN0TW9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5pbml0Rm9ybUdyb3VwKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnJldHVybkJ1dHRvbigpLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dMaXN0KCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5saXN0U2VsZWN0aW9uKCkuZm9jdXMoKSk7XG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogb3BlbnMgcG9wb3ZlciAqL1xuICAgIG92ZXJyaWRlIG9wZW4oKSB7XG4gICAgICAgIHRoaXMucG9wb3Zlci5zaG93KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RTdGFydERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0RW5kRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNTdGFydElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c0VuZElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBoaWRlQ2FsZW5kYXJzKCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Rm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnN0YXJ0IHx8IHRoaXMuZGVmYXVsdFN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZW5kIHx8IHRoaXMuZGVmYXVsdEVuZClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICNwb3BvdmVyPVwia2JxUG9wb3ZlclwiXG4gICAga2JxLWJ1dHRvblxuICAgIGticVBvcG92ZXJcbiAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgW2ticVBpcGVTdGF0ZV09XCJkYXRhXCJcbiAgICBba2JxUGlwZVRpdGxlXT1cInBpcGVUb29sdGlwXCJcbiAgICBba2JxUG9wb3ZlckFycm93XT1cImZhbHNlXCJcbiAgICBba2JxUG9wb3ZlckNsYXNzXT1cIidrYnEtcGlwZS1kYXRlX19wb3BvdmVyJ1wiXG4gICAgW2ticVBvcG92ZXJDb250ZW50XT1cImNvbnRlbnRcIlxuICAgIFtrYnFQb3BvdmVyT2Zmc2V0XT1cIjRcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50XT1cInBsYWNlbWVudHMuQm90dG9tTGVmdFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRQcmlvcml0eV09XCJbcGxhY2VtZW50cy5Cb3R0b21MZWZ0LCBwbGFjZW1lbnRzLlRvcExlZnRdXCJcbiAgICAoa2JxUG9wb3ZlclZpc2libGVDaGFuZ2UpPVwiaXNMaXN0TW9kZSA9IHRydWVcIlxuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX3ZhbHVlXCIgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhZm9ybWF0dGVkVmFsdWVcIj5cbiAgICAgICAge3sgZm9ybWF0dGVkVmFsdWUgfX1cbiAgICA8L3NwYW4+XG48L2J1dHRvbj5cblxuQGlmIChzaG93UmVtb3ZlQnV0dG9uKSB7XG4gICAgPGticS1waXBlLWJ1dHRvbiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgQGlmIChpc0xpc3RNb2RlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1saXN0XCI+XG4gICAgICAgICAgICA8a2JxLWxpc3Qtc2VsZWN0aW9uICNsaXN0U2VsZWN0aW9uIFthdXRvU2VsZWN0XT1cImZhbHNlXCIgW25nTW9kZWxdPVwiZGF0YS52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gKGNsaWNrKT1cInNob3dQZXJpb2QoKVwiIChrZXlkb3duLmVudGVyKT1cInNob3dQZXJpb2QoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlPy5jdXN0b21QZXJpb2QgfX1cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb24ga2JxLWNoZXZyb24tcmlnaHRfMTYga2JxLWNvbnRyYXN0LWZhZGVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIiAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIiAoa2V5ZG93bi5lbnRlcik9XCJvblNlbGVjdChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwva2JxLWxpc3Qtc2VsZWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZCBrYnEtZGF0ZXBpY2tlcl9fY29udGVudFwiIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICNyZXR1cm5CdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JzLlRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cInN0eWxlcy5UcmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93TGlzdCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tbGVmdF8xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5iYWNrVG9QZXJpb2RTZWxlY3Rpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8a2JxLWRpdmlkZXIgLz5cblxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQga2JxLWZvcm0taG9yaXpvbnRhbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudC1oZWFkZXJcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImticS1mb3JtX19sYWJlbFwiPnt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRnJvbSB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm1fX3Jvd193aXRoLXRpbWUga2JxLWZvcm1fX2NvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNTdGFydElucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNhbGVuZGFyLW9fMTZcIiBrYnFTdWZmaXg+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2xvY2tfMTZcIiBrYnFQcmVmaXg+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCIga2JxVGltZXBpY2tlciAoZm9jdXNpbik9XCJoaWRlQ2FsZW5kYXJzKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybV9fcm93X3dpdGgtdGltZSBrYnEtZm9ybV9fY29udHJvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2RhdGVcIiBbY2xhc3Mua2JxLWZvY3VzZWRdPVwic2hvd0VuZENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJlbmREYXRlQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNFbmRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX3RpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNsb2NrXzE2XCIga2JxUHJlZml4PjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiBrYnFUaW1lcGlja2VyIChmb2N1c2luKT1cImhpZGVDYWxlbmRhcnMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtaGludCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGludFwiIFtjb2xvcl09XCInZXJyb3InXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEVycm9ySGludCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1oaW50PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI2VuZERhdGVDYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNhbGVuZGFyX2hpZGRlbl09XCIhc2hvd0VuZENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0RW5kRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIid0aGVtZSdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcGx5UGVyaW9kKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgbG9jYWxlRGF0YS5waXBlLmFwcGx5QnV0dG9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYnV0dG9uX2hvdC1rZXlcIj57eyBpc01hYyA/ICfijJgnIDogJ0N0cmwrJyB9fUVudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGlwZVRvb2x0aXA+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX25hbWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGRhdGEubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX192YWx1ZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZm9ybWF0dGVkVmFsdWUgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRldGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGV0aW1lLnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZXRpbWUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFDSCxXQUFXLEVBQ1gsYUFBYSxFQUNiLGtCQUFrQixFQUNsQiwyQ0FBMkMsRUFDM0MsbUJBQW1CLEVBQ25CLGVBQWUsRUFDbEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFh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QXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCwyQ0FBMkMsRUFBRTt3QkFDN0M7NEJBQ0ksT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsRUFBRSxJQUFJO3lCQUNwQjtxQkFDSixXQUNRO3dCQUNMLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7OEJBZ0ZxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGluamVjdCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcixcbiAgICBLYnFGb3JtYXR0ZXJzTW9kdWxlLFxuICAgIFBvcFVwUGxhY2VtZW50c1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBLYnFEYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFMaXN0TW9kdWxlLCBLYnFMaXN0U2VsZWN0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgS2JxUG9wb3Zlck1vZHVsZSwgS2JxUG9wb3ZlclRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBLYnFUaW1lcGlja2VyTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpbWVwaWNrZXInO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxRGF0ZVRpbWVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLWRhdGV0aW1lJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3BpcGUtZGF0ZXRpbWUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Jhc2UtcGlwZS5zY3NzJywgJ3BpcGUtZGF0ZS5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAga2JxRGlzYWJsZUxlZ2FjeVZhbGlkYXRpb25EaXJlY3RpdmVQcm92aWRlcigpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJY29uLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFMaXN0TW9kdWxlLFxuICAgICAgICBLYnFEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFUaW1lcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFQaXBlU3RhdGUsXG4gICAgICAgIEticUZvcm1hdHRlcnNNb2R1bGUsXG4gICAgICAgIEticVBpcGVCdXR0b24sXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFQaXBlVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQaXBlRGF0ZXRpbWVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlciA9IGluamVjdChEYXRlQWRhcHRlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwbGFjZW1lbnRzID0gUG9wVXBQbGFjZW1lbnRzO1xuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0eWxlcyA9IEticUJ1dHRvblN0eWxlcztcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBzdGF0ZSBpcyBsaXN0IG9mIHBlcmlvZHMuIFdoZW4gZmFsc2Ugd2lsbCBkaXNwbGF5ZWQgY29udHJvbCBmb3Igc2V0IGN1c3RvbSBwZXJpb2QgKi9cbiAgICBwcm90ZWN0ZWQgaXNMaXN0TW9kZSA9IHRydWU7XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIHByb3RlY3RlZCBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIC8qKiBAZG9jcy1wcml2YXRlICovXG4gICAgcHJvdGVjdGVkIHNob3dTdGFydENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogZm9ybWF0dGVkIHZhbHVlIGZvciBwZXJpb2QgKi9cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZVRpbWUodGhpcy5zdGFydCwgdGhpcy5lbmQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS52YWx1ZT8ubmFtZSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCBwaXBlIGlzIGRpc2FibGVkLiAqL1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUpIHx8XG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZSkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogcGFyc2VkIHN0YXJ0ICovXG4gICAgZ2V0IHN0YXJ0KCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnBhcnNlKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQsICcnKTtcbiAgICB9XG5cbiAgICAvKiogZGVmYXVsdCBvYmplY3QgZm9yIHN0YXJ0ICovXG4gICAgZ2V0IGRlZmF1bHRTdGFydCgpOiBEIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudG9kYXkoKS5wbHVzKHRoaXMuZGF0YS52YWx1ZT8uc3RhcnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci50b2RheSgpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBwYXJzZWQgZW5kICovXG4gICAgZ2V0IGVuZCgpOiBEIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5wYXJzZSh0aGlzLmRhdGEudmFsdWU/LmVuZCwgJycpO1xuICAgIH1cblxuICAgIC8qKiBkZWZhdWx0IG9iamVjdCBmb3IgZW5kICovXG4gICAgZ2V0IGRlZmF1bHRFbmQoKTogRCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/LnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnRvZGF5KCkuZW5kT2YoJ2RheScpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBpcGUgaXMgZW1wdHkuICovXG4gICAgb3ZlcnJpZGUgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWUgPT09IG51bGwpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEudmFsdWU/Lm5hbWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLnN0YXJ0KSB8fCAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZW5kKTtcbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIGxpc3RTZWxlY3Rpb24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2xpc3RTZWxlY3Rpb24nLCB7IHJlYWQ6IEticUxpc3RTZWxlY3Rpb24gfSk7XG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi9cbiAgICByZXR1cm5CdXR0b24gPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ3JldHVybkJ1dHRvbicsIHsgcmVhZDogS2JxQnV0dG9uIH0pO1xuXG4gICAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudmlzaWJsZUNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2aXNpYmxlKSA9PiAhdmlzaWJsZSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5maWx0ZXJCYXI/Lm9uQ2xvc2VQaXBlLm5leHQodGhpcy5kYXRhKSk7XG4gICAgfVxuXG4gICAgLyoqIGtleWRvd24gaGFuZGxlclxuICAgICAqIEBkb2NzLXByaXZhdGUgKi9cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGRvY3MtcHJpdmF0ZSAqL1xuICAgIG9uQXBwbHlQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC52YWx1ZS50b0lTTygpLFxuICAgICAgICAgICAgZW5kOiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWUudG9JU08oKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFEYXRlVGltZVZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcblxuICAgICAgICB0aGlzLmZpbHRlckJhcj8ub25DaGFuZ2VQaXBlLm5leHQodGhpcy5kYXRhKTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIHNob3dQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMuaXNMaXN0TW9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5pbml0Rm9ybUdyb3VwKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnJldHVybkJ1dHRvbigpLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNob3dMaXN0KCkge1xuICAgICAgICB0aGlzLmlzTGlzdE1vZGUgPSB0cnVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5saXN0U2VsZWN0aW9uKCkuZm9jdXMoKSk7XG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogb3BlbnMgcG9wb3ZlciAqL1xuICAgIG92ZXJyaWRlIG9wZW4oKSB7XG4gICAgICAgIHRoaXMucG9wb3Zlci5zaG93KCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RTdGFydERhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0RW5kRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lbmQuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIG9uRm9jdXNTdGFydElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c0VuZElucHV0KCkge1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBoaWRlQ2FsZW5kYXJzKCkge1xuICAgICAgICB0aGlzLnNob3dTdGFydENhbGVuZGFyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Rm9ybUdyb3VwKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnN0YXJ0IHx8IHRoaXMuZGVmYXVsdFN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZW5kIHx8IHRoaXMuZGVmYXVsdEVuZClcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICNwb3BvdmVyPVwia2JxUG9wb3ZlclwiXG4gICAga2JxLWJ1dHRvblxuICAgIGticVBvcG92ZXJcbiAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgW2ticVBpcGVTdGF0ZV09XCJkYXRhXCJcbiAgICBba2JxUGlwZVRpdGxlXT1cInBpcGVUb29sdGlwXCJcbiAgICBba2JxUG9wb3ZlckFycm93XT1cImZhbHNlXCJcbiAgICBba2JxUG9wb3ZlckNsYXNzXT1cIidrYnEtcGlwZS1kYXRlX19wb3BvdmVyJ1wiXG4gICAgW2ticVBvcG92ZXJDb250ZW50XT1cImNvbnRlbnRcIlxuICAgIFtrYnFQb3BvdmVyT2Zmc2V0XT1cIjRcIlxuICAgIFtrYnFQb3BvdmVyUGxhY2VtZW50XT1cInBsYWNlbWVudHMuQm90dG9tTGVmdFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRQcmlvcml0eV09XCJbcGxhY2VtZW50cy5Cb3R0b21MZWZ0LCBwbGFjZW1lbnRzLlRvcExlZnRdXCJcbiAgICAoa2JxUG9wb3ZlclZpc2libGVDaGFuZ2UpPVwiaXNMaXN0TW9kZSA9IHRydWVcIlxuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICA8c3BhbiAja2JxVGl0bGVUZXh0IGNsYXNzPVwia2JxLXBpcGVfX3ZhbHVlXCIgW2NsYXNzLmticS1waXBlX192YWx1ZV9lbXB0eV09XCIhZm9ybWF0dGVkVmFsdWVcIj5cbiAgICAgICAge3sgZm9ybWF0dGVkVmFsdWUgfX1cbiAgICA8L3NwYW4+XG48L2J1dHRvbj5cblxuQGlmIChzaG93UmVtb3ZlQnV0dG9uKSB7XG4gICAgPGticS1waXBlLWJ1dHRvbiAvPlxufVxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgQGlmIChpc0xpc3RNb2RlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZGF0ZS1saXN0XCI+XG4gICAgICAgICAgICA8a2JxLWxpc3Qtc2VsZWN0aW9uICNsaXN0U2VsZWN0aW9uIFthdXRvU2VsZWN0XT1cImZhbHNlXCIgW25nTW9kZWxdPVwiZGF0YS52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gKGNsaWNrKT1cInNob3dQZXJpb2QoKVwiIChrZXlkb3duLmVudGVyKT1cInNob3dQZXJpb2QoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlPy5jdXN0b21QZXJpb2QgfX1cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb24ga2JxLWNoZXZyb24tcmlnaHRfMTYga2JxLWNvbnRyYXN0LWZhZGVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIiAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIiAoa2V5ZG93bi5lbnRlcik9XCJvblNlbGVjdChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwva2JxLWxpc3Qtc2VsZWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZCBrYnEtZGF0ZXBpY2tlcl9fY29udGVudFwiIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICNyZXR1cm5CdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JzLlRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cInN0eWxlcy5UcmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93TGlzdCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tbGVmdF8xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5iYWNrVG9QZXJpb2RTZWxlY3Rpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8a2JxLWRpdmlkZXIgLz5cblxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQga2JxLWZvcm0taG9yaXpvbnRhbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudC1oZWFkZXJcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImticS1mb3JtX19sYWJlbFwiPnt7IGxvY2FsZURhdGEuZGF0ZVBpcGUuY3VzdG9tUGVyaW9kRnJvbSB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWZvcm1fX3Jvd193aXRoLXRpbWUga2JxLWZvcm1fX2NvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlXCIgW2NsYXNzLmticS1mb2N1c2VkXT1cInNob3dTdGFydENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ticUNhbGVuZGFyXT1cInN0YXJ0RGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cImZvcm1Hcm91cC5jb250cm9scy5lbmQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNTdGFydElucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlQ2FsZW5kYXJzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNhbGVuZGFyLW9fMTZcIiBrYnFTdWZmaXg+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgIDxrYnEtZm9ybS1maWVsZCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fdGltZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2xvY2tfMTZcIiBrYnFQcmVmaXg+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCIga2JxVGltZXBpY2tlciAoZm9jdXNpbik9XCJoaWRlQ2FsZW5kYXJzKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGticS1jYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICAjc3RhcnREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dTdGFydENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0U3RhcnREYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJrYnEtZm9ybV9fbGFiZWxcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZFRvIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybV9fcm93X3dpdGgtdGltZSBrYnEtZm9ybV9fY29udHJvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2RhdGVcIiBbY2xhc3Mua2JxLWZvY3VzZWRdPVwic2hvd0VuZENhbGVuZGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrYnFDYWxlbmRhcl09XCJlbmREYXRlQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNFbmRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZUNhbGVuZGFycygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jYWxlbmRhci1vXzE2XCIga2JxU3VmZml4PjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX3RpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNsb2NrXzE2XCIga2JxUHJlZml4PjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbmRcIiBrYnFUaW1lcGlja2VyIChmb2N1c2luKT1cImhpZGVDYWxlbmRhcnMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGZvcm1Hcm91cC5jb250cm9scy5zdGFydC5pbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxrYnEtaGludCBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9faGludFwiIFtjb2xvcl09XCInZXJyb3InXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZEVycm9ySGludCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ticS1oaW50PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxrYnEtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgI2VuZERhdGVDYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNhbGVuZGFyX2hpZGRlbl09XCIhc2hvd0VuZENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0RW5kRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGticS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIid0aGVtZSdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBba2JxU3R5bGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcGx5UGVyaW9kKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgbG9jYWxlRGF0YS5waXBlLmFwcGx5QnV0dG9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrYnEtYnV0dG9uX2hvdC1rZXlcIj57eyBpc01hYyA/ICfijJgnIDogJ0N0cmwrJyB9fUVudGVyPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcGlwZVRvb2x0aXA+XG4gICAgPGRpdiBjbGFzcz1cImticS1waXBlLXRvb2x0aXBfX25hbWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGRhdGEubmFtZSB9fTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX192YWx1ZSBrYnEtdGV4dC1jb21wYWN0XCI+e3sgZm9ybWF0dGVkVmFsdWUgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=