@bravura/ui 6.1.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +58 -57
  3. package/alert/index.d.ts +126 -3
  4. package/alert/testing/index.d.ts +28 -5
  5. package/behavior/index.d.ts +231 -3
  6. package/clip-note/index.d.ts +125 -3
  7. package/common/index.d.ts +24 -3
  8. package/currency-input/index.d.ts +69 -3
  9. package/decimal-input/index.d.ts +39 -3
  10. package/discrete-input/index.d.ts +139 -3
  11. package/fesm2022/bravura-ui-alert.mjs +18 -21
  12. package/fesm2022/bravura-ui-alert.mjs.map +1 -1
  13. package/fesm2022/bravura-ui-behavior.mjs +18 -18
  14. package/fesm2022/bravura-ui-behavior.mjs.map +1 -1
  15. package/fesm2022/bravura-ui-clip-note.mjs +10 -10
  16. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -1
  17. package/fesm2022/bravura-ui-common.mjs +5 -6
  18. package/fesm2022/bravura-ui-common.mjs.map +1 -1
  19. package/fesm2022/bravura-ui-currency-input.mjs +7 -7
  20. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -1
  21. package/fesm2022/bravura-ui-decimal-input.mjs +7 -7
  22. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -1
  23. package/fesm2022/bravura-ui-discrete-input.mjs +10 -11
  24. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -1
  25. package/fesm2022/bravura-ui-file-upload.mjs +18 -18
  26. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -1
  27. package/fesm2022/bravura-ui-form-field.mjs +10 -10
  28. package/fesm2022/bravura-ui-form-field.mjs.map +1 -1
  29. package/fesm2022/bravura-ui-icon-font.mjs +7 -7
  30. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -1
  31. package/fesm2022/bravura-ui-panel.mjs +16 -16
  32. package/fesm2022/bravura-ui-panel.mjs.map +1 -1
  33. package/fesm2022/bravura-ui-phone-number.mjs +13 -13
  34. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -1
  35. package/fesm2022/bravura-ui-radio-panel.mjs +12 -14
  36. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -1
  37. package/fesm2022/bravura-ui-selection-panel.mjs +11 -11
  38. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -1
  39. package/fesm2022/bravura-ui-skeletons.mjs +10 -10
  40. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -1
  41. package/fesm2022/bravura-ui-stepper.mjs +18 -18
  42. package/fesm2022/bravura-ui-stepper.mjs.map +1 -1
  43. package/fesm2022/bravura-ui-tooltip.mjs +13 -13
  44. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -1
  45. package/file-upload/index.d.ts +200 -3
  46. package/form-field/index.d.ts +49 -3
  47. package/icon-font/index.d.ts +79 -3
  48. package/index.d.ts +3 -5
  49. package/package.json +24 -24
  50. package/panel/index.d.ts +107 -3
  51. package/phone-number/index.d.ts +108 -3
  52. package/radio-panel/index.d.ts +71 -3
  53. package/radio-panel/testing/index.d.ts +32 -5
  54. package/selection-panel/index.d.ts +149 -3
  55. package/skeletons/index.d.ts +79 -3
  56. package/stepper/index.d.ts +106 -3
  57. package/tooltip/index.d.ts +83 -3
  58. package/alert/alert-container.component.d.ts +0 -71
  59. package/alert/alert-message.component.d.ts +0 -47
  60. package/alert/alert.module.d.ts +0 -14
  61. package/alert/public-api.d.ts +0 -1
  62. package/alert/testing/test-api.d.ts +0 -24
  63. package/behavior/await.directive.d.ts +0 -71
  64. package/behavior/behavior.module.d.ts +0 -17
  65. package/behavior/observe-content-class.directive.d.ts +0 -29
  66. package/behavior/public-api.d.ts +0 -5
  67. package/behavior/sizing-monitor.directive.d.ts +0 -23
  68. package/behavior/sizing.directive.d.ts +0 -98
  69. package/clip-note/clip-note.component.d.ts +0 -45
  70. package/clip-note/clip-note.directive.d.ts +0 -69
  71. package/clip-note/clip-note.module.d.ts +0 -19
  72. package/clip-note/public-api.d.ts +0 -1
  73. package/common/common-utils.d.ts +0 -11
  74. package/common/common.module.d.ts +0 -11
  75. package/common/public-api.d.ts +0 -2
  76. package/currency-input/currency-input.directive.d.ts +0 -62
  77. package/currency-input/currency-input.module.d.ts +0 -10
  78. package/currency-input/public-api.d.ts +0 -1
  79. package/decimal-input/decimal-input.directive.d.ts +0 -32
  80. package/decimal-input/decimal-input.module.d.ts +0 -10
  81. package/decimal-input/public-api.d.ts +0 -1
  82. package/discrete-input/discrete-input.component.d.ts +0 -128
  83. package/discrete-input/discrete-input.module.d.ts +0 -11
  84. package/discrete-input/public-api.d.ts +0 -2
  85. package/file-upload/file-upload.component.d.ts +0 -148
  86. package/file-upload/file-upload.module.d.ts +0 -14
  87. package/file-upload/file-upload.service.d.ts +0 -42
  88. package/file-upload/public-api.d.ts +0 -6
  89. package/form-field/form-field.component.d.ts +0 -39
  90. package/form-field/form-field.module.d.ts +0 -13
  91. package/form-field/public-api.d.ts +0 -2
  92. package/icon-font/icon-font.module.d.ts +0 -12
  93. package/icon-font/icon.directive.d.ts +0 -46
  94. package/icon-font/public-api.d.ts +0 -3
  95. package/icon-font/utilities.d.ts +0 -20
  96. package/panel/panel-section.component.d.ts +0 -15
  97. package/panel/panel.component.d.ts +0 -60
  98. package/panel/panel.module.d.ts +0 -16
  99. package/panel/public-api.d.ts +0 -1
  100. package/panel/tinted.directive.d.ts +0 -26
  101. package/phone-number/phone-number.directive.d.ts +0 -66
  102. package/phone-number/phone-number.module.d.ts +0 -17
  103. package/phone-number/phone-number.pipe.d.ts +0 -13
  104. package/phone-number/phone-number.validator.d.ts +0 -31
  105. package/phone-number/public-api.d.ts +0 -1
  106. package/public-api.d.ts +0 -1
  107. package/radio-panel/public-api.d.ts +0 -3
  108. package/radio-panel/radio-panel-item.component.d.ts +0 -22
  109. package/radio-panel/radio-panel.component.d.ts +0 -38
  110. package/radio-panel/radio-panel.module.d.ts +0 -15
  111. package/radio-panel/testing/test-api.d.ts +0 -27
  112. package/selection-panel/public-api.d.ts +0 -3
  113. package/selection-panel/selection-panel-item.component.d.ts +0 -77
  114. package/selection-panel/selection-panel.directive.d.ts +0 -67
  115. package/selection-panel/selection-panel.module.d.ts +0 -13
  116. package/skeletons/public-api.d.ts +0 -3
  117. package/skeletons/skeleton-loader-presets.directive.d.ts +0 -23
  118. package/skeletons/skeleton-loader.component.d.ts +0 -44
  119. package/skeletons/skeletons.module.d.ts +0 -16
  120. package/stepper/public-api.d.ts +0 -3
  121. package/stepper/step-label-top.directive.d.ts +0 -17
  122. package/stepper/stepper-animation.d.ts +0 -6
  123. package/stepper/stepper.component.d.ts +0 -75
  124. package/stepper/stepper.module.d.ts +0 -17
  125. package/tooltip/public-api.d.ts +0 -3
  126. package/tooltip/tooltip.component.d.ts +0 -26
  127. package/tooltip/tooltip.directive.d.ts +0 -48
  128. package/tooltip/tooltip.module.d.ts +0 -13
