@bravura/ui 1.23.2 → 1.24.1

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 (73) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/behavior/await.directive.d.ts +5 -1
  3. package/behavior/behavior.module.d.ts +6 -4
  4. package/behavior/observe-content-class.directive.d.ts +29 -0
  5. package/behavior/public-api.d.ts +1 -0
  6. package/behavior/sizing.directive.d.ts +2 -0
  7. package/bundles/bravura-ui-alert.umd.js +1 -1
  8. package/bundles/bravura-ui-behavior.umd.js +117 -17
  9. package/bundles/bravura-ui-behavior.umd.js.map +1 -1
  10. package/bundles/bravura-ui-currency-input.umd.js +0 -3
  11. package/bundles/bravura-ui-currency-input.umd.js.map +1 -1
  12. package/bundles/bravura-ui-decimal-input.umd.js +1 -5
  13. package/bundles/bravura-ui-decimal-input.umd.js.map +1 -1
  14. package/bundles/bravura-ui-file-upload.umd.js +47 -3
  15. package/bundles/bravura-ui-file-upload.umd.js.map +1 -1
  16. package/bundles/bravura-ui-panel.umd.js +266 -0
  17. package/bundles/bravura-ui-panel.umd.js.map +1 -0
  18. package/bundles/bravura-ui-radio-panel.umd.js +2 -2
  19. package/bundles/bravura-ui-radio-panel.umd.js.map +1 -1
  20. package/bundles/bravura-ui-stepper.umd.js +6 -2
  21. package/bundles/bravura-ui-stepper.umd.js.map +1 -1
  22. package/bundles/bravura-ui-tooltip.umd.js +34 -6
  23. package/bundles/bravura-ui-tooltip.umd.js.map +1 -1
  24. package/decimal-input/decimal-input.directive.d.ts +0 -1
  25. package/esm2015/alert/alert-message.component.js +1 -1
  26. package/esm2015/behavior/await.directive.js +15 -6
  27. package/esm2015/behavior/behavior.module.js +18 -6
  28. package/esm2015/behavior/observe-content-class.directive.js +63 -0
  29. package/esm2015/behavior/public-api.js +2 -1
  30. package/esm2015/behavior/sizing.directive.js +13 -4
  31. package/esm2015/currency-input/currency-input.directive.js +1 -4
  32. package/esm2015/decimal-input/decimal-input.directive.js +2 -6
  33. package/esm2015/file-upload/file-upload.component.js +48 -4
  34. package/esm2015/panel/bravura-ui-panel.js +5 -0
  35. package/esm2015/panel/panel-section.component.js +47 -0
  36. package/esm2015/panel/panel.component.js +93 -0
  37. package/esm2015/panel/panel.module.js +23 -0
  38. package/esm2015/panel/public-api.js +2 -0
  39. package/esm2015/panel/tinted.directive.js +60 -0
  40. package/esm2015/radio-panel/radio-panel-item.component.js +2 -2
  41. package/esm2015/radio-panel/radio-panel.component.js +1 -1
  42. package/esm2015/stepper/stepper.component.js +7 -3
  43. package/esm2015/tooltip/public-api.js +2 -1
  44. package/esm2015/tooltip/tooltip.directive.js +30 -4
  45. package/fesm2015/bravura-ui-alert.js +1 -1
  46. package/fesm2015/bravura-ui-behavior.js +104 -14
  47. package/fesm2015/bravura-ui-behavior.js.map +1 -1
  48. package/fesm2015/bravura-ui-currency-input.js +0 -3
  49. package/fesm2015/bravura-ui-currency-input.js.map +1 -1
  50. package/fesm2015/bravura-ui-decimal-input.js +1 -5
  51. package/fesm2015/bravura-ui-decimal-input.js.map +1 -1
  52. package/fesm2015/bravura-ui-file-upload.js +47 -3
  53. package/fesm2015/bravura-ui-file-upload.js.map +1 -1
  54. package/fesm2015/bravura-ui-panel.js +218 -0
  55. package/fesm2015/bravura-ui-panel.js.map +1 -0
  56. package/fesm2015/bravura-ui-radio-panel.js +2 -2
  57. package/fesm2015/bravura-ui-radio-panel.js.map +1 -1
  58. package/fesm2015/bravura-ui-stepper.js +6 -2
  59. package/fesm2015/bravura-ui-stepper.js.map +1 -1
  60. package/fesm2015/bravura-ui-tooltip.js +30 -4
  61. package/fesm2015/bravura-ui-tooltip.js.map +1 -1
  62. package/file-upload/file-upload.component.d.ts +11 -1
  63. package/package.json +1 -1
  64. package/panel/bravura-ui-panel.d.ts +5 -0
  65. package/panel/package.json +10 -0
  66. package/panel/panel-section.component.d.ts +15 -0
  67. package/panel/panel.component.d.ts +60 -0
  68. package/panel/panel.module.d.ts +16 -0
  69. package/panel/public-api.d.ts +1 -0
  70. package/panel/tinted.directive.d.ts +26 -0
  71. package/stepper/stepper.component.d.ts +1 -0
  72. package/tooltip/public-api.d.ts +1 -0
  73. package/tooltip/tooltip.directive.d.ts +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-radio-panel.js","sources":["../../../projects/ui/radio-panel/radio-panel-item.component.ts","../../../projects/ui/radio-panel/radio-panel-item.component.html","../../../projects/ui/radio-panel/radio-panel.component.ts","../../../projects/ui/radio-panel/radio-panel.module.ts","../../../projects/ui/radio-panel/bravura-ui-radio-panel.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n\tAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tInject,\n\tInput,\n\tOptional,\n\tTemplateRef\n} from '@angular/core';\nimport {\n\tMatRadioButton,\n\tMatRadioDefaultOptions,\n\tMatRadioGroup,\n\tMAT_RADIO_DEFAULT_OPTIONS,\n\tMAT_RADIO_GROUP\n} from '@angular/material/radio';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.\n */\n@Component({\n\tselector: 'bui-radio-panel-item',\n\ttemplateUrl: './radio-panel-item.component.html',\n\tstyleUrls: ['./radio-panel-item.component.scss'],\n\t// tslint:disable-next-line: no-inputs-metadata-property\n\tinputs: ['disableRipple', 'tabIndex'],\n\texportAs: 'matRadioButton',\n\t// tslint:disable-next-line: no-host-metadata-property\n\thost: {\n\t\tclass: 'bui-radio-panel-item',\n\t\t'[class.bui-radio-checked]': 'checked',\n\t\t'[class.bui-disabled]': 'disabled',\n\t\t'[class._mat-animation-noopable]': '_noopAnimations',\n\t\t'[class.mat-primary]': 'color === \"primary\"',\n\t\t'[class.mat-accent]': 'color === \"accent\"',\n\t\t'[class.mat-warn]': 'color === \"warn\"',\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\n\t\t'[attr.tabindex]': 'null',\n\t\t'[attr.id]': 'id',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\n\t\t// the focus to the native element.\n\t\t'(focus)': '_inputElement.nativeElement.focus()'\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tanimations: [\n\t\ttrigger('slideInOut', [\n\t\t\tstate('void', style({ height: '0px', overflow: 'hidden' })),\n\t\t\ttransition(':enter, :leave', animate('.25s'))\n\t\t])\n\t]\n})\nexport class RadioPanelItemComponent extends MatRadioButton {\n\t/**\n\t * This will be displayed as the panel header\n\t */\n\t@Input()\n\ttitle = '';\n\n\t@HostBinding('style.--panel-width')\n\tpanelWidth = '280px';\n\n\t/** The default position of the 'tick' icon relative to the title. */\n\t@Input() private _tickPosition: 'start' | 'end' | undefined;\n\n\t@Input()\n\tget tickPosition(): 'start' | 'end' {\n\t\treturn this._tickPosition || (this.radioGroup as any)?.tickPosition;\n\t}\n\tset tickPosition(pos: 'start' | 'end') {\n\t\tthis._tickPosition = pos;\n\t}\n\n\t@ContentChild('contentOnSelect')\n\t//@ts-ignore\n\tcontentOnSelect: TemplateRef<any>;\n\n\tconstructor(\n\t\t@Optional() @Inject(MAT_RADIO_GROUP) radioGroup: MatRadioGroup,\n\t\telementRef: ElementRef,\n\t\t_changeDetector: ChangeDetectorRef,\n\t\t_focusMonitor: FocusMonitor,\n\t\t_radioDispatcher: UniqueSelectionDispatcher,\n\t\t@Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n\t\t@Optional()\n\t\t@Inject(MAT_RADIO_DEFAULT_OPTIONS)\n\t\t_providerOverride?: MatRadioDefaultOptions,\n\t\t@Attribute('tabindex') tabIndex?: string\n\t) {\n\t\tsuper(\n\t\t\tradioGroup,\n\t\t\telementRef,\n\t\t\t_changeDetector,\n\t\t\t_focusMonitor,\n\t\t\t_radioDispatcher,\n\t\t\tanimationMode,\n\t\t\t_providerOverride,\n\t\t\ttabIndex\n\t\t);\n\t}\n}\n","<label\n\tmatRipple\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t[matRippleDisabled]=\"disabled || checked\"\n\t[attr.for]=\"inputId\"\n\t#label\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\n>\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\tmatRipple\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t*ngIf=\"!disabled\"\n\t\t\t\t></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t</div>\n\t</div>\n</label>\n","import {\n\tAfterContentInit,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tforwardRef,\n\tHostBinding,\n\tInput,\n\tOnChanges,\n\tQueryList,\n\tSimpleChanges\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatRadioGroup, MAT_RADIO_GROUP } from '@angular/material/radio';\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\n/**\n * Radio panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\n * that extends Angular Material's [radio group component](https://material.angular.io/components/radio/overview).\n * It inherits all the features of `MatRadioGroup`, and arranges the child items in panels,\n * with the `title` attributes rendered as captions. The check box icon and the borders will be displayed\n * in the color selected by the theme attribute `color`.\n *\n */\n@Component({\n\t// tslint:disable-next-line: directive-selector\n\tselector: 'bui-radio-panel',\n\texportAs: 'buiRadioPanel',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => RadioPanelComponent),\n\t\t\tmulti: true\n\t\t},\n\t\t{ provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }\n\t],\n\t// tslint:disable-next-line: no-host-metadata-property\n\thost: {\n\t\trole: 'radiogroup',\n\t\tclass: 'bui-radio-panel bui-host'\n\t},\n\ttemplate: ` <ng-content></ng-content> `,\n\tstyleUrls: ['radio-panel.component.scss']\n})\nexport class RadioPanelComponent extends MatRadioGroup implements OnChanges, AfterContentInit {\n\t/**\n\t * @ignore\n\t */\n\t@HostBinding('attr.class')\n\tclassAttr: string = '';\n\n\t@Input()\n\tpanelWidth = 280;\n\n\t/** The flow direction of the radio panel items */\n\t@Input()\n\tdirection: 'row' | 'column' = 'row';\n\n\t/** Theme color for all of the radio panels in the group. */\n\t@Input() color: ThemePalette;\n\n\t/** The default position of the 'tick' icon relative to the title. */\n\t@Input() tickPosition: 'start' | 'end' = 'start';\n\n\t/**\n\t * @ignore\n\t */\n\t@ContentChildren(RadioPanelItemComponent, { descendants: true })\n\t_radios!: QueryList<RadioPanelItemComponent>;\n\n\tconstructor(cd: ChangeDetectorRef) {\n\t\tsuper(cd);\n\t}\n\n\t/** @ignore */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (['color', 'tickPosition'].some(p => changes[p]) && this._radios) {\n\t\t\tthis._radios.forEach(item => item._markForCheck());\n\t\t}\n\n\t\tif (this.direction === 'row') {\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-row';\n\t\t} else {\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-column';\n\t\t}\n\n\t\tif (changes.panelWidth && this._radios) {\n\t\t\tthis._updatePanelWidth();\n\t\t}\n\t}\n\n\tngAfterContentInit(): void {\n\t\tthis._updatePanelWidth();\n\t}\n\n\tprivate _updatePanelWidth() {\n\t\tthis._radios.forEach(item => {\n\t\t\titem.panelWidth = this.panelWidth + 'px';\n\t\t\titem._markForCheck();\n\t\t});\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\nimport { RadioPanelComponent } from './radio-panel.component';\n\n/**\n * Import this NgModule for the radio panel component\n */\n@NgModule({\n\tdeclarations: [RadioPanelItemComponent, RadioPanelComponent],\n\timports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule],\n\texports: [RadioPanelItemComponent, RadioPanelComponent]\n})\nexport class RadioPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-radio-panel.js","sources":["../../../projects/ui/radio-panel/radio-panel-item.component.ts","../../../projects/ui/radio-panel/radio-panel-item.component.html","../../../projects/ui/radio-panel/radio-panel.component.ts","../../../projects/ui/radio-panel/radio-panel.module.ts","../../../projects/ui/radio-panel/bravura-ui-radio-panel.ts"],"sourcesContent":["import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n\tAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChild,\n\tElementRef,\n\tHostBinding,\n\tInject,\n\tInput,\n\tOptional,\n\tTemplateRef\n} from '@angular/core';\nimport {\n\tMatRadioButton,\n\tMatRadioDefaultOptions,\n\tMatRadioGroup,\n\tMAT_RADIO_DEFAULT_OPTIONS,\n\tMAT_RADIO_GROUP\n} from '@angular/material/radio';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.\n */\n@Component({\n\tselector: 'bui-radio-panel-item',\n\ttemplateUrl: './radio-panel-item.component.html',\n\tstyleUrls: ['./radio-panel-item.component.scss'],\n\t// tslint:disable-next-line: no-inputs-metadata-property\n\tinputs: ['disableRipple', 'tabIndex'],\n\texportAs: 'matRadioButton',\n\t// tslint:disable-next-line: no-host-metadata-property\n\thost: {\n\t\tclass: 'bui-radio-panel-item',\n\t\t'[class.bui-radio-checked]': 'checked',\n\t\t'[class.bui-disabled]': 'disabled',\n\t\t'[class._mat-animation-noopable]': '_noopAnimations',\n\t\t'[class.mat-primary]': 'color === \"primary\"',\n\t\t'[class.mat-accent]': 'color === \"accent\"',\n\t\t'[class.mat-warn]': 'color === \"warn\"',\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\n\t\t'[attr.tabindex]': 'null',\n\t\t'[attr.id]': 'id',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\n\t\t// the focus to the native element.\n\t\t'(focus)': '_inputElement.nativeElement.focus()'\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tanimations: [\n\t\ttrigger('slideInOut', [\n\t\t\tstate('void', style({ height: '0px', overflow: 'hidden' })),\n\t\t\ttransition(':enter, :leave', animate('.25s'))\n\t\t])\n\t]\n})\nexport class RadioPanelItemComponent extends MatRadioButton {\n\t/**\n\t * This will be displayed as the panel header\n\t */\n\t@Input()\n\ttitle = '';\n\n\t@HostBinding('style.--panel-width')\n\tpanelWidth = '280px';\n\n\t/** The default position of the 'tick' icon relative to the title. */\n\t@Input() private _tickPosition: 'start' | 'end' | undefined;\n\n\t@Input()\n\tget tickPosition(): 'start' | 'end' {\n\t\treturn this._tickPosition || (this.radioGroup as any)?.tickPosition;\n\t}\n\tset tickPosition(pos: 'start' | 'end') {\n\t\tthis._tickPosition = pos;\n\t}\n\n\t@ContentChild('contentOnSelect')\n\t//@ts-ignore\n\tcontentOnSelect: TemplateRef<any>;\n\n\tconstructor(\n\t\t@Optional() @Inject(MAT_RADIO_GROUP) radioGroup: MatRadioGroup,\n\t\telementRef: ElementRef,\n\t\t_changeDetector: ChangeDetectorRef,\n\t\t_focusMonitor: FocusMonitor,\n\t\t_radioDispatcher: UniqueSelectionDispatcher,\n\t\t@Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n\t\t@Optional()\n\t\t@Inject(MAT_RADIO_DEFAULT_OPTIONS)\n\t\t_providerOverride?: MatRadioDefaultOptions,\n\t\t@Attribute('tabindex') tabIndex?: string\n\t) {\n\t\tsuper(\n\t\t\tradioGroup,\n\t\t\telementRef,\n\t\t\t_changeDetector,\n\t\t\t_focusMonitor,\n\t\t\t_radioDispatcher,\n\t\t\tanimationMode,\n\t\t\t_providerOverride,\n\t\t\ttabIndex\n\t\t);\n\t}\n}\n","<label\n\tmatRipple\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t[matRippleDisabled]=\"disabled || checked\"\n\t[attr.for]=\"inputId\"\n\t#label\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\n>\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\n\t\t<div class=\"bui-label-header\">\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\tmatRipple\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t*ngIf=\"!disabled\"\n\t\t\t\t></span>\n\t\t\t\t<mat-icon [color]=\"color\" *ngIf=\"checked\">check_circle</mat-icon>\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t</span>\n\t\t</div>\n\t\t<!-- The actual 'radio' part of the control. -->\n\t\t<span class=\"radio-container\">\n\t\t\t<input\n\t\t\t\t#input\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\t[id]=\"inputId\"\n\t\t\t\t[checked]=\"checked\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[tabIndex]=\"tabIndex\"\n\t\t\t\t[attr.name]=\"name\"\n\t\t\t\t[attr.value]=\"value\"\n\t\t\t\t[required]=\"required\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\n\t\t\t\t(click)=\"_onInputClick($event)\"\n\t\t\t/>\n\t\t</span>\n\n\t\t<div class=\"bui-label-content-gap\"></div>\n\t\t<!-- The label content for radio control. -->\n\t\t<div class=\"bui-label-content\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t</div>\n\t</div>\n</label>\n","import {\n\tAfterContentInit,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tforwardRef,\n\tHostBinding,\n\tInput,\n\tOnChanges,\n\tQueryList,\n\tSimpleChanges\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatRadioGroup, MAT_RADIO_GROUP } from '@angular/material/radio';\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\n/**\n * Radio panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\n * that extends Angular Material's [radio group component](https://material.angular.io/components/radio/overview).\n * It inherits all the features of `MatRadioGroup`, and arranges the child items in panels,\n * with the `title` attributes rendered as captions. The check box icon and the borders will be displayed\n * in the color selected by the theme attribute `color`.\n *\n */\n@Component({\n\t// tslint:disable-next-line: directive-selector\n\tselector: 'bui-radio-panel',\n\texportAs: 'buiRadioPanel',\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => RadioPanelComponent),\n\t\t\tmulti: true\n\t\t},\n\t\t{ provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }\n\t],\n\t// tslint:disable-next-line: no-host-metadata-property\n\thost: {\n\t\trole: 'radiogroup',\n\t\tclass: 'bui-radio-panel bui-host'\n\t},\n\ttemplate: ` <ng-content></ng-content> `,\n\tstyleUrls: ['radio-panel.component.scss']\n})\nexport class RadioPanelComponent extends MatRadioGroup implements OnChanges, AfterContentInit {\n\t/**\n\t * @ignore\n\t */\n\t@HostBinding('attr.class')\n\tclassAttr: string = '';\n\n\t@Input()\n\tpanelWidth = 280;\n\n\t/** The flow direction of the radio panel items */\n\t@Input()\n\tdirection: 'row' | 'column' = 'row';\n\n\t/** Theme color for all of the radio panels in the group. */\n\t@Input() color: ThemePalette;\n\n\t/** The default position of the 'tick' icon relative to the title. */\n\t@Input() tickPosition: 'start' | 'end' = 'start';\n\n\t/**\n\t * @ignore\n\t */\n\t@ContentChildren(RadioPanelItemComponent, { descendants: true })\n\t_radios!: QueryList<RadioPanelItemComponent>;\n\n\tconstructor(cd: ChangeDetectorRef) {\n\t\tsuper(cd);\n\t}\n\n\t/** @ignore */\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (['color', 'tickPosition'].some(p => changes[p]) && this._radios) {\n\t\t\tthis._radios.forEach(item => item._markForCheck());\n\t\t}\n\n\t\tif (this.direction === 'row') {\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-row';\n\t\t} else {\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-column';\n\t\t}\n\n\t\tif (changes.panelWidth && this._radios) {\n\t\t\tthis._updatePanelWidth();\n\t\t}\n\t}\n\n\tngAfterContentInit(): void {\n\t\tthis._updatePanelWidth();\n\t}\n\n\tprivate _updatePanelWidth() {\n\t\tthis._radios.forEach(item => {\n\t\t\titem.panelWidth = this.panelWidth + 'px';\n\t\t\titem._markForCheck();\n\t\t});\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\nimport { RadioPanelComponent } from './radio-panel.component';\n\n/**\n * Import this NgModule for the radio panel component\n */\n@NgModule({\n\tdeclarations: [RadioPanelItemComponent, RadioPanelComponent],\n\timports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule],\n\texports: [RadioPanelItemComponent, RadioPanelComponent]\n})\nexport class RadioPanelModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -53,6 +53,7 @@ const BREAKPOINT = 768;
53
53
  class StepperComponent extends CdkStepper {
54
54
  constructor(dir, changeDetectorRef, _buiElRef, _document, stepperOptions, defaultStepperOptions) {
55
55
  super(dir, changeDetectorRef, _buiElRef, _document);
56
+ this.changeDetectorRef = changeDetectorRef;
56
57
  this._buiElRef = _buiElRef;
57
58
  /** @ignore Steps that belong to the current stepper, excluding ones from nested steppers. */
58
59
  this.steps = new QueryList();
@@ -138,7 +139,10 @@ class StepperComponent extends CdkStepper {
138
139
  }
139
140
  /** @ignore */
140
141
  _startStepTransition() {
141
- setTimeout(() => (this._stepTransitioning = true));
142
+ setTimeout(() => {
143
+ this._stepTransitioning = true;
144
+ this.changeDetectorRef.markForCheck();
145
+ });
142
146
  }
143
147
  }
144
148
  StepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: StepperComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: STEPPER_GLOBAL_OPTIONS, self: true }, { token: STEPPER_GLOBAL_OPTIONS, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
@@ -148,7 +152,7 @@ StepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
148
152
  { provide: MatHorizontalStepper, useExisting: StepperComponent },
149
153
  { provide: MatVerticalStepper, useExisting: StepperComponent },
150
154
  { provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
151
- ], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper{display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:bold;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}[dir=rtl] .bui-stepper-top-header-progress{margin-right:unset;margin-left:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly;flex-shrink:3}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], components: [{ type: i2.MatStepHeader, selector: "mat-step-header", inputs: ["color", "state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple"] }, { type: i3.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
155
+ ], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;box-sizing:border-box;background-color:var(--bui-bg-card)}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-content-header-label{font-size:larger;font-weight:bold;margin-bottom:32px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-number{color:var(--bui-bg-card)}.bui-stepper-top-header-container{display:flex;align-items:stretch}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-progress-spinner-light circle{stroke:var(--bui-color-divider)!important}.bui-stepper-top-header-progress{position:relative;display:flex;justify-content:center;align-items:center;margin-right:16px}[dir=rtl] .bui-stepper-top-header-progress{margin-right:unset;margin-left:16px}.bui-stepper-top-header-progress>.mat-progress-spinner{position:absolute}.bui-stepper-top-header-progress .bui-stepper-top-header-indicator{color:var(--bui-color-muted)}.bui-stepper-top-header-titles-wrapper{display:flex;flex-basis:max-content;flex-direction:column;justify-content:space-evenly;flex-shrink:3}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted)}.bui-stepper-content-container{flex:1 1 100%;padding:16px;display:flex;flex-direction:column}.cdk-high-contrast-active .bui-stepper-content-container{outline:solid 1px}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], components: [{ type: i2.MatStepHeader, selector: "mat-step-header", inputs: ["color", "state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple"] }, { type: i3.MatProgressSpinner, selector: "mat-progress-spinner", inputs: ["color", "mode", "diameter", "strokeWidth", "value"], exportAs: ["matProgressSpinner"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
152
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: StepperComponent, decorators: [{
153
157
  type: Component,
154
158
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-stepper.js","sources":["../../../projects/ui/stepper/stepper-animation.ts","../../../projects/ui/stepper/stepper.component.ts","../../../projects/ui/stepper/stepper.component.html","../../../projects/ui/stepper/stepper.module.ts","../../../projects/ui/stepper/bravura-ui-stepper.ts"],"sourcesContent":["import {\n\tanimate,\n\tAnimationStateMetadata,\n\tAnimationTransitionMetadata,\n\tstate,\n\tstyle,\n\ttransition,\n\ttrigger\n} from '@angular/animations';\n\nfunction drawerAnimations(isLeft: boolean): (AnimationStateMetadata | AnimationTransitionMetadata)[] {\n\tconst closedStyle = { opacity: '0', height: 0, width: 0, visibility: 'hidden' };\n\tconst left = { ...closedStyle, transform: 'translateX(50%)' };\n\tconst height = { ...closedStyle, transform: 'scaleY(0.5)' };\n\treturn [\n\t\tstate('open, open-instant', style({ visibility: 'visible' })),\n\t\tstate('void', style(isLeft ? left : height)),\n\t\ttransition('void => open-instant', animate('0ms')),\n\t\ttransition('void <=> open, open-instant => void', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\n\t];\n}\n\nexport default {\n\tstepTransition: trigger('stepTransition', [\n\t\tstate('previous', style({ transform: 'translate3d(0, -100%, 0)', visibility: 'hidden' })),\n\t\tstate('current', style({ transform: 'none', visibility: 'inherit' })),\n\t\tstate('next', style({ transform: 'translate3d(0, 100%, 0)', visibility: 'hidden' })),\n\t\ttransition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))\n\t]),\n\n\tleftDrawer: trigger('leftDrawer', drawerAnimations(true)),\n\ttopDrawer: trigger('topDrawer', drawerAnimations(false))\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CdkStepper, StepContentPositionState, StepperOptions, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tInput,\n\tOptional,\n\tOutput,\n\tQueryList,\n\tSelf,\n\tSkipSelf,\n\tTemplateRef,\n\tViewChild,\n\tViewChildren,\n\tViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n\tMatHorizontalStepper,\n\tMatStep,\n\tMatStepHeader,\n\tMatStepper,\n\tMatStepperIcon,\n\tMatStepperIconContext,\n\tMatVerticalStepper\n} from '@angular/material/stepper';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport animation from './stepper-animation';\n\n/** @ignore */\nconst BREAKPOINT = 768;\n\n/**\n * [Angular Material's stepper](https://material.angular.io/components/stepper/overview) provides a wizard-like workflow by dividing\n * content into logical steps.\n *\n * This stepper extends Angular's to customise the presentation of its headers to achieve a better user experience in both mobile and\n * desktop browsers.\n *\n */\n@Component({\n\tselector: 'bui-stepper, [buiStepper]',\n\texportAs: 'buiStepper, matStepper, matVerticalStepper, matHorizontalStepper',\n\ttemplateUrl: './stepper.component.html',\n\tstyleUrls: ['./stepper.component.scss'],\n\tinputs: ['selectedIndex'],\n\thost: {\n\t\tclass: 'bui-stepper bui-host',\n\t\t'[attr.aria-orientation]': 'orientation',\n\t\trole: 'tablist'\n\t},\n\tanimations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer],\n\tproviders: [\n\t\t{ provide: MatStepper, useExisting: StepperComponent },\n\t\t{ provide: CdkStepper, useExisting: StepperComponent },\n\t\t{ provide: MatHorizontalStepper, useExisting: StepperComponent },\n\t\t{ provide: MatVerticalStepper, useExisting: StepperComponent },\n\t\t{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StepperComponent extends CdkStepper implements AfterContentInit {\n\t/** @ignore The list of step headers of the steps in the stepper. */\n\t@ViewChildren(MatStepHeader) override _stepHeader!: QueryList<MatStepHeader>;\n\n\t/** @ignore Full list of steps inside the stepper, including inside nested steppers. */\n\t@ContentChildren(MatStep, { descendants: true }) override _steps!: QueryList<MatStep>;\n\n\t/** @ignore Steps that belong to the current stepper, excluding ones from nested steppers. */\n\toverride readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n\t/** @ignore Custom icon overrides passed in by the consumer. */\n\t@ContentChildren(MatStepperIcon, { descendants: true }) _icons!: QueryList<MatStepperIcon>;\n\n\t/** @ignore Event emitted when the current step is done transitioning in. */\n\t@Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n\t/** Whether ripples should be disabled for the step headers. */\n\t@Input() disableRipple?: boolean;\n\n\t/** Theme color for all of the steps in stepper. */\n\t@Input() color: ThemePalette;\n\n\t/**\n\t * A function that constructs the text in the progress cycle for the 'narrow' view.\n\t *\n\t * Default value: `'{selected step} of {total number of steps}'`\n\t */\n\t@Input() indicatorFormatter: (index: number, total: number) => string;\n\n\t/** The text that precedes the name of the next step label, used in the 'narrow' view. */\n\t@Input() nextStepLabelPrefix = 'Next: ';\n\n\t/** @ignore Consumer-specified template-refs to be used to override the header icons. */\n\t_iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n\t/** @ignore Stream of animation `done` events when the body expands/collapses. */\n\treadonly _animationDone = new Subject<AnimationEvent>();\n\n\t/** @ignore Whether the stepper is in a narrow container */\n\t_narrow = false;\n\n\t/** @ignore Emits whenever the drawer has started animating. */\n\treadonly _leftDrawerStarted = new Subject<AnimationEvent>();\n\t/** @ignore Emits whenever the drawer is done animating. */\n\treadonly _leftDrawerEnded = new Subject<AnimationEvent>();\n\t/** @ignore Current state of the sidenav animation. */\n\t_leftDrawerState: 'open-instant' | 'open' | 'void' = 'open-instant';\n\n\t/** @ignore Emits whenever the drawer has started animating. */\n\treadonly _topDrawerStarted = new Subject<AnimationEvent>();\n\t/** @ignore Emits whenever the drawer is done animating. */\n\treadonly _topDrawerEnded = new Subject<AnimationEvent>();\n\t/** @ignore Current state of the sidenav animation. */\n\t_topDrawerState: 'open-instant' | 'open' | 'void' = 'void';\n\n\t/** @ignore */ readonly _progressCircleSize = 80;\n\t/** @ignore */ readonly _progressCircleWidth = 5;\n\t/** @ignore */ _stepTransitioning = false;\n\n\t@ViewChild('editIconTemplate', { static: true })\n\tprivate _editIconTemplate!: TemplateRef<any>;\n\n\tconstructor(\n\t\t@Optional() dir: Directionality,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\tprivate _buiElRef: ElementRef<HTMLElement>,\n\t\t@Inject(DOCUMENT) _document: any,\n\t\t@Self() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions: StepperOptions,\n\t\t@Optional() @SkipSelf() @Inject(STEPPER_GLOBAL_OPTIONS) defaultStepperOptions?: StepperOptions\n\t) {\n\t\tsuper(dir, changeDetectorRef, _buiElRef, _document);\n\t\tthis.orientation = 'vertical';\n\t\tthis.indicatorFormatter = (index, total) => `${index} of ${total}`;\n\t\tObject.keys(defaultStepperOptions || {})\n\t\t\t.filter(k => k !== 'displayDefaultIndicatorType')\n\t\t\t.forEach(((k: keyof StepperOptions) => (stepperOptions[k] = defaultStepperOptions![k])) as any);\n\t}\n\n\toverride ngAfterContentInit() {\n\t\tsuper.ngAfterContentInit();\n\t\tthis._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));\n\n\t\t// Mark the component for change detection whenever the content children query changes\n\t\tthis.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n\t\t\tthis._stateChanged();\n\t\t});\n\n\t\tthis._animationDone\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(event => {\n\t\t\t\tif ((event.toState as StepContentPositionState) === 'current') {\n\t\t\t\t\tthis.animationDone.emit();\n\t\t\t\t\tthis._stepTransitioning = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis._leftDrawerEnded\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\tfilter(ev => ev.toState === 'void' && ev.toState !== ev.fromState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._topDrawerState = 'open';\n\t\t\t});\n\n\t\tthis._topDrawerEnded\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\tfilter(ev => ev.toState === 'void' && ev.toState !== ev.fromState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._leftDrawerState = 'open';\n\t\t\t});\n\t\tthis._iconOverrides.edit = this._iconOverrides.edit || this._editIconTemplate;\n\t}\n\n\t/** @ignore */\n\t_stepIsNavigable(index: number, step: MatStep): boolean {\n\t\treturn step.completed || this.selectedIndex === index || !this.linear;\n\t}\n\n\t/** @ignore */\n\t_widthChanged(w: number) {\n\t\tconst narrow = Math.abs(w - BREAKPOINT) < 20 ? this._narrow : w < BREAKPOINT;\n\t\tconst cls = 'bui-stepper-narrow';\n\t\tconst classList = this._buiElRef.nativeElement.classList;\n\t\tif (narrow) {\n\t\t\tthis._leftDrawerState = 'void';\n\t\t\tclassList.add(cls);\n\t\t} else {\n\t\t\tthis._topDrawerState = 'void';\n\t\t\tclassList.remove(cls);\n\t\t}\n\t\tif (this._narrow !== narrow) {\n\t\t\tthis._narrow = narrow;\n\t\t\tthis._stateChanged();\n\t\t}\n\t}\n\n\t/** @ignore */\n\t_startStepTransition() {\n\t\tsetTimeout(() => (this._stepTransitioning = true));\n\t}\n}\n","<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { BehaviorModule } from '@bravura/ui/behavior';\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n\tdeclarations: [StepperComponent],\n\timports: [\n\t\tCommonModule,\n\t\tPortalModule,\n\t\tCdkStepperModule,\n\t\tMatStepperModule,\n\t\tMatButtonModule,\n\t\tMatIconModule,\n\t\tMatRippleModule,\n\t\tMatProgressSpinnerModule,\n\t\tBehaviorModule\n\t],\n\texports: [StepperComponent, MatStepperModule]\n})\nexport class StepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-stepper.js","sources":["../../../projects/ui/stepper/stepper-animation.ts","../../../projects/ui/stepper/stepper.component.ts","../../../projects/ui/stepper/stepper.component.html","../../../projects/ui/stepper/stepper.module.ts","../../../projects/ui/stepper/bravura-ui-stepper.ts"],"sourcesContent":["import {\n\tanimate,\n\tAnimationStateMetadata,\n\tAnimationTransitionMetadata,\n\tstate,\n\tstyle,\n\ttransition,\n\ttrigger\n} from '@angular/animations';\n\nfunction drawerAnimations(isLeft: boolean): (AnimationStateMetadata | AnimationTransitionMetadata)[] {\n\tconst closedStyle = { opacity: '0', height: 0, width: 0, visibility: 'hidden' };\n\tconst left = { ...closedStyle, transform: 'translateX(50%)' };\n\tconst height = { ...closedStyle, transform: 'scaleY(0.5)' };\n\treturn [\n\t\tstate('open, open-instant', style({ visibility: 'visible' })),\n\t\tstate('void', style(isLeft ? left : height)),\n\t\ttransition('void => open-instant', animate('0ms')),\n\t\ttransition('void <=> open, open-instant => void', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))\n\t];\n}\n\nexport default {\n\tstepTransition: trigger('stepTransition', [\n\t\tstate('previous', style({ transform: 'translate3d(0, -100%, 0)', visibility: 'hidden' })),\n\t\tstate('current', style({ transform: 'none', visibility: 'inherit' })),\n\t\tstate('next', style({ transform: 'translate3d(0, 100%, 0)', visibility: 'hidden' })),\n\t\ttransition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))\n\t]),\n\n\tleftDrawer: trigger('leftDrawer', drawerAnimations(true)),\n\ttopDrawer: trigger('topDrawer', drawerAnimations(false))\n};\n","import { AnimationEvent } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CdkStepper, StepContentPositionState, StepperOptions, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tAfterContentInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tInput,\n\tOptional,\n\tOutput,\n\tQueryList,\n\tSelf,\n\tSkipSelf,\n\tTemplateRef,\n\tViewChild,\n\tViewChildren,\n\tViewEncapsulation\n} from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport {\n\tMatHorizontalStepper,\n\tMatStep,\n\tMatStepHeader,\n\tMatStepper,\n\tMatStepperIcon,\n\tMatStepperIconContext,\n\tMatVerticalStepper\n} from '@angular/material/stepper';\nimport { Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport animation from './stepper-animation';\n\n/** @ignore */\nconst BREAKPOINT = 768;\n\n/**\n * [Angular Material's stepper](https://material.angular.io/components/stepper/overview) provides a wizard-like workflow by dividing\n * content into logical steps.\n *\n * This stepper extends Angular's to customise the presentation of its headers to achieve a better user experience in both mobile and\n * desktop browsers.\n *\n */\n@Component({\n\tselector: 'bui-stepper, [buiStepper]',\n\texportAs: 'buiStepper, matStepper, matVerticalStepper, matHorizontalStepper',\n\ttemplateUrl: './stepper.component.html',\n\tstyleUrls: ['./stepper.component.scss'],\n\tinputs: ['selectedIndex'],\n\thost: {\n\t\tclass: 'bui-stepper bui-host',\n\t\t'[attr.aria-orientation]': 'orientation',\n\t\trole: 'tablist'\n\t},\n\tanimations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer],\n\tproviders: [\n\t\t{ provide: MatStepper, useExisting: StepperComponent },\n\t\t{ provide: CdkStepper, useExisting: StepperComponent },\n\t\t{ provide: MatHorizontalStepper, useExisting: StepperComponent },\n\t\t{ provide: MatVerticalStepper, useExisting: StepperComponent },\n\t\t{ provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StepperComponent extends CdkStepper implements AfterContentInit {\n\t/** @ignore The list of step headers of the steps in the stepper. */\n\t@ViewChildren(MatStepHeader) override _stepHeader!: QueryList<MatStepHeader>;\n\n\t/** @ignore Full list of steps inside the stepper, including inside nested steppers. */\n\t@ContentChildren(MatStep, { descendants: true }) override _steps!: QueryList<MatStep>;\n\n\t/** @ignore Steps that belong to the current stepper, excluding ones from nested steppers. */\n\toverride readonly steps: QueryList<MatStep> = new QueryList<MatStep>();\n\n\t/** @ignore Custom icon overrides passed in by the consumer. */\n\t@ContentChildren(MatStepperIcon, { descendants: true }) _icons!: QueryList<MatStepperIcon>;\n\n\t/** @ignore Event emitted when the current step is done transitioning in. */\n\t@Output() readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n\t/** Whether ripples should be disabled for the step headers. */\n\t@Input() disableRipple?: boolean;\n\n\t/** Theme color for all of the steps in stepper. */\n\t@Input() color: ThemePalette;\n\n\t/**\n\t * A function that constructs the text in the progress cycle for the 'narrow' view.\n\t *\n\t * Default value: `'{selected step} of {total number of steps}'`\n\t */\n\t@Input() indicatorFormatter: (index: number, total: number) => string;\n\n\t/** The text that precedes the name of the next step label, used in the 'narrow' view. */\n\t@Input() nextStepLabelPrefix = 'Next: ';\n\n\t/** @ignore Consumer-specified template-refs to be used to override the header icons. */\n\t_iconOverrides: Record<string, TemplateRef<MatStepperIconContext>> = {};\n\n\t/** @ignore Stream of animation `done` events when the body expands/collapses. */\n\treadonly _animationDone = new Subject<AnimationEvent>();\n\n\t/** @ignore Whether the stepper is in a narrow container */\n\t_narrow = false;\n\n\t/** @ignore Emits whenever the drawer has started animating. */\n\treadonly _leftDrawerStarted = new Subject<AnimationEvent>();\n\t/** @ignore Emits whenever the drawer is done animating. */\n\treadonly _leftDrawerEnded = new Subject<AnimationEvent>();\n\t/** @ignore Current state of the sidenav animation. */\n\t_leftDrawerState: 'open-instant' | 'open' | 'void' = 'open-instant';\n\n\t/** @ignore Emits whenever the drawer has started animating. */\n\treadonly _topDrawerStarted = new Subject<AnimationEvent>();\n\t/** @ignore Emits whenever the drawer is done animating. */\n\treadonly _topDrawerEnded = new Subject<AnimationEvent>();\n\t/** @ignore Current state of the sidenav animation. */\n\t_topDrawerState: 'open-instant' | 'open' | 'void' = 'void';\n\n\t/** @ignore */ readonly _progressCircleSize = 80;\n\t/** @ignore */ readonly _progressCircleWidth = 5;\n\t/** @ignore */ _stepTransitioning = false;\n\n\t@ViewChild('editIconTemplate', { static: true })\n\tprivate _editIconTemplate!: TemplateRef<any>;\n\n\tconstructor(\n\t\t@Optional() dir: Directionality,\n\t\tprivate changeDetectorRef: ChangeDetectorRef,\n\t\tprivate _buiElRef: ElementRef<HTMLElement>,\n\t\t@Inject(DOCUMENT) _document: any,\n\t\t@Self() @Inject(STEPPER_GLOBAL_OPTIONS) stepperOptions: StepperOptions,\n\t\t@Optional() @SkipSelf() @Inject(STEPPER_GLOBAL_OPTIONS) defaultStepperOptions?: StepperOptions\n\t) {\n\t\tsuper(dir, changeDetectorRef, _buiElRef, _document);\n\t\tthis.orientation = 'vertical';\n\t\tthis.indicatorFormatter = (index, total) => `${index} of ${total}`;\n\t\tObject.keys(defaultStepperOptions || {})\n\t\t\t.filter(k => k !== 'displayDefaultIndicatorType')\n\t\t\t.forEach(((k: keyof StepperOptions) => (stepperOptions[k] = defaultStepperOptions![k])) as any);\n\t}\n\n\toverride ngAfterContentInit() {\n\t\tsuper.ngAfterContentInit();\n\t\tthis._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));\n\n\t\t// Mark the component for change detection whenever the content children query changes\n\t\tthis.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n\t\t\tthis._stateChanged();\n\t\t});\n\n\t\tthis._animationDone\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(event => {\n\t\t\t\tif ((event.toState as StepContentPositionState) === 'current') {\n\t\t\t\t\tthis.animationDone.emit();\n\t\t\t\t\tthis._stepTransitioning = false;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis._leftDrawerEnded\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\tfilter(ev => ev.toState === 'void' && ev.toState !== ev.fromState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._topDrawerState = 'open';\n\t\t\t});\n\n\t\tthis._topDrawerEnded\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\n\t\t\t\tfilter(ev => ev.toState === 'void' && ev.toState !== ev.fromState),\n\t\t\t\ttakeUntil(this._destroyed)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._leftDrawerState = 'open';\n\t\t\t});\n\t\tthis._iconOverrides.edit = this._iconOverrides.edit || this._editIconTemplate;\n\t}\n\n\t/** @ignore */\n\t_stepIsNavigable(index: number, step: MatStep): boolean {\n\t\treturn step.completed || this.selectedIndex === index || !this.linear;\n\t}\n\n\t/** @ignore */\n\t_widthChanged(w: number) {\n\t\tconst narrow = Math.abs(w - BREAKPOINT) < 20 ? this._narrow : w < BREAKPOINT;\n\t\tconst cls = 'bui-stepper-narrow';\n\t\tconst classList = this._buiElRef.nativeElement.classList;\n\t\tif (narrow) {\n\t\t\tthis._leftDrawerState = 'void';\n\t\t\tclassList.add(cls);\n\t\t} else {\n\t\t\tthis._topDrawerState = 'void';\n\t\t\tclassList.remove(cls);\n\t\t}\n\t\tif (this._narrow !== narrow) {\n\t\t\tthis._narrow = narrow;\n\t\t\tthis._stateChanged();\n\t\t}\n\t}\n\n\t/** @ignore */\n\t_startStepTransition() {\n\t\tsetTimeout(() => {\n\t\t\tthis._stepTransitioning = true;\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t}\n}\n","<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"bui-stepper-top-header-progress\"\n\t\t\t\t[style]=\"'height:' + _progressCircleSize + 'px; width:' + _progressCircleSize + 'px'\"\n\t\t\t>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\tclass=\"bui-progress-spinner-light\"\n\t\t\t\t\t[value]=\"100\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<mat-progress-spinner\n\t\t\t\t\t[color]=\"color\"\n\t\t\t\t\t[value]=\"((selectedIndex + 1) * 100) / steps.length\"\n\t\t\t\t\t[diameter]=\"_progressCircleSize\"\n\t\t\t\t\t[strokeWidth]=\"_progressCircleWidth\"\n\t\t\t\t></mat-progress-spinner>\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\t{{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ $implicit: step }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { BehaviorModule } from '@bravura/ui/behavior';\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n\tdeclarations: [StepperComponent],\n\timports: [\n\t\tCommonModule,\n\t\tPortalModule,\n\t\tCdkStepperModule,\n\t\tMatStepperModule,\n\t\tMatButtonModule,\n\t\tMatIconModule,\n\t\tMatRippleModule,\n\t\tMatProgressSpinnerModule,\n\t\tBehaviorModule\n\t],\n\texports: [StepperComponent, MatStepperModule]\n})\nexport class StepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,11 +6,12 @@ import { CdkScrollableModule } from '@angular/cdk/scrolling';
6
6
  import * as i2 from '@angular/common';
7
7
  import { DOCUMENT, CommonModule } from '@angular/common';
8
8
  import * as i0 from '@angular/core';
9
- import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, forwardRef, Directive, Optional, Input, HostListener, NgModule } from '@angular/core';
9
+ import { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, TemplateRef, forwardRef, Directive, Optional, Input, HostListener, NgModule } from '@angular/core';
10
10
  import { MatCommonModule } from '@angular/material/core';
11
11
  import { TooltipComponent as TooltipComponent$1, matTooltipAnimations, _MatTooltipBase, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/tooltip';
12
12
  import { getTextWidth } from '@bravura/ui/common';
13
13
  import * as i1 from '@angular/cdk/layout';
14
+ import { Subject, Observable } from 'rxjs';
14
15
  import * as i2$1 from '@angular/cdk/platform';
15
16
  import * as i4 from '@angular/cdk/bidi';
16
17
 
@@ -80,6 +81,7 @@ class TooltipDirective extends _MatTooltipBase {
80
81
  constructor(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document) {
81
82
  super(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document);
82
83
  this._tooltipComponent = TooltipComponent;
84
+ this._contentSub = new Subject().subscribe();
83
85
  this.touchGestures = 'off';
84
86
  const element = elementRef.nativeElement;
85
87
  element.setAttribute('aria-hidden', 'false');
@@ -107,19 +109,26 @@ class TooltipDirective extends _MatTooltipBase {
107
109
  return this._templateRef || this.message;
108
110
  }
109
111
  set buiTooltip(value) {
112
+ this._contentSub.unsubscribe();
113
+ this._contentObs = undefined;
114
+ this._templateRef = undefined;
115
+ this.message = '';
110
116
  if (typeof value === 'string') {
111
117
  this.message = value;
112
118
  }
113
- else {
119
+ else if (value instanceof TemplateRef) {
114
120
  this._templateRef = value;
115
121
  if (value) {
116
122
  this.message = '[bui-tooltip-template]';
117
123
  }
118
124
  else {
119
125
  this._templateRef = undefined;
120
- this.message = '';
121
126
  }
122
127
  }
128
+ else if (value instanceof Observable) {
129
+ this.message = '...';
130
+ this._contentObs = value;
131
+ }
123
132
  }
124
133
  /** @ignore */
125
134
  get template() {
@@ -136,6 +145,23 @@ class TooltipDirective extends _MatTooltipBase {
136
145
  clicked() {
137
146
  this.toggle();
138
147
  }
148
+ /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */
149
+ show(delay = this.showDelay) {
150
+ if (this._contentObs) {
151
+ this._contentSub.unsubscribe();
152
+ this._contentSub = this._contentObs.subscribe(c => {
153
+ this.message = c;
154
+ this._contentSub.unsubscribe();
155
+ super.show(delay);
156
+ });
157
+ }
158
+ else {
159
+ super.show(delay);
160
+ }
161
+ }
162
+ ngOnDestroy() {
163
+ this._contentSub.unsubscribe();
164
+ }
139
165
  }
140
166
  TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TooltipDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i1$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: i0.NgZone }, { token: i2$1.Platform }, { token: i3.AriaDescriber }, { token: i3.FocusMonitor }, { token: MAT_TOOLTIP_SCROLL_STRATEGY }, { token: i4.Directionality, optional: true }, { token: MAT_TOOLTIP_DEFAULT_OPTIONS, optional: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
141
167
  TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TooltipDirective, selector: "[buiTooltip]", inputs: { buiTooltipPosition: "buiTooltipPosition", buiTooltipDisabled: "buiTooltipDisabled", buiTooltip: "buiTooltip", buiTooltipClass: "buiTooltipClass" }, host: { listeners: { "click": "clicked()" }, classAttribute: "mat-tooltip-trigger bui-tooltip-trigger" }, providers: [
@@ -205,5 +231,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
205
231
  * Generated bundle index. Do not edit.
206
232
  */
207
233
 
208
- export { TooltipDirective, TooltipModule };
234
+ export { BUI_TOOLTIP_TEMPLATE_REF, TooltipDirective, TooltipModule };
209
235
  //# sourceMappingURL=bravura-ui-tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-tooltip.js","sources":["../../../projects/ui/tooltip/tooltip.component.ts","../../../projects/ui/tooltip/tooltip.component.html","../../../projects/ui/tooltip/tooltip.directive.ts","../../../projects/ui/tooltip/tooltip.module.ts","../../../projects/ui/tooltip/bravura-ui-tooltip.ts"],"sourcesContent":["import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tInject,\n\tInjectionToken,\n\tTemplateRef,\n\tViewChild,\n\tViewEncapsulation\n} from '@angular/core';\nimport { matTooltipAnimations, TooltipComponent as MatTooltipComponent } from '@angular/material/tooltip';\nimport { getTextWidth } from '@bravura/ui/common';\n\n/**\n * @ignore\n */\ninterface TooltipTemplateContainer {\n\ttemplate?: TemplateRef<any>;\n}\n\n/**\n * @ignore\n */\nexport const BUI_TOOLTIP_TEMPLATE_REF = new InjectionToken<TooltipTemplateContainer>(\n\t'@bravura/ui/tooltip/templateContainer'\n);\n\n@Component({\n\tselector: 'bui-tooltip-component',\n\ttemplateUrl: './tooltip.component.html',\n\tstyleUrls: ['./tooltip.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tanimations: [matTooltipAnimations.tooltipState],\n\thost: {\n\t\tclass: 'bui-tooltip-component bui-host',\n\t\t// Forces the element to have a layout in IE and Edge. This fixes issues where the element\n\t\t// won't be rendered if the animations are disabled or there is no web animations polyfill.\n\t\t'[style.zoom]': '_visibility === \"visible\" ? 1 : null',\n\t\t'(body:click)': 'this._handleBodyInteraction()',\n\t\t'(body:auxclick)': 'this._handleBodyInteraction()',\n\t\t'aria-hidden': 'true'\n\t}\n})\nexport class TooltipComponent extends MatTooltipComponent {\n\tprivate _messageCopy = '';\n\n\t@ViewChild('tooltip', { static: true })\n\t_tooltip!: ElementRef<HTMLElement>;\n\n\t@ViewChild('tooltipDiv', { static: true })\n\tprivate tooltipDiv!: ElementRef<HTMLDivElement>;\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\t_breakpointObserver: BreakpointObserver,\n\t\t@Inject(BUI_TOOLTIP_TEMPLATE_REF) public _tooltipInst: TooltipTemplateContainer\n\t) {\n\t\tsuper(changeDetectorRef, _breakpointObserver);\n\t}\n\n\tshow(delay: number): void {\n\t\tif (this._messageCopy !== this.message && !this._tooltipInst.template) {\n\t\t\tthis.tooltipDiv.nativeElement.innerHTML = this.message;\n\t\t\tthis._messageCopy = this.message;\n\t\t\tconst width = Math.max(Math.sqrt(getTextWidth(this.message) * 40), 360);\n\t\t\tthis._tooltip.nativeElement.style.maxWidth = `${width}px`;\n\t\t}\n\t\tsuper.show(delay);\n\t}\n\n\tget _self(): any {\n\t\treturn this;\n\t}\n}\n\n(TooltipComponent as any).ɵcmp.styles.push((MatTooltipComponent as any).ɵcmp.styles);\n","<div\n\t#tooltip\n\tclass=\"mat-tooltip bui-tooltip\"\n\t[ngClass]=\"tooltipClass\"\n\t[class.mat-tooltip-handset]=\"(_isHandset | async)?.matches\"\n\t[@state]=\"_visibility\"\n\t(@state.start)=\"_self._animationStart && _self._animationStart()\"\n\t(@state.done)=\"_self._animationDone && _self._animationDone($event)\"\n\t(animationend)=\"_self._handleAnimationEnd && _self._handleAnimationEnd($event)\"\n>\n\t<ng-template [ngIf]=\"_tooltipInst.template\">\n\t\t<ng-template [ngTemplateOutlet]=\"_tooltipInst.template\"></ng-template>\n\t</ng-template>\n\t<div #tooltipDiv></div>\n</div>\n","import { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tDirective,\n\tElementRef,\n\tforwardRef,\n\tHostListener,\n\tInject,\n\tInput,\n\tNgZone,\n\tOptional,\n\tTemplateRef,\n\tViewContainerRef\n} from '@angular/core';\nimport {\n\tMatTooltipDefaultOptions,\n\tMAT_TOOLTIP_DEFAULT_OPTIONS,\n\tMAT_TOOLTIP_SCROLL_STRATEGY,\n\tTooltipPosition,\n\t_MatTooltipBase\n} from '@angular/material/tooltip';\nimport { BUI_TOOLTIP_TEMPLATE_REF, TooltipComponent } from './tooltip.component';\n\n/**\n * This directive extends [Angular Material tooltip](https://material.angular.io/components/tooltip/overview), with the additional capability of displaying\n * HTML content in the overlay area.\n *\n * All the other features are identical as those in Angular Material tooltip.\n */\n@Directive({\n\tselector: '[buiTooltip]',\n\texportAs: 'buiTooltip',\n\thost: {\n\t\tclass: 'mat-tooltip-trigger bui-tooltip-trigger'\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: BUI_TOOLTIP_TEMPLATE_REF,\n\t\t\tuseExisting: forwardRef(() => TooltipDirective)\n\t\t}\n\t]\n})\nexport class TooltipDirective extends _MatTooltipBase<TooltipComponent> {\n\tprotected readonly _tooltipComponent = TooltipComponent;\n\tprivate _templateRef?: TemplateRef<any>;\n\n\tconstructor(\n\t\toverlay: Overlay,\n\t\telementRef: ElementRef<HTMLElement>,\n\t\tscrollDispatcher: ScrollDispatcher,\n\t\tviewContainerRef: ViewContainerRef,\n\t\tngZone: NgZone,\n\t\tplatform: Platform,\n\t\tariaDescriber: AriaDescriber,\n\t\tfocusMonitor: FocusMonitor,\n\t\t@Inject(MAT_TOOLTIP_SCROLL_STRATEGY) scrollStrategy: any,\n\t\t@Optional() dir: Directionality,\n\t\t@Optional() @Inject(MAT_TOOLTIP_DEFAULT_OPTIONS) defaultOptions: MatTooltipDefaultOptions,\n\t\t@Inject(DOCUMENT) _document: any\n\t) {\n\t\tsuper(\n\t\t\toverlay,\n\t\t\telementRef,\n\t\t\tscrollDispatcher,\n\t\t\tviewContainerRef,\n\t\t\tngZone,\n\t\t\tplatform,\n\t\t\tariaDescriber,\n\t\t\tfocusMonitor,\n\t\t\tscrollStrategy,\n\t\t\tdir,\n\t\t\tdefaultOptions,\n\t\t\t_document\n\t\t);\n\t\tthis.touchGestures = 'off';\n\t\tconst element = elementRef.nativeElement;\n\t\telement.setAttribute('aria-hidden', 'false');\n\t\tif (element.tabIndex === -1) {\n\t\t\telement.tabIndex = 0;\n\t\t\telement.setAttribute('aria-roledescription', 'tooltip');\n\t\t}\n\t}\n\n\t/** Allows the user to define the position of the tooltip relative to the parent element */\n\t@Input()\n\tget buiTooltipPosition(): TooltipPosition {\n\t\treturn this.position;\n\t}\n\tset buiTooltipPosition(value: TooltipPosition) {\n\t\tthis.position = value;\n\t}\n\n\t/** Disables the display of the tooltip. */\n\t@Input()\n\tget buiTooltipDisabled(): boolean {\n\t\treturn this.disabled;\n\t}\n\tset buiTooltipDisabled(value) {\n\t\tthis.disabled = value;\n\t}\n\n\t/** The message to be displayed in the tooltip. */\n\t@Input()\n\tget buiTooltip(): string | TemplateRef<any> {\n\t\treturn this._templateRef || this.message;\n\t}\n\tset buiTooltip(value) {\n\t\tif (typeof value === 'string') {\n\t\t\tthis.message = value;\n\t\t} else {\n\t\t\tthis._templateRef = value;\n\t\t\tif (value) {\n\t\t\t\tthis.message = '[bui-tooltip-template]';\n\t\t\t} else {\n\t\t\t\tthis._templateRef = undefined;\n\t\t\t\tthis.message = '';\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @ignore */\n\tget template(): TemplateRef<any> | undefined {\n\t\treturn this._templateRef;\n\t}\n\n\t/** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n\t@Input()\n\tget buiTooltipClass() {\n\t\treturn this.tooltipClass;\n\t}\n\tset buiTooltipClass(value: string | string[] | Set<string> | { [key: string]: any }) {\n\t\tthis.tooltipClass = value;\n\t}\n\n\t/** @ignore */\n\t@HostListener('click')\n\tclicked() {\n\t\tthis.toggle();\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/tooltip';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n\timports: [A11yModule, CommonModule, OverlayModule, MatCommonModule],\n\texports: [TooltipDirective, MatCommonModule, CdkScrollableModule],\n\tdeclarations: [TooltipDirective, TooltipComponent],\n\tentryComponents: [TooltipComponent],\n\tproviders: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER]\n})\nexport class TooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MatTooltipComponent"],"mappings":"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"}
1
+ {"version":3,"file":"bravura-ui-tooltip.js","sources":["../../../projects/ui/tooltip/tooltip.component.ts","../../../projects/ui/tooltip/tooltip.component.html","../../../projects/ui/tooltip/tooltip.directive.ts","../../../projects/ui/tooltip/tooltip.module.ts","../../../projects/ui/tooltip/bravura-ui-tooltip.ts"],"sourcesContent":["import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tInject,\n\tInjectionToken,\n\tTemplateRef,\n\tViewChild,\n\tViewEncapsulation\n} from '@angular/core';\nimport { matTooltipAnimations, TooltipComponent as MatTooltipComponent } from '@angular/material/tooltip';\nimport { getTextWidth } from '@bravura/ui/common';\n\n/**\n * @ignore\n */\ninterface TooltipTemplateContainer {\n\ttemplate?: TemplateRef<any>;\n}\n\n/**\n * @ignore\n */\nexport const BUI_TOOLTIP_TEMPLATE_REF = new InjectionToken<TooltipTemplateContainer>(\n\t'@bravura/ui/tooltip/templateContainer'\n);\n\n@Component({\n\tselector: 'bui-tooltip-component',\n\ttemplateUrl: './tooltip.component.html',\n\tstyleUrls: ['./tooltip.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tanimations: [matTooltipAnimations.tooltipState],\n\thost: {\n\t\tclass: 'bui-tooltip-component bui-host',\n\t\t// Forces the element to have a layout in IE and Edge. This fixes issues where the element\n\t\t// won't be rendered if the animations are disabled or there is no web animations polyfill.\n\t\t'[style.zoom]': '_visibility === \"visible\" ? 1 : null',\n\t\t'(body:click)': 'this._handleBodyInteraction()',\n\t\t'(body:auxclick)': 'this._handleBodyInteraction()',\n\t\t'aria-hidden': 'true'\n\t}\n})\nexport class TooltipComponent extends MatTooltipComponent {\n\tprivate _messageCopy = '';\n\n\t@ViewChild('tooltip', { static: true })\n\t_tooltip!: ElementRef<HTMLElement>;\n\n\t@ViewChild('tooltipDiv', { static: true })\n\tprivate tooltipDiv!: ElementRef<HTMLDivElement>;\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\t_breakpointObserver: BreakpointObserver,\n\t\t@Inject(BUI_TOOLTIP_TEMPLATE_REF) public _tooltipInst: TooltipTemplateContainer\n\t) {\n\t\tsuper(changeDetectorRef, _breakpointObserver);\n\t}\n\n\tshow(delay: number): void {\n\t\tif (this._messageCopy !== this.message && !this._tooltipInst.template) {\n\t\t\tthis.tooltipDiv.nativeElement.innerHTML = this.message;\n\t\t\tthis._messageCopy = this.message;\n\t\t\tconst width = Math.max(Math.sqrt(getTextWidth(this.message) * 40), 360);\n\t\t\tthis._tooltip.nativeElement.style.maxWidth = `${width}px`;\n\t\t}\n\t\tsuper.show(delay);\n\t}\n\n\tget _self(): any {\n\t\treturn this;\n\t}\n}\n\n(TooltipComponent as any).ɵcmp.styles.push((MatTooltipComponent as any).ɵcmp.styles);\n","<div\n\t#tooltip\n\tclass=\"mat-tooltip bui-tooltip\"\n\t[ngClass]=\"tooltipClass\"\n\t[class.mat-tooltip-handset]=\"(_isHandset | async)?.matches\"\n\t[@state]=\"_visibility\"\n\t(@state.start)=\"_self._animationStart && _self._animationStart()\"\n\t(@state.done)=\"_self._animationDone && _self._animationDone($event)\"\n\t(animationend)=\"_self._handleAnimationEnd && _self._handleAnimationEnd($event)\"\n>\n\t<ng-template [ngIf]=\"_tooltipInst.template\">\n\t\t<ng-template [ngTemplateOutlet]=\"_tooltipInst.template\"></ng-template>\n\t</ng-template>\n\t<div #tooltipDiv></div>\n</div>\n","import { AriaDescriber, FocusMonitor } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport {\n\tDirective,\n\tElementRef,\n\tforwardRef,\n\tHostListener,\n\tInject,\n\tInput,\n\tNgZone,\n\tOptional,\n\tTemplateRef,\n\tViewContainerRef\n} from '@angular/core';\nimport {\n\tMatTooltipDefaultOptions,\n\tMAT_TOOLTIP_DEFAULT_OPTIONS,\n\tMAT_TOOLTIP_SCROLL_STRATEGY,\n\tTooltipPosition,\n\t_MatTooltipBase\n} from '@angular/material/tooltip';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { BUI_TOOLTIP_TEMPLATE_REF, TooltipComponent } from './tooltip.component';\n\n/**\n * This directive extends [Angular Material tooltip](https://material.angular.io/components/tooltip/overview), with the additional capability of displaying\n * HTML content in the overlay area.\n *\n * All the other features are identical as those in Angular Material tooltip.\n */\n@Directive({\n\tselector: '[buiTooltip]',\n\texportAs: 'buiTooltip',\n\thost: {\n\t\tclass: 'mat-tooltip-trigger bui-tooltip-trigger'\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: BUI_TOOLTIP_TEMPLATE_REF,\n\t\t\tuseExisting: forwardRef(() => TooltipDirective)\n\t\t}\n\t]\n})\nexport class TooltipDirective extends _MatTooltipBase<TooltipComponent> {\n\tprotected readonly _tooltipComponent = TooltipComponent;\n\tprivate _templateRef?: TemplateRef<any>;\n\tprivate _contentSub: Subscription = new Subject<void>().subscribe();\n\tprivate _contentObs?: Observable<string>;\n\n\tconstructor(\n\t\toverlay: Overlay,\n\t\telementRef: ElementRef<HTMLElement>,\n\t\tscrollDispatcher: ScrollDispatcher,\n\t\tviewContainerRef: ViewContainerRef,\n\t\tngZone: NgZone,\n\t\tplatform: Platform,\n\t\tariaDescriber: AriaDescriber,\n\t\tfocusMonitor: FocusMonitor,\n\t\t@Inject(MAT_TOOLTIP_SCROLL_STRATEGY) scrollStrategy: any,\n\t\t@Optional() dir: Directionality,\n\t\t@Optional() @Inject(MAT_TOOLTIP_DEFAULT_OPTIONS) defaultOptions: MatTooltipDefaultOptions,\n\t\t@Inject(DOCUMENT) _document: any\n\t) {\n\t\tsuper(\n\t\t\toverlay,\n\t\t\telementRef,\n\t\t\tscrollDispatcher,\n\t\t\tviewContainerRef,\n\t\t\tngZone,\n\t\t\tplatform,\n\t\t\tariaDescriber,\n\t\t\tfocusMonitor,\n\t\t\tscrollStrategy,\n\t\t\tdir,\n\t\t\tdefaultOptions,\n\t\t\t_document\n\t\t);\n\t\tthis.touchGestures = 'off';\n\t\tconst element = elementRef.nativeElement;\n\t\telement.setAttribute('aria-hidden', 'false');\n\t\tif (element.tabIndex === -1) {\n\t\t\telement.tabIndex = 0;\n\t\t\telement.setAttribute('aria-roledescription', 'tooltip');\n\t\t}\n\t}\n\n\t/** Allows the user to define the position of the tooltip relative to the parent element */\n\t@Input()\n\tget buiTooltipPosition(): TooltipPosition {\n\t\treturn this.position;\n\t}\n\tset buiTooltipPosition(value: TooltipPosition) {\n\t\tthis.position = value;\n\t}\n\n\t/** Disables the display of the tooltip. */\n\t@Input()\n\tget buiTooltipDisabled(): boolean {\n\t\treturn this.disabled;\n\t}\n\tset buiTooltipDisabled(value) {\n\t\tthis.disabled = value;\n\t}\n\n\t/** The message to be displayed in the tooltip. */\n\t@Input()\n\tget buiTooltip(): string | TemplateRef<any> | Observable<string> {\n\t\treturn this._templateRef || this.message;\n\t}\n\tset buiTooltip(value) {\n\t\tthis._contentSub.unsubscribe();\n\t\tthis._contentObs = undefined;\n\t\tthis._templateRef = undefined;\n\t\tthis.message = '';\n\t\tif (typeof value === 'string') {\n\t\t\tthis.message = value;\n\t\t} else if (value instanceof TemplateRef) {\n\t\t\tthis._templateRef = value;\n\t\t\tif (value) {\n\t\t\t\tthis.message = '[bui-tooltip-template]';\n\t\t\t} else {\n\t\t\t\tthis._templateRef = undefined;\n\t\t\t}\n\t\t} else if (value instanceof Observable) {\n\t\t\tthis.message = '...';\n\t\t\tthis._contentObs = value;\n\t\t}\n\t}\n\n\t/** @ignore */\n\tget template(): TemplateRef<any> | undefined {\n\t\treturn this._templateRef;\n\t}\n\n\t/** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n\t@Input()\n\tget buiTooltipClass() {\n\t\treturn this.tooltipClass;\n\t}\n\tset buiTooltipClass(value: string | string[] | Set<string> | { [key: string]: any }) {\n\t\tthis.tooltipClass = value;\n\t}\n\n\t/** @ignore */\n\t@HostListener('click')\n\tclicked() {\n\t\tthis.toggle();\n\t}\n\n\t/** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n\tshow(delay: number = this.showDelay): void {\n\t\tif (this._contentObs) {\n\t\t\tthis._contentSub.unsubscribe();\n\t\t\tthis._contentSub = this._contentObs.subscribe(c => {\n\t\t\t\tthis.message = c;\n\t\t\t\tthis._contentSub.unsubscribe();\n\t\t\t\tsuper.show(delay);\n\t\t\t});\n\t\t} else {\n\t\t\tsuper.show(delay);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis._contentSub.unsubscribe();\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/tooltip';\nimport { TooltipComponent } from './tooltip.component';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n\timports: [A11yModule, CommonModule, OverlayModule, MatCommonModule],\n\texports: [TooltipDirective, MatCommonModule, CdkScrollableModule],\n\tdeclarations: [TooltipDirective, TooltipComponent],\n\tentryComponents: [TooltipComponent],\n\tproviders: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER]\n})\nexport class TooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MatTooltipComponent"],"mappings":"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"}
@@ -58,6 +58,11 @@ export declare class FileUploadComponent implements OnInit, OnDestroy, ControlVa
58
58
  dropHint: string;
59
59
  /** Specifies the total number of files accepted. A falsy value removes the limit.*/
60
60
  limit: number;
61
+ /**
62
+ * specify the number of maximum bytes that can be uploaded.
63
+ * if number is specified, bytes are assumed, otherwise enter a string for specific size type.
64
+ */
65
+ fileSize: number | string;
61
66
  /**
62
67
  * Accepted MIME types
63
68
  *
@@ -66,6 +71,8 @@ export declare class FileUploadComponent implements OnInit, OnDestroy, ControlVa
66
71
  get types(): string[];
67
72
  set types(types: string[]);
68
73
  /** @ignore */
74
+ _fileSizeExceedMsg: string;
75
+ /** @ignore */
69
76
  _uploadingItems: UploadingItem[];
70
77
  /** @ignore */
71
78
  _accept: string;
@@ -124,6 +131,9 @@ export declare class FileUploadComponent implements OnInit, OnDestroy, ControlVa
124
131
  get _invalidFilesDragged(): boolean;
125
132
  /** @ignore */
126
133
  get _initialising(): boolean;
134
+ private returnFileSize;
135
+ private _validateFileSize;
136
+ private _getMaxBytes;
127
137
  private _uploadFiles;
128
138
  private _onDndEnterFrame;
129
139
  private _onDndLeaveFrame;
@@ -133,6 +143,6 @@ export declare class FileUploadComponent implements OnInit, OnDestroy, ControlVa
133
143
  private _deleteItem;
134
144
  private _updateValue;
135
145
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
136
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "bui-file-upload", never, { "uploadActionText": "uploadActionText"; "fileUploadedLabel": "fileUploadedLabel"; "dragHint": "dragHint"; "dropHint": "dropHint"; "limit": "limit"; "types": "types"; }, {}, never, never>;
146
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "bui-file-upload", never, { "uploadActionText": "uploadActionText"; "fileUploadedLabel": "fileUploadedLabel"; "dragHint": "dragHint"; "dropHint": "dropHint"; "limit": "limit"; "fileSize": "fileSize"; "types": "types"; }, {}, never, never>;
137
147
  }
138
148
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bravura/ui",
3
3
  "description": "Bravura UI Components for Angular applications",
4
- "version": "1.23.2",
4
+ "version": "1.24.1",
5
5
  "keywords": [
6
6
  "Angular",
7
7
  "Angular Material",
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@bravura/ui/panel" />
5
+ export * from './public-api';
@@ -0,0 +1,10 @@
1
+ {
2
+ "main": "../bundles/bravura-ui-panel.umd.js",
3
+ "module": "../fesm2015/bravura-ui-panel.js",
4
+ "es2015": "../fesm2015/bravura-ui-panel.js",
5
+ "esm2015": "../esm2015/panel/bravura-ui-panel.js",
6
+ "fesm2015": "../fesm2015/bravura-ui-panel.js",
7
+ "typings": "bravura-ui-panel.d.ts",
8
+ "sideEffects": false,
9
+ "name": "@bravura/ui/panel"
10
+ }
@@ -0,0 +1,15 @@
1
+ import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * `bui-panel-section`s are subdivisions of `bui-panel` that rearrange their orientation based on the width of the container element.
5
+ */
6
+ export declare class PanelSectionComponent implements OnInit, OnDestroy {
7
+ private _elementRef;
8
+ private _parentElement;
9
+ constructor(_elementRef: ElementRef<HTMLElement>);
10
+ ngOnInit(): void;
11
+ ngOnDestroy(): void;
12
+ private _calcCount;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<PanelSectionComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<PanelSectionComponent, "bui-panel-section", never, {}, {}, never, ["*"]>;
15
+ }
@@ -0,0 +1,60 @@
1
+ import { ChangeDetectorRef, OnInit } from '@angular/core';
2
+ import { ThemePalette } from '@angular/material/core';
3
+ import { TintedDirective } from './tinted.directive';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * A `bui-panel` consists of a `mat-card` and a tinted backdrop.
7
+ *
8
+ * Unlike `mat-card`, `bui-panel` has a flat appearance by default and a transparent background.
9
+ * The backdrop is nearly transparent, blending the theme palette `color`
10
+ * and the effective background color of the DOM ancestors.
11
+ *
12
+ * `bui-panel` supports all the content child directives of `mat-card` as well as `bui-panel-section`.
13
+ *
14
+ * `bui-panel-section`s are subdivisions of `bui-panel` that rearrange their orientation based on the width of the container element.
15
+ *
16
+ */
17
+ export declare class PanelComponent implements OnInit {
18
+ private _cd;
19
+ private _tinted;
20
+ /**
21
+ * Additional style classes on the tinted backdrop element.
22
+ * @deprecated
23
+ * @ignore
24
+ */
25
+ backdropClass?: string;
26
+ /**
27
+ * Additional style classes on the `<mat-card>` element.
28
+ */
29
+ cardClass?: string;
30
+ /**
31
+ * This property defines the background (shaded) and border colors of the panel
32
+ */
33
+ get color(): ThemePalette;
34
+ set color(value: ThemePalette);
35
+ /**
36
+ * In contrast to using a `mat-card` alone, a `bui-panel` does not have a elevated appearance by default.
37
+ *
38
+ * This property can change the default appearance to
39
+ *
40
+ * * `raised` - the original `mat-card` default
41
+ * * `outline` - a `mat-card` with borders
42
+ * * `flat` - no border or elevation
43
+ */
44
+ get appearance(): 'outlined' | 'raised' | 'flat';
45
+ set appearance(value: 'outlined' | 'raised' | 'flat');
46
+ /**
47
+ * The width of the host element, at which the panel section container will change its orientation.
48
+ */
49
+ breakpoint: number;
50
+ /** @ignore */
51
+ _width: number;
52
+ private _color;
53
+ private _appearance;
54
+ constructor(_cd: ChangeDetectorRef, _tinted: TintedDirective);
55
+ ngOnInit(): void;
56
+ /** @ignore */
57
+ _resized(width: number): void;
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<PanelComponent, [null, { host: true; }]>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<PanelComponent, "bui-panel", never, { "backdropClass": "backdropClass"; "cardClass": "cardClass"; "color": "color"; "appearance": "appearance"; "breakpoint": "breakpoint"; }, {}, never, ["*"]>;
60
+ }
@@ -0,0 +1,16 @@
1
+ import { PanelComponent } from './panel.component';
2
+ import { PanelSectionComponent } from './panel-section.component';
3
+ import { TintedDirective } from './tinted.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./panel.component";
6
+ import * as i2 from "./panel-section.component";
7
+ import * as i3 from "./tinted.directive";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/material/card";
10
+ import * as i6 from "@bravura/ui/behavior";
11
+ export declare class PanelModule {
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<PanelModule, never>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PanelModule, [typeof i1.PanelComponent, typeof i2.PanelSectionComponent, typeof i3.TintedDirective], [typeof i4.CommonModule, typeof i5.MatCardModule, typeof i6.BehaviorModule], [typeof i5.MatCardModule, typeof i1.PanelComponent, typeof i2.PanelSectionComponent, typeof i3.TintedDirective]>;
14
+ static ɵinj: i0.ɵɵInjectorDeclaration<PanelModule>;
15
+ }
16
+ export { PanelComponent, PanelSectionComponent, TintedDirective };
@@ -0,0 +1 @@
1
+ export * from './panel.module';