@@ -31,15 +31,15 @@ class RadioPanelItemComponent extends MatRadioButton {
31
31
  */
32
32
  this.title = '';
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelItemComponent, deps: [{ token: MAT_RADIO_GROUP, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_RADIO_DEFAULT_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: RadioPanelItemComponent, isStandalone: false, selector: "bui-radio-panel-item", inputs: { disableRipple: "disableRipple", tabIndex: "tabIndex", title: "title", _tickPosition: "_tickPosition", tickPosition: "tickPosition" }, host: { listeners: { "focus": "_inputElement.nativeElement.focus()" }, properties: { "class.bui-radio-checked": "checked", "class.bui-disabled": "disabled", "class._mat-animation-noopable": "_noopAnimations", "class.mat-primary": "color === \"primary\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "attr.tabindex": "null", "attr.id": "id", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "bui-radio-panel-item" }, queries: [{ propertyName: "contentOnSelect", first: true, predicate: ["contentOnSelect"], descendants: true }], exportAs: ["matRadioButton"], usesInheritance: true, ngImport: i0, template: "<label\r\n\tmatRipple\r\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t[matRippleDisabled]=\"disabled || checked\"\r\n\t[attr.for]=\"inputId\"\r\n\t#label\r\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\r\n>\r\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\r\n\t\t<div class=\"bui-label-header\">\r\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\r\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\r\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\r\n\t\t\t\t\tmatRipple\r\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\t\t\t\t[matRippleCentered]=\"true\"\r\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\r\n\t\t\t\t\t[matRippleTrigger]=\"label\"\r\n\t\t\t\t\t[matRippleRadius]=\"20\"\r\n\t\t\t\t\t*ngIf=\"!disabled\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\" *ngIf=\"checked\">check_circle</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t\t<!-- The actual 'radio' part of the control. -->\r\n\t\t<span class=\"radio-container\">\r\n\t\t\t<input\r\n\t\t\t\t#input\r\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\r\n\t\t\t\ttype=\"radio\"\r\n\t\t\t\t[id]=\"inputId\"\r\n\t\t\t\t[checked]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[tabIndex]=\"tabIndex\"\r\n\t\t\t\t[attr.name]=\"name\"\r\n\t\t\t\t[attr.value]=\"value\"\r\n\t\t\t\t[required]=\"required\"\r\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\r\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\r\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\r\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\r\n\t\t\t\t(click)=\"_onInputInteraction($event)\"\r\n\t\t\t/>\r\n\t\t</span>\r\n\r\n\t\t<div class=\"bui-label-content-gap\"></div>\r\n\t\t<!-- The label content for radio control. -->\r\n\t\t<div class=\"bui-label-content\">\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</label>\r\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;inset:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px;flex-shrink:0}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){flex-basis:var(--bui-panel-width, 300px);flex-grow:0}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelItemComponent, deps: [{ token: MAT_RADIO_GROUP, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_RADIO_DEFAULT_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: RadioPanelItemComponent, isStandalone: false, selector: "bui-radio-panel-item", inputs: { disableRipple: "disableRipple", tabIndex: "tabIndex", title: "title", _tickPosition: "_tickPosition", tickPosition: "tickPosition" }, host: { listeners: { "focus": "_inputElement.nativeElement.focus()" }, properties: { "class.bui-radio-checked": "checked", "class.bui-disabled": "disabled", "class._mat-animation-noopable": "_noopAnimations", "class.mat-primary": "color === \"primary\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "attr.tabindex": "null", "attr.id": "id", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null" }, classAttribute: "bui-radio-panel-item" }, queries: [{ propertyName: "contentOnSelect", first: true, predicate: ["contentOnSelect"], descendants: true }], exportAs: ["matRadioButton"], usesInheritance: true, ngImport: i0, template: "<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@if (!disabled) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\t\tmatRipple\n\t\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t\t@if (checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\">check_circle</mat-icon>\n\t\t\t\t}\n\t\t\t\t@if (!checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t\t}\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)=\"_onInputInteraction($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@if (contentOnSelect && checked) {\n\t\t\t<div class=\"bui-label-content\" @slideInOut>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t\t</div>\n\t\t}\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;inset:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px;flex-shrink:0}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){flex-basis:var(--bui-panel-width, 300px);flex-grow:0}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [
36
36
  trigger('slideInOut', [
37
37
  state('void', style({ height: '0px', overflow: 'hidden' })),
38
38
  transition(':enter, :leave', animate('.25s'))
39
39
  ])
40
40
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelItemComponent, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelItemComponent, decorators: [{
43
43
  type: Component,
44
44
  args: [{ selector: 'bui-radio-panel-item', inputs: ['disableRipple', 'tabIndex'], exportAs: 'matRadioButton', host: {
45
45
  class: 'bui-radio-panel-item',
@@ -64,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
64
64
  state('void', style({ height: '0px', overflow: 'hidden' })),
65
65
  transition(':enter, :leave', animate('.25s'))
66
66
  ])
67
- ], standalone: false, template: "<label\r\n\tmatRipple\r\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t[matRippleDisabled]=\"disabled || checked\"\r\n\t[attr.for]=\"inputId\"\r\n\t#label\r\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\r\n>\r\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\r\n\t\t<div class=\"bui-label-header\">\r\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\r\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\r\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\r\n\t\t\t\t\tmatRipple\r\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\t\t\t\t[matRippleCentered]=\"true\"\r\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\r\n\t\t\t\t\t[matRippleTrigger]=\"label\"\r\n\t\t\t\t\t[matRippleRadius]=\"20\"\r\n\t\t\t\t\t*ngIf=\"!disabled\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\" *ngIf=\"checked\">check_circle</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t\t<!-- The actual 'radio' part of the control. -->\r\n\t\t<span class=\"radio-container\">\r\n\t\t\t<input\r\n\t\t\t\t#input\r\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\r\n\t\t\t\ttype=\"radio\"\r\n\t\t\t\t[id]=\"inputId\"\r\n\t\t\t\t[checked]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[tabIndex]=\"tabIndex\"\r\n\t\t\t\t[attr.name]=\"name\"\r\n\t\t\t\t[attr.value]=\"value\"\r\n\t\t\t\t[required]=\"required\"\r\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\r\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\r\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\r\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\r\n\t\t\t\t(click)=\"_onInputInteraction($event)\"\r\n\t\t\t/>\r\n\t\t</span>\r\n\r\n\t\t<div class=\"bui-label-content-gap\"></div>\r\n\t\t<!-- The label content for radio control. -->\r\n\t\t<div class=\"bui-label-content\">\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</label>\r\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;inset:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px;flex-shrink:0}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){flex-basis:var(--bui-panel-width, 300px);flex-grow:0}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}\n"] }]
67
+ ], standalone: false, template: "<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@if (!disabled) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\t\tmatRipple\n\t\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t\t@if (checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\">check_circle</mat-icon>\n\t\t\t\t}\n\t\t\t\t@if (!checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t\t}\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)=\"_onInputInteraction($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@if (contentOnSelect && checked) {\n\t\t\t<div class=\"bui-label-content\" @slideInOut>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t\t</div>\n\t\t}\n\t</div>\n</label>\n", styles: [":host .bui-ripple,:host .bui-persistent-ripple{position:absolute;inset:0}:host .bui-radio-panel-item-overlay{background-color:#fff;opacity:0}:host .bui-radio-panel-item-circle{width:40px;height:40px;flex-shrink:0}:host .bui-radio-panel-item-label{display:block;border-radius:5px;border:1px solid rgba(128,128,128,.2);padding:1px;position:relative;height:100%}:host .bui-radio-panel-item-label .bui-radio-panel-item-circle-unchecked{color:#80808066}:host .bui-radio-panel-item-wrapper.bui-radio-tick-at-end .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 1rem;justify-content:space-between}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-label-header{padding:calc(1rem - 10px) calc(1rem - 10px) 0 calc(1rem - 10px)}:host .bui-radio-panel-item-wrapper:not(.bui-radio-tick-at-end) .bui-radio-panel-item-circle{order:-1}:host .bui-label-header,:host .bui-radio-panel-item-circle{display:flex;align-items:center}:host .bui-label-header{margin-bottom:calc(1rem - 10px)}:host .bui-label-title{font-size:larger;font-weight:700}:host .bui-radio-panel-item-circle{justify-content:center;position:relative}:host .bui-label-content:not(:empty){margin:0 1rem 1rem}:host .bui-label-content-gap{margin-top:calc(1rem - 10px)}@polyfill-unscoped-rule{content: \".bui-radio-panel-item-wrapper .bui-label-header [buiRadioItemHeadingEnd]\"; margin-left: auto;}:host(:not([hidden])){display:block}:host(:not(.bui-disabled)):not(.bui-radio-checked) .bui-radio-panel-item-label{cursor:pointer}:host(:not(.bui-disabled)) .bui-radio-panel-item-label:hover{border-width:2px;padding:0;border-color:#8080804d}:host(:not(.bui-disabled)).cdk-keyboard-focused .bui-persistent-ripple,:host(:not(.bui-disabled)).cdk-program-focused .bui-persistent-ripple{background-color:#80808033;border-radius:50%}:host-context(.radio-dir-row){flex-basis:var(--bui-panel-width, 300px);flex-grow:0}:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-header,:host(.bui-disabled) .bui-radio-panel-item-wrapper>.bui-label-content{opacity:.5}\n"] }]
68
68
  }], ctorParameters: () => [{ type: i6.MatRadioGroup, decorators: [{
69
69
  type: Optional
70
70
  }, {
@@ -89,9 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
89
89
  type: Input
90
90
  }], tickPosition: [{
91
91
  type: Input
92
- }],
93
- //@ts-ignore
94
- contentOnSelect: [{
92
+ }], contentOnSelect: [{
95
93
  type: ContentChild,
96
94
  args: ['contentOnSelect']
97
95
  }] } });
@@ -132,8 +130,8 @@ class RadioPanelComponent extends MatRadioGroup {
132
130
  this.classAttr = 'bui-radio-panel bui-host radio-dir-column';
133
131
  }
134
132
  }
135
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: RadioPanelComponent, isStandalone: false, selector: "bui-radio-panel", inputs: { panelWidth: "panelWidth", direction: "direction", color: "color", tickPosition: "tickPosition" }, host: { attributes: { "role": "radiogroup" }, properties: { "style.--bui-panel-width": "panelWidth +'px'", "attr.class": "this.classAttr" }, classAttribute: "bui-radio-panel bui-host" }, providers: [
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: RadioPanelComponent, isStandalone: false, selector: "bui-radio-panel", inputs: { panelWidth: "panelWidth", direction: "direction", color: "color", tickPosition: "tickPosition" }, host: { attributes: { "role": "radiogroup" }, properties: { "style.--bui-panel-width": "panelWidth +'px'", "attr.class": "this.classAttr" }, classAttribute: "bui-radio-panel bui-host" }, providers: [
137
135
  {
138
136
  provide: NG_VALUE_ACCESSOR,
139
137
  useExisting: forwardRef(() => RadioPanelComponent),
@@ -142,7 +140,7 @@ class RadioPanelComponent extends MatRadioGroup {
142
140
  { provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }
143
141
  ], queries: [{ propertyName: "_radios", predicate: RadioPanelItemComponent, descendants: true }], exportAs: ["buiRadioPanel"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, styles: [":host{gap:1rem}:host:not([hidden]){display:flex}:host.radio-dir-row{flex-direction:row;flex-wrap:wrap}:host.radio-dir-column{flex-direction:column}\n"] }); }
144
142
  }
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelComponent, decorators: [{
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelComponent, decorators: [{
146
144
  type: Component,
147
145
  args: [{ selector: 'bui-radio-panel', exportAs: 'buiRadioPanel', providers: [
148
146
  {
@@ -176,11 +174,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
176
174
  * Import this NgModule for the radio panel component
177
175
  */
178
176
  class RadioPanelModule {
179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
180
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelModule, declarations: [RadioPanelItemComponent, RadioPanelComponent], imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule], exports: [RadioPanelItemComponent, RadioPanelComponent] }); }
181
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelModule, imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule] }); }
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
178
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelModule, declarations: [RadioPanelItemComponent, RadioPanelComponent], imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule], exports: [RadioPanelItemComponent, RadioPanelComponent] }); }
179
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelModule, imports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule] }); }
182
180
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: RadioPanelModule, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: RadioPanelModule, decorators: [{
184
182
  type: NgModule,
185
183
  args: [{
186
184
  declarations: [RadioPanelItemComponent, RadioPanelComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-radio-panel.mjs","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';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\r\nimport {\r\n\tAttribute,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChild,\r\n\tElementRef,\r\n\tHostBinding,\r\n\tInject,\r\n\tInput,\r\n\tOptional,\r\n\tTemplateRef\r\n} from '@angular/core';\r\nimport {\r\n\tMatRadioButton,\r\n\tMatRadioDefaultOptions,\r\n\tMatRadioGroup,\r\n\tMAT_RADIO_DEFAULT_OPTIONS,\r\n\tMAT_RADIO_GROUP\r\n} from '@angular/material/radio';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\n/**\r\n * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.\r\n */\r\n@Component({\r\n\tselector: 'bui-radio-panel-item',\r\n\ttemplateUrl: './radio-panel-item.component.html',\r\n\tstyleUrls: ['./radio-panel-item.component.scss'],\r\n\t// tslint:disable-next-line: no-inputs-metadata-property\r\n\tinputs: ['disableRipple', 'tabIndex'],\r\n\texportAs: 'matRadioButton',\r\n\t// tslint:disable-next-line: no-host-metadata-property\r\n\thost: {\r\n\t\tclass: 'bui-radio-panel-item',\r\n\t\t'[class.bui-radio-checked]': 'checked',\r\n\t\t'[class.bui-disabled]': 'disabled',\r\n\t\t'[class._mat-animation-noopable]': '_noopAnimations',\r\n\t\t'[class.mat-primary]': 'color === \"primary\"',\r\n\t\t'[class.mat-accent]': 'color === \"accent\"',\r\n\t\t'[class.mat-warn]': 'color === \"warn\"',\r\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\r\n\t\t'[attr.tabindex]': 'null',\r\n\t\t'[attr.id]': 'id',\r\n\t\t'[attr.aria-label]': 'null',\r\n\t\t'[attr.aria-labelledby]': 'null',\r\n\t\t'[attr.aria-describedby]': 'null',\r\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\r\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\r\n\t\t// the focus to the native element.\r\n\t\t'(focus)': '_inputElement.nativeElement.focus()'\r\n\t},\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tanimations: [\r\n\t\ttrigger('slideInOut', [\r\n\t\t\tstate('void', style({ height: '0px', overflow: 'hidden' })),\r\n\t\t\ttransition(':enter, :leave', animate('.25s'))\r\n\t\t])\r\n\t],\r\n\tstandalone: false\r\n})\r\nexport class RadioPanelItemComponent extends MatRadioButton {\r\n\t/**\r\n\t * This will be displayed as the panel header\r\n\t */\r\n\t@Input()\r\n\ttitle = '';\r\n\r\n\t/** The default position of the 'tick' icon relative to the title. */\r\n\t@Input() private _tickPosition: 'start' | 'end' | undefined;\r\n\r\n\t@Input()\r\n\tget tickPosition(): 'start' | 'end' {\r\n\t\treturn this._tickPosition || (this.radioGroup as any)?.tickPosition;\r\n\t}\r\n\tset tickPosition(pos: 'start' | 'end') {\r\n\t\tthis._tickPosition = pos;\r\n\t}\r\n\r\n\t@ContentChild('contentOnSelect')\r\n\t//@ts-ignore\r\n\tcontentOnSelect: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\t@Optional() @Inject(MAT_RADIO_GROUP) radioGroup: MatRadioGroup,\r\n\t\telementRef: ElementRef,\r\n\t\t_changeDetector: ChangeDetectorRef,\r\n\t\t_focusMonitor: FocusMonitor,\r\n\t\t_radioDispatcher: UniqueSelectionDispatcher,\r\n\t\t@Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\r\n\t\t@Optional()\r\n\t\t@Inject(MAT_RADIO_DEFAULT_OPTIONS)\r\n\t\t_providerOverride?: MatRadioDefaultOptions,\r\n\t\t@Attribute('tabindex') tabIndex?: string\r\n\t) {\r\n\t\tsuper(\r\n\t\t\tradioGroup,\r\n\t\t\telementRef,\r\n\t\t\t_changeDetector,\r\n\t\t\t_focusMonitor,\r\n\t\t\t_radioDispatcher,\r\n\t\t\tanimationMode,\r\n\t\t\t_providerOverride,\r\n\t\t\ttabIndex\r\n\t\t);\r\n\t}\r\n}\r\n","<label\r\n\tmatRipple\r\n\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t[matRippleDisabled]=\"disabled || checked\"\r\n\t[attr.for]=\"inputId\"\r\n\t#label\r\n\tclass=\"bui-radio-panel-item-label bui-border-{{ checked ? color : 'default' }}\"\r\n>\r\n\t<div class=\"bui-radio-panel-item-wrapper\" [class.bui-radio-tick-at-end]=\"tickPosition === 'end'\">\r\n\t\t<div class=\"bui-label-header\">\r\n\t\t\t<span class=\"bui-label-title\" [innerHTML]=\"title\"></span>\r\n\t\t\t<ng-content select=\"[buiRadioItemHeadingEnd]\"></ng-content>\r\n\t\t\t<span class=\"bui-radio-panel-item-circle\">\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"bui-persistent-ripple\"\r\n\t\t\t\t\tmatRipple\r\n\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\t\t\t\t[matRippleCentered]=\"true\"\r\n\t\t\t\t\t[matRippleUnbounded]=\"true\"\r\n\t\t\t\t\t[matRippleTrigger]=\"label\"\r\n\t\t\t\t\t[matRippleRadius]=\"20\"\r\n\t\t\t\t\t*ngIf=\"!disabled\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\" *ngIf=\"checked\">check_circle</mat-icon>\r\n\t\t\t\t<mat-icon *ngIf=\"!checked\" class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\r\n\t\t\t</span>\r\n\t\t</div>\r\n\t\t<!-- The actual 'radio' part of the control. -->\r\n\t\t<span class=\"radio-container\">\r\n\t\t\t<input\r\n\t\t\t\t#input\r\n\t\t\t\tclass=\"mat-radio-input cdk-visually-hidden\"\r\n\t\t\t\ttype=\"radio\"\r\n\t\t\t\t[id]=\"inputId\"\r\n\t\t\t\t[checked]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t[tabIndex]=\"tabIndex\"\r\n\t\t\t\t[attr.name]=\"name\"\r\n\t\t\t\t[attr.value]=\"value\"\r\n\t\t\t\t[required]=\"required\"\r\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\r\n\t\t\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\r\n\t\t\t\t[attr.aria-describedby]=\"ariaDescribedby\"\r\n\t\t\t\t(change)=\"_onInputInteraction($event)\"\r\n\t\t\t\t(click)=\"_onInputInteraction($event)\"\r\n\t\t\t/>\r\n\t\t</span>\r\n\r\n\t\t<div class=\"bui-label-content-gap\"></div>\r\n\t\t<!-- The label content for radio control. -->\r\n\t\t<div class=\"bui-label-content\">\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</div>\r\n\t\t<div class=\"bui-label-content\" *ngIf=\"contentOnSelect && checked\" @slideInOut>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</label>\r\n","import {\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChildren,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tInput,\r\n\tOnChanges,\r\n\tQueryList,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MAT_RADIO_GROUP, MatRadioGroup } from '@angular/material/radio';\r\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\r\n/**\r\n * Radio panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\r\n * that extends Angular Material's [radio group component](https://material.angular.io/components/radio/overview).\r\n * It inherits all the features of `MatRadioGroup`, and arranges the child items in panels,\r\n * with the `title` attributes rendered as captions. The check box icon and the borders will be displayed\r\n * in the color selected by the theme attribute `color`.\r\n *\r\n */\r\n@Component({\r\n\t// tslint:disable-next-line: directive-selector\r\n\tselector: 'bui-radio-panel',\r\n\texportAs: 'buiRadioPanel',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => RadioPanelComponent),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{ provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }\r\n\t],\r\n\t// tslint:disable-next-line: no-host-metadata-property\r\n\thost: {\r\n\t\trole: 'radiogroup',\r\n\t\tclass: 'bui-radio-panel bui-host',\r\n\t\t'[style.--bui-panel-width]': \"panelWidth +'px'\"\r\n\t},\r\n\ttemplate: ` <ng-content></ng-content> `,\r\n\tstyleUrls: ['radio-panel.component.scss'],\r\n\tstandalone: false\r\n})\r\nexport class RadioPanelComponent extends MatRadioGroup implements OnChanges {\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\t@HostBinding('attr.class')\r\n\tclassAttr: string = '';\r\n\r\n\t/**\r\n\t * The default width of each panel when the `direction` is `row`\r\n\t */\r\n\t@Input()\r\n\tpanelWidth = 300;\r\n\r\n\t/** The flow direction of the radio panel items */\r\n\t@Input()\r\n\tdirection: 'row' | 'column' = 'row';\r\n\r\n\t/** Theme color for all of the radio panels in the group. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/** The default position of the 'tick' icon relative to the title. */\r\n\t@Input() tickPosition: 'start' | 'end' = 'start';\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\t@ContentChildren(RadioPanelItemComponent, { descendants: true })\r\n\t_radios!: QueryList<RadioPanelItemComponent>;\r\n\r\n\tconstructor(cd: ChangeDetectorRef) {\r\n\t\tsuper(cd);\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (['color', 'tickPosition'].some(p => changes[p]) && this._radios) {\r\n\t\t\tthis._radios.forEach(item => item._markForCheck());\r\n\t\t}\r\n\r\n\t\tif (this.direction === 'row') {\r\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-row';\r\n\t\t} else {\r\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-column';\r\n\t\t}\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\r\nimport { RadioPanelComponent } from './radio-panel.component';\r\n\r\n/**\r\n * Import this NgModule for the radio panel component\r\n */\r\n@NgModule({\r\n\tdeclarations: [RadioPanelItemComponent, RadioPanelComponent],\r\n\timports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule],\r\n\texports: [RadioPanelItemComponent, RadioPanelComponent]\r\n})\r\nexport class RadioPanelModule {}\r\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.mjs","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';\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\r\nimport {\r\n\tAttribute,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChild,\r\n\tElementRef,\r\n\tHostBinding,\r\n\tInject,\r\n\tInput,\r\n\tOptional,\r\n\tTemplateRef\r\n} from '@angular/core';\r\nimport {\r\n\tMatRadioButton,\r\n\tMatRadioDefaultOptions,\r\n\tMatRadioGroup,\r\n\tMAT_RADIO_DEFAULT_OPTIONS,\r\n\tMAT_RADIO_GROUP\r\n} from '@angular/material/radio';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\n/**\r\n * Use `bui-radio-panel-item` instead of `mat-radio-button` in a `bui-radio-panel` to display an option.\r\n */\r\n@Component({\r\n\tselector: 'bui-radio-panel-item',\r\n\ttemplateUrl: './radio-panel-item.component.html',\r\n\tstyleUrls: ['./radio-panel-item.component.scss'],\r\n\t// tslint:disable-next-line: no-inputs-metadata-property\r\n\tinputs: ['disableRipple', 'tabIndex'],\r\n\texportAs: 'matRadioButton',\r\n\t// tslint:disable-next-line: no-host-metadata-property\r\n\thost: {\r\n\t\tclass: 'bui-radio-panel-item',\r\n\t\t'[class.bui-radio-checked]': 'checked',\r\n\t\t'[class.bui-disabled]': 'disabled',\r\n\t\t'[class._mat-animation-noopable]': '_noopAnimations',\r\n\t\t'[class.mat-primary]': 'color === \"primary\"',\r\n\t\t'[class.mat-accent]': 'color === \"accent\"',\r\n\t\t'[class.mat-warn]': 'color === \"warn\"',\r\n\t\t// Needs to be removed since it causes some a11y issues (see #21266).\r\n\t\t'[attr.tabindex]': 'null',\r\n\t\t'[attr.id]': 'id',\r\n\t\t'[attr.aria-label]': 'null',\r\n\t\t'[attr.aria-labelledby]': 'null',\r\n\t\t'[attr.aria-describedby]': 'null',\r\n\t\t// Note: under normal conditions focus shouldn't land on this element, however it may be\r\n\t\t// programmatically set, for example inside of a focus trap, in this case we want to forward\r\n\t\t// the focus to the native element.\r\n\t\t'(focus)': '_inputElement.nativeElement.focus()'\r\n\t},\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tanimations: [\r\n\t\ttrigger('slideInOut', [\r\n\t\t\tstate('void', style({ height: '0px', overflow: 'hidden' })),\r\n\t\t\ttransition(':enter, :leave', animate('.25s'))\r\n\t\t])\r\n\t],\r\n\tstandalone: false\r\n})\r\nexport class RadioPanelItemComponent extends MatRadioButton {\r\n\t/**\r\n\t * This will be displayed as the panel header\r\n\t */\r\n\t@Input()\r\n\ttitle = '';\r\n\r\n\t/** The default position of the 'tick' icon relative to the title. */\r\n\t@Input() private _tickPosition: 'start' | 'end' | undefined;\r\n\r\n\t@Input()\r\n\tget tickPosition(): 'start' | 'end' {\r\n\t\treturn this._tickPosition || (this.radioGroup as any)?.tickPosition;\r\n\t}\r\n\tset tickPosition(pos: 'start' | 'end') {\r\n\t\tthis._tickPosition = pos;\r\n\t}\r\n\r\n\t@ContentChild('contentOnSelect')\r\n\t//@ts-ignore\r\n\tcontentOnSelect: TemplateRef<any>;\r\n\r\n\tconstructor(\r\n\t\t@Optional() @Inject(MAT_RADIO_GROUP) radioGroup: MatRadioGroup,\r\n\t\telementRef: ElementRef,\r\n\t\t_changeDetector: ChangeDetectorRef,\r\n\t\t_focusMonitor: FocusMonitor,\r\n\t\t_radioDispatcher: UniqueSelectionDispatcher,\r\n\t\t@Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\r\n\t\t@Optional()\r\n\t\t@Inject(MAT_RADIO_DEFAULT_OPTIONS)\r\n\t\t_providerOverride?: MatRadioDefaultOptions,\r\n\t\t@Attribute('tabindex') tabIndex?: string\r\n\t) {\r\n\t\tsuper(\r\n\t\t\tradioGroup,\r\n\t\t\telementRef,\r\n\t\t\t_changeDetector,\r\n\t\t\t_focusMonitor,\r\n\t\t\t_radioDispatcher,\r\n\t\t\tanimationMode,\r\n\t\t\t_providerOverride,\r\n\t\t\ttabIndex\r\n\t\t);\r\n\t}\r\n}\r\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@if (!disabled) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"bui-persistent-ripple\"\n\t\t\t\t\t\tmatRipple\n\t\t\t\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\t\t\t\t[matRippleCentered]=\"true\"\n\t\t\t\t\t\t[matRippleUnbounded]=\"true\"\n\t\t\t\t\t\t[matRippleTrigger]=\"label\"\n\t\t\t\t\t\t[matRippleRadius]=\"20\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t\t@if (checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-checked-icon\">check_circle</mat-icon>\n\t\t\t\t}\n\t\t\t\t@if (!checked) {\n\t\t\t\t\t<mat-icon class=\"bui-radio-panel-item-circle-unchecked\">radio_button_unchecked</mat-icon>\n\t\t\t\t}\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)=\"_onInputInteraction($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@if (contentOnSelect && checked) {\n\t\t\t<div class=\"bui-label-content\" @slideInOut>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"contentOnSelect\"></ng-container>\n\t\t\t</div>\n\t\t}\n\t</div>\n</label>\n","import {\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tContentChildren,\r\n\tforwardRef,\r\n\tHostBinding,\r\n\tInput,\r\n\tOnChanges,\r\n\tQueryList,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { MAT_RADIO_GROUP, MatRadioGroup } from '@angular/material/radio';\r\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\r\n/**\r\n * Radio panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\r\n * that extends Angular Material's [radio group component](https://material.angular.io/components/radio/overview).\r\n * It inherits all the features of `MatRadioGroup`, and arranges the child items in panels,\r\n * with the `title` attributes rendered as captions. The check box icon and the borders will be displayed\r\n * in the color selected by the theme attribute `color`.\r\n *\r\n */\r\n@Component({\r\n\t// tslint:disable-next-line: directive-selector\r\n\tselector: 'bui-radio-panel',\r\n\texportAs: 'buiRadioPanel',\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => RadioPanelComponent),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{ provide: MAT_RADIO_GROUP, useExisting: forwardRef(() => RadioPanelComponent) }\r\n\t],\r\n\t// tslint:disable-next-line: no-host-metadata-property\r\n\thost: {\r\n\t\trole: 'radiogroup',\r\n\t\tclass: 'bui-radio-panel bui-host',\r\n\t\t'[style.--bui-panel-width]': \"panelWidth +'px'\"\r\n\t},\r\n\ttemplate: ` <ng-content></ng-content> `,\r\n\tstyleUrls: ['radio-panel.component.scss'],\r\n\tstandalone: false\r\n})\r\nexport class RadioPanelComponent extends MatRadioGroup implements OnChanges {\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\t@HostBinding('attr.class')\r\n\tclassAttr: string = '';\r\n\r\n\t/**\r\n\t * The default width of each panel when the `direction` is `row`\r\n\t */\r\n\t@Input()\r\n\tpanelWidth = 300;\r\n\r\n\t/** The flow direction of the radio panel items */\r\n\t@Input()\r\n\tdirection: 'row' | 'column' = 'row';\r\n\r\n\t/** Theme color for all of the radio panels in the group. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/** The default position of the 'tick' icon relative to the title. */\r\n\t@Input() tickPosition: 'start' | 'end' = 'start';\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\t@ContentChildren(RadioPanelItemComponent, { descendants: true })\r\n\t_radios!: QueryList<RadioPanelItemComponent>;\r\n\r\n\tconstructor(cd: ChangeDetectorRef) {\r\n\t\tsuper(cd);\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (['color', 'tickPosition'].some(p => changes[p]) && this._radios) {\r\n\t\t\tthis._radios.forEach(item => item._markForCheck());\r\n\t\t}\r\n\r\n\t\tif (this.direction === 'row') {\r\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-row';\r\n\t\t} else {\r\n\t\t\tthis.classAttr = 'bui-radio-panel bui-host radio-dir-column';\r\n\t\t}\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { RadioPanelItemComponent } from './radio-panel-item.component';\r\nimport { RadioPanelComponent } from './radio-panel.component';\r\n\r\n/**\r\n * Import this NgModule for the radio panel component\r\n */\r\n@NgModule({\r\n\tdeclarations: [RadioPanelItemComponent, RadioPanelComponent],\r\n\timports: [CommonModule, MatRadioModule, MatRippleModule, MatIconModule],\r\n\texports: [RadioPanelItemComponent, RadioPanelComponent]\r\n})\r\nexport class RadioPanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -130,17 +130,17 @@ class SelectionPanelItemComponent {
130
130
  this._cd.markForCheck();
131
131
  }
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelItemComponent, deps: [{ token: SELECTION_PANEL_GROUP }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SelectionPanelItemComponent, isStandalone: false, selector: "bui-selection-panel-item", inputs: { title: "title", shadedHeader: "shadedHeader", selectable: "selectable", disabled: "disabled", value: "value", checked: "checked", color: "color" }, host: { properties: { "class.bui-selection-checked": "checked", "class.bui-disabled": "disabled", "class.bui-unselectable": "!selectable" }, classAttribute: "bui-selection-panel-item" }, viewQueries: [{ propertyName: "_bodyContent", first: true, predicate: ["contentBody"], descendants: true, static: true }, { propertyName: "_ripple", first: true, predicate: MatRipple, descendants: true }], ngImport: i0, template: "<div class=\"bui-selection-panel-item-wrapper\">\r\n\t<div\r\n\t\tmatRipple\r\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\tclass=\"bui-ripple\"\r\n\t\t*ngIf=\"!disabled\"\r\n\t\t[matRippleTrigger]=\"toggleTrigger\"\r\n\t\t#ripple=\"matRipple\"\r\n\t\t[matRippleDisabled]=\"!selectable\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"bui-selection-panel-item-header\"\r\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\r\n\t\t#toggleTrigger\r\n\t>\r\n\t\t<div\r\n\t\t\t*ngIf=\"shadedHeader\"\r\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\r\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\r\n\t\t></div>\r\n\t\t<div class=\"bui-selection-panel-item-header-container\">\r\n\t\t\t<mat-checkbox\r\n\t\t\t\tclass=\"bui-selection-checkbox\"\r\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\r\n\t\t\t\t[(ngModel)]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(change)=\"_markInteracted()\"\r\n\t\t\t\tstyle=\"flex-grow: 1\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<ng-template #noselectable>\r\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\r\n\t</div>\r\n\t<div\r\n\t\t#contentBody\r\n\t\tclass=\"bui-selection-panel-item-content\"\r\n\t\t[class.bui-empty]=\"empty\"\r\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\r\n\t\t(click)=\"_contentClicked($event)\"\r\n\t\t(cdkObserveContent)=\"contentChanged()\"\r\n\t>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\r\n</div>\r\n", styles: [":host{position:relative;border-radius:5px;border-width:1px;border-style:solid;padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelItemComponent, deps: [{ token: SELECTION_PANEL_GROUP }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: SelectionPanelItemComponent, isStandalone: false, selector: "bui-selection-panel-item", inputs: { title: "title", shadedHeader: "shadedHeader", selectable: "selectable", disabled: "disabled", value: "value", checked: "checked", color: "color" }, host: { properties: { "class.bui-selection-checked": "checked", "class.bui-disabled": "disabled", "class.bui-unselectable": "!selectable" }, classAttribute: "bui-selection-panel-item" }, viewQueries: [{ propertyName: "_bodyContent", first: true, predicate: ["contentBody"], descendants: true, static: true }, { propertyName: "_ripple", first: true, predicate: MatRipple, descendants: true }], ngImport: i0, template: "<div class=\"bui-selection-panel-item-wrapper\">\n\t@if (!disabled) {\n\t\t<div\n\t\t\tmatRipple\n\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\tclass=\"bui-ripple\"\n\t\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t\t#ripple=\"matRipple\"\n\t\t\t[matRippleDisabled]=\"!selectable\"\n\t\t></div>\n\t}\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t@if (shadedHeader) {\n\t\t\t<div class=\"bui-selection-panel-item-header-underlay\" [ngClass]=\"{ 'bui-not-empty': !empty }\"></div>\n\t\t}\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t@if (selectable) {\n\t\t\t\t<mat-checkbox\n\t\t\t\t\tclass=\"bui-selection-checkbox\"\n\t\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t\t</mat-checkbox>\n\t\t\t} @else {\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t}\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-empty]=\"empty\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n", styles: [":host{position:relative;border-radius:5px;border-width:1px;border-style:solid;padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelItemComponent, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelItemComponent, decorators: [{
137
137
  type: Component,
138
138
  args: [{ selector: 'bui-selection-panel-item', changeDetection: ChangeDetectionStrategy.OnPush, host: {
139
139
  class: 'bui-selection-panel-item',
140
140
  '[class.bui-selection-checked]': 'checked',
141
141
  '[class.bui-disabled]': 'disabled',
142
142
  '[class.bui-unselectable]': '!selectable'
143
- }, standalone: false, template: "<div class=\"bui-selection-panel-item-wrapper\">\r\n\t<div\r\n\t\tmatRipple\r\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\tclass=\"bui-ripple\"\r\n\t\t*ngIf=\"!disabled\"\r\n\t\t[matRippleTrigger]=\"toggleTrigger\"\r\n\t\t#ripple=\"matRipple\"\r\n\t\t[matRippleDisabled]=\"!selectable\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"bui-selection-panel-item-header\"\r\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\r\n\t\t#toggleTrigger\r\n\t>\r\n\t\t<div\r\n\t\t\t*ngIf=\"shadedHeader\"\r\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\r\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\r\n\t\t></div>\r\n\t\t<div class=\"bui-selection-panel-item-header-container\">\r\n\t\t\t<mat-checkbox\r\n\t\t\t\tclass=\"bui-selection-checkbox\"\r\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\r\n\t\t\t\t[(ngModel)]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(change)=\"_markInteracted()\"\r\n\t\t\t\tstyle=\"flex-grow: 1\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<ng-template #noselectable>\r\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\r\n\t</div>\r\n\t<div\r\n\t\t#contentBody\r\n\t\tclass=\"bui-selection-panel-item-content\"\r\n\t\t[class.bui-empty]=\"empty\"\r\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\r\n\t\t(click)=\"_contentClicked($event)\"\r\n\t\t(cdkObserveContent)=\"contentChanged()\"\r\n\t>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\r\n</div>\r\n", styles: [":host{position:relative;border-radius:5px;border-width:1px;border-style:solid;padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"] }]
143
+ }, standalone: false, template: "<div class=\"bui-selection-panel-item-wrapper\">\n\t@if (!disabled) {\n\t\t<div\n\t\t\tmatRipple\n\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\tclass=\"bui-ripple\"\n\t\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t\t#ripple=\"matRipple\"\n\t\t\t[matRippleDisabled]=\"!selectable\"\n\t\t></div>\n\t}\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t@if (shadedHeader) {\n\t\t\t<div class=\"bui-selection-panel-item-header-underlay\" [ngClass]=\"{ 'bui-not-empty': !empty }\"></div>\n\t\t}\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t@if (selectable) {\n\t\t\t\t<mat-checkbox\n\t\t\t\t\tclass=\"bui-selection-checkbox\"\n\t\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t\t</mat-checkbox>\n\t\t\t} @else {\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t}\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-empty]=\"empty\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n", styles: [":host{position:relative;border-radius:5px;border-width:1px;border-style:solid;padding:1px}:host .bui-selection-panel-item-wrapper{padding-left:1rem;padding-right:1rem}:host .bui-ripple{position:absolute;inset:0;z-index:-1}:host .bui-selection-panel-item-header{margin-top:calc(1rem - 4px);margin-bottom:calc(1rem - 4px);align-items:center;position:relative}:host .bui-selection-panel-item-header.bui-shaded:not(.bui-empty){margin-bottom:calc(2rem + 4px)}:host .bui-selection-panel-item-header-container{display:flex}:host .bui-selection-panel-item-header-container .mat-mdc-checkbox{z-index:1}:host .bui-selection-panel-item-title{font-size:larger;font-weight:700;white-space:normal;margin-top:2px}:host .bui-selection-panel-item-content:not(.bui-empty){margin-top:calc(2px + 1rem);margin-bottom:1rem}:host .bui-selection-panel-item-header-underlay{position:absolute;top:calc(3px - 1rem);left:calc(-1px - 1rem);right:calc(-1px - 1rem);bottom:calc(-3px - 1rem);border-radius:5px}:host .bui-selection-panel-item-header-underlay.bui-not-empty{border-bottom-left-radius:0;border-bottom-right-radius:0}:host(:not(:first-child)){margin-top:1rem}:host(:not([hidden])){display:block}:host(:not(.bui-disabled,.bui-unselectable)):hover{border-width:2px;padding:0}:host(:not(.bui-disabled,.bui-unselectable)) .bui-selection-panel-item-content.bui-selectable{cursor:pointer}\n"] }]
144
144
  }], ctorParameters: () => [{ type: undefined, decorators: [{
145
145
  type: Inject,
146
146
  args: [SELECTION_PANEL_GROUP]
@@ -255,13 +255,13 @@ class SelectionPanelDirective {
255
255
  }
256
256
  }
257
257
  }
258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
259
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: SelectionPanelDirective, isStandalone: false, selector: "bui-selection-panel", inputs: { color: "color", selectByHeader: "selectByHeader" }, host: { classAttribute: "bui-selection-panel bui-host" }, providers: [
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
259
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: SelectionPanelDirective, isStandalone: false, selector: "bui-selection-panel", inputs: { color: "color", selectByHeader: "selectByHeader" }, host: { classAttribute: "bui-selection-panel bui-host" }, providers: [
260
260
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },
261
261
  { provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }
262
262
  ], queries: [{ propertyName: "_items", predicate: SelectionPanelItemComponent, descendants: true }], exportAs: ["buiSelectionPanel"], usesOnChanges: true, ngImport: i0 }); }
263
263
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelDirective, decorators: [{
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelDirective, decorators: [{
265
265
  type: Directive,
266
266
  args: [{
267
267
  selector: 'bui-selection-panel',
@@ -283,11 +283,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImpo
283
283
  }] } });
284
284
 
285
285
  class SelectionPanelModule {
286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
287
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelModule, declarations: [SelectionPanelDirective, SelectionPanelItemComponent], imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule], exports: [SelectionPanelDirective, SelectionPanelItemComponent] }); }
288
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelModule, imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule] }); }
286
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
287
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelModule, declarations: [SelectionPanelDirective, SelectionPanelItemComponent], imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule], exports: [SelectionPanelDirective, SelectionPanelItemComponent] }); }
288
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelModule, imports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule] }); }
289
289
  }
290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SelectionPanelModule, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SelectionPanelModule, decorators: [{
291
291
  type: NgModule,
292
292
  args: [{
293
293
  declarations: [SelectionPanelDirective, SelectionPanelItemComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-selection-panel.mjs","sources":["../../../projects/ui/selection-panel/selection-panel-item.component.ts","../../../projects/ui/selection-panel/selection-panel-item.component.html","../../../projects/ui/selection-panel/selection-panel.directive.ts","../../../projects/ui/selection-panel/selection-panel.module.ts","../../../projects/ui/selection-panel/bravura-ui-selection-panel.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n\tAfterContentInit,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tViewChild\r\n} from '@angular/core';\r\nimport { MatRipple, ThemePalette } from '@angular/material/core';\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport interface SelectionPanelItemGroup {\r\n\t_selection: any[];\r\n\tcolor: ThemePalette;\r\n\t_isDisabled: boolean;\r\n\t_onTouched?: () => void;\r\n\tselectByHeader: boolean;\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const SELECTION_PANEL_GROUP = new InjectionToken<SelectionPanelItemGroup>('SelectionPanelItemGroup');\r\n\r\n/**\r\n * Use `bui-selection-panel-item` within a `bui-selection-panel` to display an option.\r\n */\r\n@Component({\r\n\tselector: 'bui-selection-panel-item',\r\n\ttemplateUrl: './selection-panel-item.component.html',\r\n\tstyleUrls: ['./selection-panel-item.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\thost: {\r\n\t\tclass: 'bui-selection-panel-item',\r\n\t\t'[class.bui-selection-checked]': 'checked',\r\n\t\t'[class.bui-disabled]': 'disabled',\r\n\t\t'[class.bui-unselectable]': '!selectable'\r\n\t},\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelItemComponent implements AfterContentInit {\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_disabled: boolean | string;\r\n\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_checked: boolean | string;\r\n\r\n\t/**\r\n\t * This will be displayed as the panel header\r\n\t */\r\n\t@Input()\r\n\ttitle = '';\r\n\r\n\t/**\r\n\t * Show the header in with a shaded background\r\n\t */\r\n\t@Input()\r\n\tshadedHeader = false;\r\n\r\n\t/**\r\n\t * when false will hide the checkbox\r\n\t */\r\n\t@Input()\r\n\tselectable = true;\r\n\r\n\t/** Whether the option is disabled. */\r\n\t@Input()\r\n\tget disabled(): boolean {\r\n\t\treturn this._disabled || this._group._isDisabled;\r\n\t}\r\n\tset disabled(value: boolean) {\r\n\t\tthis._setDisabled(coerceBooleanProperty(value));\r\n\t}\r\n\r\n\t/** The value of this option. */\r\n\t@Input()\r\n\tget value(): any {\r\n\t\treturn this._value;\r\n\t}\r\n\tset value(value: any) {\r\n\t\tif (this._value !== value) {\r\n\t\t\tthis._value = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** Whether this option is checked. */\r\n\t@Input()\r\n\tget checked(): boolean {\r\n\t\treturn this._group._selection.includes(this.value);\r\n\t}\r\n\tset checked(value: boolean) {\r\n\t\tif (!this._group._onTouched) {\r\n\t\t\tsetTimeout(() => this._setChecked(value), 0);\r\n\t\t} else {\r\n\t\t\tthis._setChecked(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Theme color of the radio button. */\r\n\t@Input()\r\n\tget color(): ThemePalette {\r\n\t\treturn this._color || this._group.color;\r\n\t}\r\n\tset color(newValue: ThemePalette) {\r\n\t\tthis._color = newValue;\r\n\t}\r\n\r\n\tget _selectByHeader(): boolean {\r\n\t\treturn this._group.selectByHeader;\r\n\t}\r\n\r\n\tempty: boolean = true;\r\n\r\n\tprivate _color: ThemePalette;\r\n\tprivate _disabled = false;\r\n\tprivate _value: any;\r\n\r\n\t@ViewChild('contentBody', { static: true })\r\n\tprivate _bodyContent?: ElementRef<any>;\r\n\r\n\t@ViewChild(MatRipple)\r\n\tprivate _ripple?: MatRipple;\r\n\r\n\tconstructor(\r\n\t\t@Inject(SELECTION_PANEL_GROUP) private _group: SelectionPanelItemGroup,\r\n\t\tprivate _cd: ChangeDetectorRef\r\n\t) {}\r\n\r\n\t/** @ignore */\r\n\t_markInteracted() {\r\n\t\tif (this._group._onTouched) {\r\n\t\t\tthis._group._onTouched();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_notify() {\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t/** Toggle selection programmatically */\r\n\ttoggle() {\r\n\t\tthis.checked = !this.checked;\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_contentClicked(event: MouseEvent) {\r\n\t\tif (!this._selectByHeader && this.selectable) {\r\n\t\t\tthis._ripple?.launch(event.clientX, event.clientY);\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tcontentChanged() {\r\n\t\tconst el: HTMLElement = this._bodyContent?.nativeElement;\r\n\t\tthis.empty = (el?.childElementCount || 0) === 0 && (el?.textContent || '') === '';\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngAfterContentInit() {\r\n\t\tthis.contentChanged();\r\n\t}\r\n\r\n\t/** Sets the disabled state and marks for check if a change occurred. */\r\n\tprivate _setDisabled(value: boolean) {\r\n\t\tif (this._disabled !== value) {\r\n\t\t\tthis._disabled = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _setChecked(value: boolean) {\r\n\t\tconst newCheckedState = coerceBooleanProperty(value);\r\n\t\tconst old = this._group._selection.includes(this.value);\r\n\t\tif (old !== newCheckedState) {\r\n\t\t\tconst contained = this._group._selection.some(v => v === this._value);\r\n\t\t\tif (newCheckedState && this._group && !contained) {\r\n\t\t\t\tthis._group._selection = [...this._group._selection, this._value];\r\n\t\t\t} else if (!newCheckedState && this._group && contained) {\r\n\t\t\t\t// When unchecking the selected item, update the selection\r\n\t\t\t\t// property on the group.\r\n\t\t\t\tthis._group._selection = this._group._selection.filter(v => v !== this._value);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"bui-selection-panel-item-wrapper\">\r\n\t<div\r\n\t\tmatRipple\r\n\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\r\n\t\tclass=\"bui-ripple\"\r\n\t\t*ngIf=\"!disabled\"\r\n\t\t[matRippleTrigger]=\"toggleTrigger\"\r\n\t\t#ripple=\"matRipple\"\r\n\t\t[matRippleDisabled]=\"!selectable\"\r\n\t></div>\r\n\t<div\r\n\t\tclass=\"bui-selection-panel-item-header\"\r\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\r\n\t\t#toggleTrigger\r\n\t>\r\n\t\t<div\r\n\t\t\t*ngIf=\"shadedHeader\"\r\n\t\t\tclass=\"bui-selection-panel-item-header-underlay\"\r\n\t\t\t[ngClass]=\"{ 'bui-not-empty': !empty }\"\r\n\t\t></div>\r\n\t\t<div class=\"bui-selection-panel-item-header-container\">\r\n\t\t\t<mat-checkbox\r\n\t\t\t\tclass=\"bui-selection-checkbox\"\r\n\t\t\t\t*ngIf=\"selectable; else noselectable\"\r\n\t\t\t\t[(ngModel)]=\"checked\"\r\n\t\t\t\t[disabled]=\"disabled\"\r\n\t\t\t\t(change)=\"_markInteracted()\"\r\n\t\t\t\tstyle=\"flex-grow: 1\"\r\n\t\t\t>\r\n\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</mat-checkbox>\r\n\t\t\t<ng-template #noselectable>\r\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\r\n\t\t</div>\r\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\r\n\t</div>\r\n\t<div\r\n\t\t#contentBody\r\n\t\tclass=\"bui-selection-panel-item-content\"\r\n\t\t[class.bui-empty]=\"empty\"\r\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\r\n\t\t(click)=\"_contentClicked($event)\"\r\n\t\t(cdkObserveContent)=\"contentChanged()\"\r\n\t>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\r\n</div>\r\n","import {\r\n\tChangeDetectorRef,\r\n\tContentChildren,\r\n\tDirective,\r\n\tforwardRef,\r\n\tInput,\r\n\tOnChanges,\r\n\tQueryList,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport {\r\n\tSelectionPanelItemComponent,\r\n\tSelectionPanelItemGroup,\r\n\tSELECTION_PANEL_GROUP\r\n} from './selection-panel-item.component';\r\n\r\n/**\r\n * Selection panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\r\n * that display a set of multi-selection items as bordered panels, in a similar fashion as Radio Panel `bui-radio-panel`.\r\n *\r\n * Accessibility features are not yet fully implemented.\r\n *\r\n * Example:\r\n *\r\n * ```html\r\n * <bui-selection-panel>\r\n * <bui-selection-panel-item *ngFor=\"let obj of objects\" [value]=\"obj\">{{obj.description}}</bui-selection-panel-item>\r\n * </bui-selection-panel>\r\n * ```\r\n *\r\n */\r\n@Directive({\r\n\tselector: 'bui-selection-panel',\r\n\tproviders: [\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },\r\n\t\t{ provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }\r\n\t],\r\n\texportAs: 'buiSelectionPanel',\r\n\thost: { class: 'bui-selection-panel bui-host' },\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelDirective implements ControlValueAccessor, SelectionPanelItemGroup, OnChanges {\r\n\t/** Theme color for all of the selection checkboxes in the group. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/**\r\n\t * When set to `false`, the selection is triggered by click everywhere within the panels that is\r\n\t * not focus-trapping; otherwise, only clicking on the header will activate the selection.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\t@Input() selectByHeader = true;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * The selected values. Used by the child elements to modify the group's value\r\n\t */\r\n\tget _selection(): any[] {\r\n\t\treturn this._selected;\r\n\t}\r\n\tset _selection(value: any[]) {\r\n\t\tif (value !== this._selected) {\r\n\t\t\tthis._selected = value;\r\n\t\t\tif (this._onChange) {\r\n\t\t\t\tthis._onChange(this._selected);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_onTouched?: () => void;\r\n\r\n\t/** @ignore */\r\n\t_isDisabled = false;\r\n\r\n\tprivate _onChange?: (_: any) => void;\r\n\r\n\tprivate _selected: any[] = [];\r\n\r\n\t@ContentChildren(SelectionPanelItemComponent, { descendants: true })\r\n\tprivate _items!: QueryList<SelectionPanelItemComponent>;\r\n\r\n\tconstructor(private _cd: ChangeDetectorRef) {}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\twriteValue(obj: any): void {\r\n\t\tthis._selected = [];\r\n\t\tif (Array.isArray(obj)) {\r\n\t\t\tthis._selected.push(...obj);\r\n\t\t} else if (obj !== null && obj !== undefined) {\r\n\t\t\tthis._selected.push(obj);\r\n\t\t}\r\n\t\tthis._items?.forEach(it => it._notify());\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnChange(fn: (_: any) => void): void {\r\n\t\tthis._onChange = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnTouched(fn: () => void): void {\r\n\t\tthis._onTouched = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the disabled state and marks for check if a change occurred.\r\n\t * @ignore\r\n\t */\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tif (this._isDisabled !== isDisabled) {\r\n\t\t\tthis._isDisabled = isDisabled;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t\tthis._items.forEach(it => it._notify());\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (this._items) {\r\n\t\t\tif (changes.color || changes.selectByHeader) {\r\n\t\t\t\tthis._items.forEach(item => item._notify());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { SelectionPanelItemComponent } from './selection-panel-item.component';\r\nimport { SelectionPanelDirective } from './selection-panel.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [SelectionPanelDirective, SelectionPanelItemComponent],\r\n\timports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule],\r\n\texports: [SelectionPanelDirective, SelectionPanelItemComponent]\r\n})\r\nexport class SelectionPanelModule {}\r\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-selection-panel.mjs","sources":["../../../projects/ui/selection-panel/selection-panel-item.component.ts","../../../projects/ui/selection-panel/selection-panel-item.component.html","../../../projects/ui/selection-panel/selection-panel.directive.ts","../../../projects/ui/selection-panel/selection-panel.module.ts","../../../projects/ui/selection-panel/bravura-ui-selection-panel.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport {\r\n\tAfterContentInit,\r\n\tChangeDetectionStrategy,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tInject,\r\n\tInjectionToken,\r\n\tInput,\r\n\tViewChild\r\n} from '@angular/core';\r\nimport { MatRipple, ThemePalette } from '@angular/material/core';\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport interface SelectionPanelItemGroup {\r\n\t_selection: any[];\r\n\tcolor: ThemePalette;\r\n\t_isDisabled: boolean;\r\n\t_onTouched?: () => void;\r\n\tselectByHeader: boolean;\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const SELECTION_PANEL_GROUP = new InjectionToken<SelectionPanelItemGroup>('SelectionPanelItemGroup');\r\n\r\n/**\r\n * Use `bui-selection-panel-item` within a `bui-selection-panel` to display an option.\r\n */\r\n@Component({\r\n\tselector: 'bui-selection-panel-item',\r\n\ttemplateUrl: './selection-panel-item.component.html',\r\n\tstyleUrls: ['./selection-panel-item.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\thost: {\r\n\t\tclass: 'bui-selection-panel-item',\r\n\t\t'[class.bui-selection-checked]': 'checked',\r\n\t\t'[class.bui-disabled]': 'disabled',\r\n\t\t'[class.bui-unselectable]': '!selectable'\r\n\t},\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelItemComponent implements AfterContentInit {\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_disabled: boolean | string;\r\n\r\n\t/** @ignore */\r\n\tstatic ngAcceptInputType_checked: boolean | string;\r\n\r\n\t/**\r\n\t * This will be displayed as the panel header\r\n\t */\r\n\t@Input()\r\n\ttitle = '';\r\n\r\n\t/**\r\n\t * Show the header in with a shaded background\r\n\t */\r\n\t@Input()\r\n\tshadedHeader = false;\r\n\r\n\t/**\r\n\t * when false will hide the checkbox\r\n\t */\r\n\t@Input()\r\n\tselectable = true;\r\n\r\n\t/** Whether the option is disabled. */\r\n\t@Input()\r\n\tget disabled(): boolean {\r\n\t\treturn this._disabled || this._group._isDisabled;\r\n\t}\r\n\tset disabled(value: boolean) {\r\n\t\tthis._setDisabled(coerceBooleanProperty(value));\r\n\t}\r\n\r\n\t/** The value of this option. */\r\n\t@Input()\r\n\tget value(): any {\r\n\t\treturn this._value;\r\n\t}\r\n\tset value(value: any) {\r\n\t\tif (this._value !== value) {\r\n\t\t\tthis._value = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** Whether this option is checked. */\r\n\t@Input()\r\n\tget checked(): boolean {\r\n\t\treturn this._group._selection.includes(this.value);\r\n\t}\r\n\tset checked(value: boolean) {\r\n\t\tif (!this._group._onTouched) {\r\n\t\t\tsetTimeout(() => this._setChecked(value), 0);\r\n\t\t} else {\r\n\t\t\tthis._setChecked(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Theme color of the radio button. */\r\n\t@Input()\r\n\tget color(): ThemePalette {\r\n\t\treturn this._color || this._group.color;\r\n\t}\r\n\tset color(newValue: ThemePalette) {\r\n\t\tthis._color = newValue;\r\n\t}\r\n\r\n\tget _selectByHeader(): boolean {\r\n\t\treturn this._group.selectByHeader;\r\n\t}\r\n\r\n\tempty: boolean = true;\r\n\r\n\tprivate _color: ThemePalette;\r\n\tprivate _disabled = false;\r\n\tprivate _value: any;\r\n\r\n\t@ViewChild('contentBody', { static: true })\r\n\tprivate _bodyContent?: ElementRef<any>;\r\n\r\n\t@ViewChild(MatRipple)\r\n\tprivate _ripple?: MatRipple;\r\n\r\n\tconstructor(\r\n\t\t@Inject(SELECTION_PANEL_GROUP) private _group: SelectionPanelItemGroup,\r\n\t\tprivate _cd: ChangeDetectorRef\r\n\t) {}\r\n\r\n\t/** @ignore */\r\n\t_markInteracted() {\r\n\t\tif (this._group._onTouched) {\r\n\t\t\tthis._group._onTouched();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_notify() {\r\n\t\tthis._cd.markForCheck();\r\n\t}\r\n\r\n\t/** Toggle selection programmatically */\r\n\ttoggle() {\r\n\t\tthis.checked = !this.checked;\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_contentClicked(event: MouseEvent) {\r\n\t\tif (!this._selectByHeader && this.selectable) {\r\n\t\t\tthis._ripple?.launch(event.clientX, event.clientY);\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tcontentChanged() {\r\n\t\tconst el: HTMLElement = this._bodyContent?.nativeElement;\r\n\t\tthis.empty = (el?.childElementCount || 0) === 0 && (el?.textContent || '') === '';\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngAfterContentInit() {\r\n\t\tthis.contentChanged();\r\n\t}\r\n\r\n\t/** Sets the disabled state and marks for check if a change occurred. */\r\n\tprivate _setDisabled(value: boolean) {\r\n\t\tif (this._disabled !== value) {\r\n\t\t\tthis._disabled = value;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _setChecked(value: boolean) {\r\n\t\tconst newCheckedState = coerceBooleanProperty(value);\r\n\t\tconst old = this._group._selection.includes(this.value);\r\n\t\tif (old !== newCheckedState) {\r\n\t\t\tconst contained = this._group._selection.some(v => v === this._value);\r\n\t\t\tif (newCheckedState && this._group && !contained) {\r\n\t\t\t\tthis._group._selection = [...this._group._selection, this._value];\r\n\t\t\t} else if (!newCheckedState && this._group && contained) {\r\n\t\t\t\t// When unchecking the selected item, update the selection\r\n\t\t\t\t// property on the group.\r\n\t\t\t\tthis._group._selection = this._group._selection.filter(v => v !== this._value);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n","<div class=\"bui-selection-panel-item-wrapper\">\n\t@if (!disabled) {\n\t\t<div\n\t\t\tmatRipple\n\t\t\tmatRippleColor=\"rgba(128,128,128,.1)\"\n\t\t\tclass=\"bui-ripple\"\n\t\t\t[matRippleTrigger]=\"toggleTrigger\"\n\t\t\t#ripple=\"matRipple\"\n\t\t\t[matRippleDisabled]=\"!selectable\"\n\t\t></div>\n\t}\n\t<div\n\t\tclass=\"bui-selection-panel-item-header\"\n\t\t[ngClass]=\"{ 'bui-shaded': shadedHeader, 'bui-empty': empty }\"\n\t\t#toggleTrigger\n\t>\n\t\t@if (shadedHeader) {\n\t\t\t<div class=\"bui-selection-panel-item-header-underlay\" [ngClass]=\"{ 'bui-not-empty': !empty }\"></div>\n\t\t}\n\t\t<div class=\"bui-selection-panel-item-header-container\">\n\t\t\t@if (selectable) {\n\t\t\t\t<mat-checkbox\n\t\t\t\t\tclass=\"bui-selection-checkbox\"\n\t\t\t\t\t[(ngModel)]=\"checked\"\n\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t(change)=\"_markInteracted()\"\n\t\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t\t</mat-checkbox>\n\t\t\t} @else {\n\t\t\t\t<div style=\"flex-grow: 1\" class=\"bui-selection-panel-item-title\" [innerHTML]=\"title\"></div>\n\t\t\t}\n\t\t\t<ng-content select=\"[buiSelectionItemHeadingEnd]\"></ng-content>\n\t\t</div>\n\t\t<ng-content select=\"[buiSelectionItemSubtitle]\"></ng-content>\n\t</div>\n\t<div\n\t\t#contentBody\n\t\tclass=\"bui-selection-panel-item-content\"\n\t\t[class.bui-empty]=\"empty\"\n\t\t[class.bui-selectable]=\"!_selectByHeader\"\n\t\t(click)=\"_contentClicked($event)\"\n\t\t(cdkObserveContent)=\"contentChanged()\"\n\t>\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"bui-selection-panel-item-bottom\"></div>\n</div>\n","import {\r\n\tChangeDetectorRef,\r\n\tContentChildren,\r\n\tDirective,\r\n\tforwardRef,\r\n\tInput,\r\n\tOnChanges,\r\n\tQueryList,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport {\r\n\tSelectionPanelItemComponent,\r\n\tSelectionPanelItemGroup,\r\n\tSELECTION_PANEL_GROUP\r\n} from './selection-panel-item.component';\r\n\r\n/**\r\n * Selection panel is a [control value accessor](https://angular.io/api/forms/ControlValueAccessor)\r\n * that display a set of multi-selection items as bordered panels, in a similar fashion as Radio Panel `bui-radio-panel`.\r\n *\r\n * Accessibility features are not yet fully implemented.\r\n *\r\n * Example:\r\n *\r\n * ```html\r\n * <bui-selection-panel>\r\n * <bui-selection-panel-item *ngFor=\"let obj of objects\" [value]=\"obj\">{{obj.description}}</bui-selection-panel-item>\r\n * </bui-selection-panel>\r\n * ```\r\n *\r\n */\r\n@Directive({\r\n\tselector: 'bui-selection-panel',\r\n\tproviders: [\r\n\t\t{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SelectionPanelDirective), multi: true },\r\n\t\t{ provide: SELECTION_PANEL_GROUP, useExisting: forwardRef(() => SelectionPanelDirective) }\r\n\t],\r\n\texportAs: 'buiSelectionPanel',\r\n\thost: { class: 'bui-selection-panel bui-host' },\r\n\tstandalone: false\r\n})\r\nexport class SelectionPanelDirective implements ControlValueAccessor, SelectionPanelItemGroup, OnChanges {\r\n\t/** Theme color for all of the selection checkboxes in the group. */\r\n\t@Input() color: ThemePalette;\r\n\r\n\t/**\r\n\t * When set to `false`, the selection is triggered by click everywhere within the panels that is\r\n\t * not focus-trapping; otherwise, only clicking on the header will activate the selection.\r\n\t *\r\n\t * @default true\r\n\t */\r\n\t@Input() selectByHeader = true;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * The selected values. Used by the child elements to modify the group's value\r\n\t */\r\n\tget _selection(): any[] {\r\n\t\treturn this._selected;\r\n\t}\r\n\tset _selection(value: any[]) {\r\n\t\tif (value !== this._selected) {\r\n\t\t\tthis._selected = value;\r\n\t\t\tif (this._onChange) {\r\n\t\t\t\tthis._onChange(this._selected);\r\n\t\t\t}\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\t_onTouched?: () => void;\r\n\r\n\t/** @ignore */\r\n\t_isDisabled = false;\r\n\r\n\tprivate _onChange?: (_: any) => void;\r\n\r\n\tprivate _selected: any[] = [];\r\n\r\n\t@ContentChildren(SelectionPanelItemComponent, { descendants: true })\r\n\tprivate _items!: QueryList<SelectionPanelItemComponent>;\r\n\r\n\tconstructor(private _cd: ChangeDetectorRef) {}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\twriteValue(obj: any): void {\r\n\t\tthis._selected = [];\r\n\t\tif (Array.isArray(obj)) {\r\n\t\t\tthis._selected.push(...obj);\r\n\t\t} else if (obj !== null && obj !== undefined) {\r\n\t\t\tthis._selected.push(obj);\r\n\t\t}\r\n\t\tthis._items?.forEach(it => it._notify());\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnChange(fn: (_: any) => void): void {\r\n\t\tthis._onChange = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tregisterOnTouched(fn: () => void): void {\r\n\t\tthis._onTouched = fn;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the disabled state and marks for check if a change occurred.\r\n\t * @ignore\r\n\t */\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tif (this._isDisabled !== isDisabled) {\r\n\t\t\tthis._isDisabled = isDisabled;\r\n\t\t\tthis._cd.markForCheck();\r\n\t\t\tthis._items.forEach(it => it._notify());\r\n\t\t}\r\n\t}\r\n\r\n\t/** @ignore */\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (this._items) {\r\n\t\t\tif (changes.color || changes.selectByHeader) {\r\n\t\t\t\tthis._items.forEach(item => item._notify());\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { ObserversModule } from '@angular/cdk/observers';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { SelectionPanelItemComponent } from './selection-panel-item.component';\r\nimport { SelectionPanelDirective } from './selection-panel.directive';\r\n\r\n@NgModule({\r\n\tdeclarations: [SelectionPanelDirective, SelectionPanelItemComponent],\r\n\timports: [CommonModule, MatCheckboxModule, FormsModule, MatRippleModule, ObserversModule],\r\n\texports: [SelectionPanelDirective, SelectionPanelItemComponent]\r\n})\r\nexport class SelectionPanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -64,10 +64,10 @@ class SkeletonLoaderComponent extends ContentLoaderComponent {
64
64
  this._cdRef.markForCheck();
65
65
  }
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonLoaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SkeletonLoaderComponent, isStandalone: false, selector: "bui-skeleton", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonLoaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: SkeletonLoaderComponent, isStandalone: false, selector: "bui-skeleton", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonLoaderComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonLoaderComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{
73
73
  selector: 'bui-skeleton',
@@ -144,10 +144,10 @@ class SkeletonLoaderPresetsDirective {
144
144
  clipPathElem.innerHTML = preset.content;
145
145
  }
146
146
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonLoaderPresetsDirective, deps: [{ token: SkeletonLoaderComponent, host: true }, { token: i0.ElementRef }, { token: SKELETON_PRESETS }], target: i0.ɵɵFactoryTarget.Directive }); }
148
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.17", type: SkeletonLoaderPresetsDirective, isStandalone: false, selector: "bui-skeleton[preset]", inputs: { preset: "preset" }, ngImport: i0 }); }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonLoaderPresetsDirective, deps: [{ token: SkeletonLoaderComponent, host: true }, { token: i0.ElementRef }, { token: SKELETON_PRESETS }], target: i0.ɵɵFactoryTarget.Directive }); }
148
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: SkeletonLoaderPresetsDirective, isStandalone: false, selector: "bui-skeleton[preset]", inputs: { preset: "preset" }, ngImport: i0 }); }
149
149
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonLoaderPresetsDirective, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonLoaderPresetsDirective, decorators: [{
151
151
  type: Directive,
152
152
  args: [{
153
153
  selector: 'bui-skeleton[preset]',
@@ -176,11 +176,11 @@ class SkeletonsModule {
176
176
  providers: [provideSkeletonPresets(config?.presets || {}), provideSkeletonPresets(DEFAULT_PRESETS)]
177
177
  };
178
178
  }
179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
180
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkeletonsModule, declarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective], imports: [CommonModule, ContentLoaderModule, BuiCommonModule], exports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective] }); }
181
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonsModule, providers: [provideSkeletonPresets(DEFAULT_PRESETS)], imports: [CommonModule, ContentLoaderModule, BuiCommonModule, ContentLoaderModule, BuiCommonModule] }); }
179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
180
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: SkeletonsModule, declarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective], imports: [CommonModule, ContentLoaderModule, BuiCommonModule], exports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective] }); }
181
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonsModule, providers: [provideSkeletonPresets(DEFAULT_PRESETS)], imports: [CommonModule, ContentLoaderModule, BuiCommonModule, ContentLoaderModule, BuiCommonModule] }); }
182
182
  }
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkeletonsModule, decorators: [{
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: SkeletonsModule, decorators: [{
184
184
  type: NgModule,
185
185
  args: [{
186
186
  declarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"bravura-ui-skeletons.mjs","sources":["../../../projects/ui/skeletons/skeleton-loader.component.ts","../../../projects/ui/skeletons/skeleton-loader-presets.directive.ts","../../../projects/ui/skeletons/skeletons.module.ts","../../../projects/ui/skeletons/bravura-ui-skeletons.ts"],"sourcesContent":["import { Directionality } from '@angular/cdk/bidi';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport { ContentLoaderComponent } from '@ngneat/content-loader';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * Use the [Create React Content Loader](https://skeletonreact.com/) to create your custom skeleton loaders;\r\n *\r\n * Add the resulting `svg` elements as the content children of a `<bui-skeleton>` component.\r\n *\r\n * The component `bui-skeleton` extends `content-loader` from [ngneat/content-loader](https://github.com/ngneat/content-loader).\r\n *\r\n * You can also choose from one of the presets registered by the `SKELETON_PRESETS` injection token.\r\n *\r\n * The following code snippets demonstrate how to register a preset:\r\n *\r\n * ```typescript\r\n * @import {SkeletonsModule} from '@bravura/ui/skeletons';\r\n * @import htmlWithSvgElements from './custom-loader1.html';\r\n *\r\n * @NgModule({\r\n * imports: [SkeletonsModule.forConfig({ presets: {\r\n * custom1: { viewBox: '0 0 400 100', content: htmlWithSvgElements }\r\n * }})]\r\n * })\r\n * export class MyModule {}\r\n * ```\r\n *\r\n * custom-loader1.html:\r\n *\r\n * ```html\r\n * <rect x=\"50\" y=\"6\" rx=\"4\" ry=\"4\" width=\"343\" height=\"38\" />\r\n * <rect x=\"8\" y=\"6\" rx=\"4\" ry=\"4\" width=\"35\" height=\"38\" />\r\n * ```\r\n */\r\n@Component({\r\n\tselector: 'bui-skeleton',\r\n\ttemplate: '',\r\n\tstandalone: false\r\n})\r\nexport class SkeletonLoaderComponent extends ContentLoaderComponent implements OnChanges, OnDestroy {\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\r\n\tconstructor(\r\n\t\telemRef: ElementRef<HTMLElement>,\r\n\t\tprivate _cdRef: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality\r\n\t) {\r\n\t\tsuper();\r\n\r\n\t\telemRef.nativeElement.classList.add('bui-host');\r\n\t\tthis.backgroundColor = 'rgba(128,128,128,0.2)';\r\n\t\tthis.foregroundColor = 'rgba(128,128,128,0.1)';\r\n\t\tthis.rtl = this._dir.value === 'rtl';\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(v => {\r\n\t\t\tthis.style = {};\r\n\t\t\tthis.rtl = v === 'rtl';\r\n\t\t\tthis.ngOnInit();\r\n\t\t\tthis._cdRef.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (Object.keys(changes).some(k => changes[k] && !changes[k].isFirstChange())) {\r\n\t\t\tsuper.ngOnInit();\r\n\t\t\tthis._cdRef.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst componentType: any = SkeletonLoaderComponent;\r\nconst superType: any = ContentLoaderComponent;\r\n\r\nObject.keys(superType.ɵcmp)\r\n\t.filter(k => !['selectors', 'type'].includes(k))\r\n\t.forEach(k => (componentType.ɵcmp[k] = superType.ɵcmp[k]));\r\n","import { AfterViewChecked, Directive, ElementRef, Host, Inject, InjectionToken, Input } from '@angular/core';\r\nimport { SkeletonLoaderComponent } from './skeleton-loader.component';\r\n\r\nexport type SkeletonPreset = {\r\n\tviewBox: string;\r\n\tcontent: string;\r\n};\r\n\r\nexport type SkeletonPresets = { [key: string]: SkeletonPreset };\r\n\r\nexport const SKELETON_PRESETS = new InjectionToken<SkeletonPresets>('bui-skeleton-presets');\r\n\r\nexport const DEFAULT_PRESETS: SkeletonPresets = {\r\n\tfacebook: {\r\n\t\tviewBox: '0 0 425 124',\r\n\t\tcontent: `\r\n\t\t<rect x=\"48\" y=\"8\" rx=\"3\" ry=\"3\" width=\"88\" height=\"6\" /> \r\n\t\t<rect x=\"48\" y=\"26\" rx=\"3\" ry=\"3\" width=\"52\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"56\" rx=\"3\" ry=\"3\" width=\"410\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"72\" rx=\"3\" ry=\"3\" width=\"380\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"88\" rx=\"3\" ry=\"3\" width=\"178\" height=\"6\" /> \r\n\t\t<circle cx=\"20\" cy=\"20\" r=\"20\" />\r\n\t\t`\r\n\t},\r\n\tcode: {\r\n\t\tviewBox: '0 0 340 84',\r\n\t\tcontent: `\r\n\t\t<rect x=\"0\" y=\"0\" rx=\"3\" ry=\"3\" width=\"67\" height=\"11\" /> \r\n\t\t<rect x=\"76\" y=\"0\" rx=\"3\" ry=\"3\" width=\"140\" height=\"11\" /> \r\n\t\t<rect x=\"127\" y=\"48\" rx=\"3\" ry=\"3\" width=\"53\" height=\"11\" /> \r\n\t\t<rect x=\"187\" y=\"48\" rx=\"3\" ry=\"3\" width=\"72\" height=\"11\" /> \r\n\t\t<rect x=\"18\" y=\"48\" rx=\"3\" ry=\"3\" width=\"100\" height=\"11\" /> \r\n\t\t<rect x=\"0\" y=\"71\" rx=\"3\" ry=\"3\" width=\"37\" height=\"11\" /> \r\n\t\t<rect x=\"18\" y=\"23\" rx=\"3\" ry=\"3\" width=\"140\" height=\"11\" /> \r\n\t\t<rect x=\"166\" y=\"23\" rx=\"3\" ry=\"3\" width=\"173\" height=\"11\" />\r\n\t\t`\r\n\t},\r\n\tinstagram: {\r\n\t\tviewBox: '0 0 400 460',\r\n\t\tcontent: `\r\n\t\t<circle cx=\"31\" cy=\"31\" r=\"15\" /> \r\n\t\t<rect x=\"58\" y=\"18\" rx=\"2\" ry=\"2\" width=\"140\" height=\"10\" /> \r\n\t\t<rect x=\"58\" y=\"34\" rx=\"2\" ry=\"2\" width=\"140\" height=\"10\" /> \r\n\t\t<rect x=\"0\" y=\"60\" rx=\"2\" ry=\"2\" width=\"400\" height=\"400\" />\r\n\t\t`\r\n\t},\r\n\tbulletList: {\r\n\t\tviewBox: '0 0 250 150',\r\n\t\tcontent: `\r\n\t\t<circle cx=\"10\" cy=\"20\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"15\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"50\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"45\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"80\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"75\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"110\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"105\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" />\r\n\t\t`\r\n\t}\r\n};\r\n\r\n@Directive({\r\n\tselector: 'bui-skeleton[preset]',\r\n\tstandalone: false\r\n})\r\nexport class SkeletonLoaderPresetsDirective implements AfterViewChecked {\r\n\t/** Select the SVG elements from one of the presets. */\r\n\t@Input()\r\n\tpreset?: string;\r\n\r\n\tprivate _allPresets: SkeletonPresets;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _skeletonComponent: SkeletonLoaderComponent,\r\n\t\tprivate _elementRef: ElementRef<HTMLElement>,\r\n\t\t@Inject(SKELETON_PRESETS) _presetList: SkeletonPresets[]\r\n\t) {\r\n\t\tthis._allPresets = _presetList.reduce((p, c) => ({ ...p, ...c }), {});\r\n\t}\r\n\r\n\tngAfterViewChecked(): void {\r\n\t\tconst preset = this._allPresets[(this.preset || '') as any];\r\n\t\tif (preset) {\r\n\t\t\tconst clipPathElem = this._elementRef.nativeElement.querySelector(`[id='${this._skeletonComponent.idClip}']`)!;\r\n\t\t\tthis._skeletonComponent.viewBox = preset.viewBox;\r\n\t\t\tclipPathElem.innerHTML = preset.content;\r\n\t\t}\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule, ValueProvider } from '@angular/core';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { ContentLoaderModule } from '@ngneat/content-loader';\r\nimport {\r\n\tDEFAULT_PRESETS,\r\n\tSkeletonLoaderPresetsDirective,\r\n\tSkeletonPresets,\r\n\tSKELETON_PRESETS\r\n} from './skeleton-loader-presets.directive';\r\nimport { SkeletonLoaderComponent } from './skeleton-loader.component';\r\n\r\nfunction provideSkeletonPresets(presets: SkeletonPresets): ValueProvider {\r\n\treturn {\r\n\t\tprovide: SKELETON_PRESETS,\r\n\t\tuseValue: presets,\r\n\t\tmulti: true\r\n\t};\r\n}\r\n\r\n@NgModule({\r\n\tdeclarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],\r\n\timports: [CommonModule, ContentLoaderModule, BuiCommonModule],\r\n\texports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],\r\n\tproviders: [provideSkeletonPresets(DEFAULT_PRESETS)]\r\n})\r\nexport class SkeletonsModule {\r\n\tstatic forConfig(config?: { presets?: SkeletonPresets }): ModuleWithProviders<SkeletonsModule> {\r\n\t\treturn {\r\n\t\t\tngModule: SkeletonsModule,\r\n\t\t\tproviders: [provideSkeletonPresets(config?.presets || {}), provideSkeletonPresets(DEFAULT_PRESETS)]\r\n\t\t};\r\n\t}\r\n}\r\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-skeletons.mjs","sources":["../../../projects/ui/skeletons/skeleton-loader.component.ts","../../../projects/ui/skeletons/skeleton-loader-presets.directive.ts","../../../projects/ui/skeletons/skeletons.module.ts","../../../projects/ui/skeletons/bravura-ui-skeletons.ts"],"sourcesContent":["import { Directionality } from '@angular/cdk/bidi';\r\nimport { ChangeDetectorRef, Component, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport { ContentLoaderComponent } from '@ngneat/content-loader';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * Use the [Create React Content Loader](https://skeletonreact.com/) to create your custom skeleton loaders;\r\n *\r\n * Add the resulting `svg` elements as the content children of a `<bui-skeleton>` component.\r\n *\r\n * The component `bui-skeleton` extends `content-loader` from [ngneat/content-loader](https://github.com/ngneat/content-loader).\r\n *\r\n * You can also choose from one of the presets registered by the `SKELETON_PRESETS` injection token.\r\n *\r\n * The following code snippets demonstrate how to register a preset:\r\n *\r\n * ```typescript\r\n * @import {SkeletonsModule} from '@bravura/ui/skeletons';\r\n * @import htmlWithSvgElements from './custom-loader1.html';\r\n *\r\n * @NgModule({\r\n * imports: [SkeletonsModule.forConfig({ presets: {\r\n * custom1: { viewBox: '0 0 400 100', content: htmlWithSvgElements }\r\n * }})]\r\n * })\r\n * export class MyModule {}\r\n * ```\r\n *\r\n * custom-loader1.html:\r\n *\r\n * ```html\r\n * <rect x=\"50\" y=\"6\" rx=\"4\" ry=\"4\" width=\"343\" height=\"38\" />\r\n * <rect x=\"8\" y=\"6\" rx=\"4\" ry=\"4\" width=\"35\" height=\"38\" />\r\n * ```\r\n */\r\n@Component({\r\n\tselector: 'bui-skeleton',\r\n\ttemplate: '',\r\n\tstandalone: false\r\n})\r\nexport class SkeletonLoaderComponent extends ContentLoaderComponent implements OnChanges, OnDestroy {\r\n\tprivate _destroyed$ = new Subject<void>();\r\n\r\n\tconstructor(\r\n\t\telemRef: ElementRef<HTMLElement>,\r\n\t\tprivate _cdRef: ChangeDetectorRef,\r\n\t\tprivate _dir: Directionality\r\n\t) {\r\n\t\tsuper();\r\n\r\n\t\telemRef.nativeElement.classList.add('bui-host');\r\n\t\tthis.backgroundColor = 'rgba(128,128,128,0.2)';\r\n\t\tthis.foregroundColor = 'rgba(128,128,128,0.1)';\r\n\t\tthis.rtl = this._dir.value === 'rtl';\r\n\t\tthis._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(v => {\r\n\t\t\tthis.style = {};\r\n\t\t\tthis.rtl = v === 'rtl';\r\n\t\t\tthis.ngOnInit();\r\n\t\t\tthis._cdRef.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis._destroyed$.next();\r\n\t\tthis._destroyed$.complete();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (Object.keys(changes).some(k => changes[k] && !changes[k].isFirstChange())) {\r\n\t\t\tsuper.ngOnInit();\r\n\t\t\tthis._cdRef.markForCheck();\r\n\t\t}\r\n\t}\r\n}\r\n\r\nconst componentType: any = SkeletonLoaderComponent;\r\nconst superType: any = ContentLoaderComponent;\r\n\r\nObject.keys(superType.ɵcmp)\r\n\t.filter(k => !['selectors', 'type'].includes(k))\r\n\t.forEach(k => (componentType.ɵcmp[k] = superType.ɵcmp[k]));\r\n","import { AfterViewChecked, Directive, ElementRef, Host, Inject, InjectionToken, Input } from '@angular/core';\r\nimport { SkeletonLoaderComponent } from './skeleton-loader.component';\r\n\r\nexport type SkeletonPreset = {\r\n\tviewBox: string;\r\n\tcontent: string;\r\n};\r\n\r\nexport type SkeletonPresets = { [key: string]: SkeletonPreset };\r\n\r\nexport const SKELETON_PRESETS = new InjectionToken<SkeletonPresets>('bui-skeleton-presets');\r\n\r\nexport const DEFAULT_PRESETS: SkeletonPresets = {\r\n\tfacebook: {\r\n\t\tviewBox: '0 0 425 124',\r\n\t\tcontent: `\r\n\t\t<rect x=\"48\" y=\"8\" rx=\"3\" ry=\"3\" width=\"88\" height=\"6\" /> \r\n\t\t<rect x=\"48\" y=\"26\" rx=\"3\" ry=\"3\" width=\"52\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"56\" rx=\"3\" ry=\"3\" width=\"410\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"72\" rx=\"3\" ry=\"3\" width=\"380\" height=\"6\" /> \r\n\t\t<rect x=\"0\" y=\"88\" rx=\"3\" ry=\"3\" width=\"178\" height=\"6\" /> \r\n\t\t<circle cx=\"20\" cy=\"20\" r=\"20\" />\r\n\t\t`\r\n\t},\r\n\tcode: {\r\n\t\tviewBox: '0 0 340 84',\r\n\t\tcontent: `\r\n\t\t<rect x=\"0\" y=\"0\" rx=\"3\" ry=\"3\" width=\"67\" height=\"11\" /> \r\n\t\t<rect x=\"76\" y=\"0\" rx=\"3\" ry=\"3\" width=\"140\" height=\"11\" /> \r\n\t\t<rect x=\"127\" y=\"48\" rx=\"3\" ry=\"3\" width=\"53\" height=\"11\" /> \r\n\t\t<rect x=\"187\" y=\"48\" rx=\"3\" ry=\"3\" width=\"72\" height=\"11\" /> \r\n\t\t<rect x=\"18\" y=\"48\" rx=\"3\" ry=\"3\" width=\"100\" height=\"11\" /> \r\n\t\t<rect x=\"0\" y=\"71\" rx=\"3\" ry=\"3\" width=\"37\" height=\"11\" /> \r\n\t\t<rect x=\"18\" y=\"23\" rx=\"3\" ry=\"3\" width=\"140\" height=\"11\" /> \r\n\t\t<rect x=\"166\" y=\"23\" rx=\"3\" ry=\"3\" width=\"173\" height=\"11\" />\r\n\t\t`\r\n\t},\r\n\tinstagram: {\r\n\t\tviewBox: '0 0 400 460',\r\n\t\tcontent: `\r\n\t\t<circle cx=\"31\" cy=\"31\" r=\"15\" /> \r\n\t\t<rect x=\"58\" y=\"18\" rx=\"2\" ry=\"2\" width=\"140\" height=\"10\" /> \r\n\t\t<rect x=\"58\" y=\"34\" rx=\"2\" ry=\"2\" width=\"140\" height=\"10\" /> \r\n\t\t<rect x=\"0\" y=\"60\" rx=\"2\" ry=\"2\" width=\"400\" height=\"400\" />\r\n\t\t`\r\n\t},\r\n\tbulletList: {\r\n\t\tviewBox: '0 0 250 150',\r\n\t\tcontent: `\r\n\t\t<circle cx=\"10\" cy=\"20\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"15\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"50\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"45\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"80\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"75\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" /> \r\n\t\t<circle cx=\"10\" cy=\"110\" r=\"8\" /> \r\n\t\t<rect x=\"25\" y=\"105\" rx=\"5\" ry=\"5\" width=\"220\" height=\"10\" />\r\n\t\t`\r\n\t}\r\n};\r\n\r\n@Directive({\r\n\tselector: 'bui-skeleton[preset]',\r\n\tstandalone: false\r\n})\r\nexport class SkeletonLoaderPresetsDirective implements AfterViewChecked {\r\n\t/** Select the SVG elements from one of the presets. */\r\n\t@Input()\r\n\tpreset?: string;\r\n\r\n\tprivate _allPresets: SkeletonPresets;\r\n\r\n\tconstructor(\r\n\t\t@Host() private _skeletonComponent: SkeletonLoaderComponent,\r\n\t\tprivate _elementRef: ElementRef<HTMLElement>,\r\n\t\t@Inject(SKELETON_PRESETS) _presetList: SkeletonPresets[]\r\n\t) {\r\n\t\tthis._allPresets = _presetList.reduce((p, c) => ({ ...p, ...c }), {});\r\n\t}\r\n\r\n\tngAfterViewChecked(): void {\r\n\t\tconst preset = this._allPresets[(this.preset || '') as any];\r\n\t\tif (preset) {\r\n\t\t\tconst clipPathElem = this._elementRef.nativeElement.querySelector(`[id='${this._skeletonComponent.idClip}']`)!;\r\n\t\t\tthis._skeletonComponent.viewBox = preset.viewBox;\r\n\t\t\tclipPathElem.innerHTML = preset.content;\r\n\t\t}\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule, ValueProvider } from '@angular/core';\r\nimport { BuiCommonModule } from '@bravura/ui/common';\r\nimport { ContentLoaderModule } from '@ngneat/content-loader';\r\nimport {\r\n\tDEFAULT_PRESETS,\r\n\tSkeletonLoaderPresetsDirective,\r\n\tSkeletonPresets,\r\n\tSKELETON_PRESETS\r\n} from './skeleton-loader-presets.directive';\r\nimport { SkeletonLoaderComponent } from './skeleton-loader.component';\r\n\r\nfunction provideSkeletonPresets(presets: SkeletonPresets): ValueProvider {\r\n\treturn {\r\n\t\tprovide: SKELETON_PRESETS,\r\n\t\tuseValue: presets,\r\n\t\tmulti: true\r\n\t};\r\n}\r\n\r\n@NgModule({\r\n\tdeclarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],\r\n\timports: [CommonModule, ContentLoaderModule, BuiCommonModule],\r\n\texports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],\r\n\tproviders: [provideSkeletonPresets(DEFAULT_PRESETS)]\r\n})\r\nexport class SkeletonsModule {\r\n\tstatic forConfig(config?: { presets?: SkeletonPresets }): ModuleWithProviders<SkeletonsModule> {\r\n\t\treturn {\r\n\t\t\tngModule: SkeletonsModule,\r\n\t\t\tproviders: [provideSkeletonPresets(config?.presets || {}), provideSkeletonPresets(DEFAULT_PRESETS)]\r\n\t\t};\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AAMG,MAAO,uBAAwB,SAAQ,sBAAsB,CAAA;AAGlE,IAAA,WAAA,CACC,OAAgC,EACxB,MAAyB,EACzB,IAAoB,EAAA;AAE5B,QAAA,KAAK,EAAE;QAHC,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAI,CAAA,IAAA,GAAJ,IAAI;AALL,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ;QASxC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/C,QAAA,IAAI,CAAC,eAAe,GAAG,uBAAuB;AAC9C,QAAA,IAAI,CAAC,eAAe,GAAG,uBAAuB;QAC9C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AAChE,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK;YACtB,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;AAC3B,SAAC,CAAC;;IAGH,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;;AAG5B,IAAA,WAAW,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE;YAC9E,KAAK,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;;;+GA9BhB,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,qHAHzB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAGA,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,UAAU,EAAE;AACZ,iBAAA;;AAoCD,MAAM,aAAa,GAAQ,uBAAuB;AAClD,MAAM,SAAS,GAAQ,sBAAsB;AAE7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI;AACxB,KAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9C,OAAO,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;;MCvE9C,gBAAgB,GAAG,IAAI,cAAc,CAAkB,sBAAsB;AAE7E,MAAA,eAAe,GAAoB;AAC/C,IAAA,QAAQ,EAAE;AACT,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,CAAA;;;;;;;AAOR,EAAA;AACD,KAAA;AACD,IAAA,IAAI,EAAE;AACL,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,OAAO,EAAE,CAAA;;;;;;;;;AASR,EAAA;AACD,KAAA;AACD,IAAA,SAAS,EAAE;AACV,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,CAAA;;;;;AAKR,EAAA;AACD,KAAA;AACD,IAAA,UAAU,EAAE;AACX,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,CAAA;;;;;;;;;AASR,EAAA;AACD;;MAOW,8BAA8B,CAAA;AAO1C,IAAA,WAAA,CACiB,kBAA2C,EACnD,WAAoC,EAClB,WAA8B,EAAA;QAFxC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW;QAGnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;IAGtE,kBAAkB,GAAA;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAS;QAC3D,IAAI,MAAM,EAAE;AACX,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAA,EAAA,CAAI,CAAE;YAC9G,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAChD,YAAA,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO;;;AApB7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,4FAUjC,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAVb,8BAA8B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE;AACZ,iBAAA;;0BASE;;0BAEA,MAAM;2BAAC,gBAAgB;;sBARxB;;;ACvDF,SAAS,sBAAsB,CAAC,OAAwB,EAAA;IACvD,OAAO;AACN,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,KAAK,EAAE;KACP;AACF;MAQa,eAAe,CAAA;IAC3B,OAAO,SAAS,CAAC,MAAsC,EAAA;QACtD,OAAO;AACN,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,sBAAsB,CAAC,eAAe,CAAC;SAClG;;+GALU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBALZ,uBAAuB,EAAE,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAC5D,YAAY,EAAE,mBAAmB,EAAE,eAAe,aAClD,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAG3F,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,aAFhB,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAAA,OAAA,EAAA,CAF1C,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAClD,mBAAmB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGlC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;AACvE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,eAAe,CAAC;oBAC7D,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,8BAA8B,CAAC;AACxG,oBAAA,SAAS,EAAE,CAAC,sBAAsB,CAAC,eAAe,CAAC;AACnD,iBAAA;;;ACzBD;;AAEG;;;;"}