pdm-ui-kit 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  const ROOT_LAYOUT = {
5
- horizontal: "flex flex-col sm:flex-row sm:items-center sm:flex-wrap",
5
+ horizontal: "w-full flex flex-row items-center overflow-x-auto",
6
6
  vertical: "flex flex-col items-stretch",
7
7
  };
8
8
  const ATTACHMENT_EDGE_CLASSES = {
@@ -30,7 +30,9 @@ const ATTACHMENT_CONTROL_CLASSES = {
30
30
  "[&>pdm-button:first-child>button]:!rounded-l-md",
31
31
  "[&>pdm-button:last-child>button]:!rounded-r-md",
32
32
  "[&>pdm-input]:flex-1",
33
+ "[&>pdm-input]:min-w-0",
33
34
  "[&>pdm-input>div]:w-full",
35
+ "[&>pdm-input>div]:min-w-0",
34
36
  "[&>pdm-input>div]:!rounded-none",
35
37
  "[&>pdm-input>div]:shadow-none",
36
38
  "[&>pdm-input>div>input]:!rounded-none",
@@ -40,6 +42,7 @@ const ATTACHMENT_CONTROL_CLASSES = {
40
42
  "[&>pdm-input:last-child>div]:!rounded-r-md",
41
43
  "[&>pdm-input:first-child>div>input]:!rounded-l-md",
42
44
  "[&>pdm-input:last-child>div>input]:!rounded-r-md",
45
+ "[&>pdm-input-group]:min-w-0",
43
46
  "[&>pdm-input-group>div]:!rounded-none",
44
47
  "[&>pdm-input-group>div]:shadow-none",
45
48
  "[&>pdm-input-group:first-child>div]:!rounded-l-md",
@@ -230,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
230
233
  }], className: [{
231
234
  type: Input
232
235
  }] } });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFXMUUsTUFBTSxXQUFXLEdBQXlCO0lBQ3pDLFVBQVUsRUFBRSx3REFBd0Q7SUFDcEUsUUFBUSxFQUFFLDZCQUE2QjtDQUN2QyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBMkI7SUFDdkQsVUFBVSxFQUFFO1FBQ1gsb0JBQW9CO1FBQ3BCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0Isb0NBQW9DO1FBQ3BDLGdDQUFnQztLQUNoQztJQUNELFFBQVEsRUFBRTtRQUNULG9CQUFvQjtRQUNwQixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxnQ0FBZ0M7S0FDaEM7Q0FDRCxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBMkI7SUFDMUQsVUFBVSxFQUFFO1FBQ1gscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQixxQ0FBcUM7UUFDckMsbUNBQW1DO1FBQ25DLGlEQUFpRDtRQUNqRCxnREFBZ0Q7UUFFaEQsc0JBQXNCO1FBQ3RCLDBCQUEwQjtRQUMxQixpQ0FBaUM7UUFDakMsK0JBQStCO1FBQy9CLHVDQUF1QztRQUN2Qyx1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLDZDQUE2QztRQUM3Qyw0Q0FBNEM7UUFDNUMsbURBQW1EO1FBQ25ELGtEQUFrRDtRQUVsRCx1Q0FBdUM7UUFDdkMscUNBQXFDO1FBQ3JDLG1EQUFt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Q0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUMzQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0gsQ0FBQzs7b0hBekNXLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDRMQ2xOcEMsOElBT0E7MkZEMk1hLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDQyxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFBkbUJ1dHRvbkdyb3VwVmFyaWFudCA9XG5cdHwgXCJkZWZhdWx0XCJcblx0fCBcImdyb3VwXCJcblx0fCBcIm9yaWVudGF0aW9uXCJcblx0fCBcInNlcGFyYXRvclwiO1xuZXhwb3J0IHR5cGUgUGRtQnV0dG9uR3JvdXBPcmllbnRhdGlvbiA9IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuXG50eXBlIEF4aXMgPSBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcblxuY29uc3QgUk9PVF9MQVlPVVQ6IFJlY29yZDxBeGlzLCBzdHJpbmc+ID0ge1xuXHRob3Jpem9udGFsOiBcImZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgc206aXRlbXMtY2VudGVyIHNtOmZsZXgtd3JhcFwiLFxuXHR2ZXJ0aWNhbDogXCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0cmV0Y2hcIixcbn07XG5cbmNvbnN0IEFUVEFDSE1FTlRfRURHRV9DTEFTU0VTOiBSZWNvcmQ8QXhpcywgc3RyaW5nW10+ID0ge1xuXHRob3Jpem9udGFsOiBbXG5cdFx0XCJbJj4qXTpyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPio6Zmlyc3QtY2hpbGRdOnJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+KjpsYXN0LWNoaWxkXTpyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPio6bm90KDpmaXJzdC1jaGlsZCldOmJvcmRlci1sLTBcIixcblx0XHRcIlsmPio6bm90KDpmaXJzdC1jaGlsZCldOi1tbC1weFwiLFxuXHRdLFxuXHR2ZXJ0aWNhbDogW1xuXHRcdFwiWyY+Kl06cm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj4qOmZpcnN0LWNoaWxkXTpyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPio6bGFzdC1jaGlsZF06cm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTpib3JkZXItdC0wXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTotbXQtcHhcIixcblx0XSxcbn07XG5cbmNvbnN0IEFUVEFDSE1FTlRfQ09OVFJPTF9DTEFTU0VTOiBSZWNvcmQ8QXhpcywgc3RyaW5nW10+ID0ge1xuXHRob3Jpem9udGFsOiBbXG5cdFx0XCJbJj5wZG0tYnV0dG9uXTpmbGV4XCIsXG5cdFx0XCJbJj5wZG0tYnV0dG9uPmJ1dHRvbl06aC05XCIsXG5cdFx0XCJbJj5wZG0tYnV0dG9uPmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tYnV0dG9uOmZpcnN0LWNoaWxkPmJ1dHRvbl06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbjpsYXN0LWNoaWxkPmJ1dHRvbl06IXJvdW5kZWQtci1tZFwiLFxuXG5cdFx0XCJbJj5wZG0taW5wdXRdOmZsZXgtMVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdl06dy1mdWxsXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06YmctYmFja2dyb3VuZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpmaXJzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpsYXN0LWNoaWxkPmRpdl06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0OmZpcnN0LWNoaWxkPmRpdj5pbnB1dF06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0Omxhc3QtY2hpbGQ+ZGl2PmlucHV0XTohcm91bmRlZC1yLW1kXCIsXG5cblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cD5kaXZdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cD5kaXZdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQtZ3JvdXA6Zmlyc3QtY2hpbGQ+ZGl2XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQtZ3JvdXA6bGFzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLXItbWRcIixcblxuXHRcdFwiWyY+cGRtLXNlbGVjdD5zZWxlY3RdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q+c2VsZWN0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0OmZpcnN0LWNoaWxkPnNlbGVjdF06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpsYXN0LWNoaWxkPnNlbGVjdF06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpmaXJzdC1jaGlsZD5kaXY+YnV0dG9uXTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Omxhc3QtY2hpbGQ+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpub3QoOmZpcnN0LWNoaWxkKT5kaXY+YnV0dG9uXTohcm91bmRlZC1sLW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6bm90KDpsYXN0LWNoaWxkKT5kaXY+YnV0dG9uXTohcm91bmRlZC1yLW5vbmVcIixcblxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj4qXTpyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+Kl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpPnNwYW4+Kl06Ym9yZGVyLWwtMFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5idXR0b25dOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5idXR0b25dOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+aW5wdXRdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+aW5wdXRdOmJnLWJhY2tncm91bmRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+aW5wdXRdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPmlucHV0XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+aW5wdXRdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+c2VsZWN0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnNlbGVjdF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+c2VsZWN0XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+c2VsZWN0XTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1idXR0b24+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1idXR0b24+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0tYnV0dG9uPmJ1dHRvbl06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1idXR0b24+YnV0dG9uXTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXZdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTpiZy1iYWNrZ3JvdW5kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXZdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQ+ZGl2XTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dC1ncm91cD5kaXZdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dC1ncm91cD5kaXZdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLXNlbGVjdD5zZWxlY3RdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLXNlbGVjdD5zZWxlY3RdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1zZWxlY3Q+c2VsZWN0XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLXNlbGVjdD5zZWxlY3RdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKT5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtbC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1yLW5vbmVcIixcblx0XSxcblx0dmVydGljYWw6IFtcblx0XHRcIlsmPipdOnJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+KjpmaXJzdC1jaGlsZF06cm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj4qOmxhc3QtY2hpbGRdOnJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+Kjpub3QoOmZpcnN0LWNoaWxkKV06Ym9yZGVyLXQtMFwiLFxuXHRcdFwiWyY+Kjpub3QoOmZpcnN0LWNoaWxkKV06LW10LXB4XCIsXG5cblx0XHRcIlsmPnBkbS1idXR0b25dOmZsZXhcIixcblx0XHRcIlsmPnBkbS1idXR0b24+YnV0dG9uXTpoLTlcIixcblx0XHRcIlsmPnBkbS1idXR0b24+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tYnV0dG9uPmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1idXR0b246Zmlyc3QtY2hpbGQ+YnV0dG9uXTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tYnV0dG9uOmxhc3QtY2hpbGQ+YnV0dG9uXTohcm91bmRlZC1iLW1kXCIsXG5cblx0XHRcIlsmPnBkbS1pbnB1dD5kaXZdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dD5kaXZdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2PmlucHV0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2PmlucHV0XTpiZy1iYWNrZ3JvdW5kXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2PmlucHV0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0OmZpcnN0LWNoaWxkPmRpdl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0Omxhc3QtY2hpbGQ+ZGl2XTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ6Zmlyc3QtY2hpbGQ+ZGl2PmlucHV0XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ6bGFzdC1jaGlsZD5kaXY+aW5wdXRdOiFyb3VuZGVkLWItbWRcIixcblxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwPmRpdl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cDpmaXJzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cDpsYXN0LWNoaWxkPmRpdl06IXJvdW5kZWQtYi1tZFwiLFxuXG5cdFx0XCJbJj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdD5zZWxlY3RdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6Zmlyc3QtY2hpbGQ+c2VsZWN0XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Omxhc3QtY2hpbGQ+c2VsZWN0XTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0OmZpcnN0LWNoaWxkPmRpdj5idXR0b25dOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6bGFzdC1jaGlsZD5kaXY+YnV0dG9uXTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Om5vdCg6Zmlyc3QtY2hpbGQpPmRpdj5idXR0b25dOiFyb3VuZGVkLXQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpub3QoOmxhc3QtY2hpbGQpPmRpdj5idXR0b25dOiFyb3VuZGVkLWItbm9uZVwiLFxuXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPipdOnJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj4qXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCk+c3Bhbj4qXTpib3JkZXItdC0wXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06YmctYmFja2dyb3VuZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+aW5wdXRdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5pbnB1dF06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+c2VsZWN0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1idXR0b24+YnV0dG9uXTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOmJnLWJhY2tncm91bmRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXZdOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLXNlbGVjdD5zZWxlY3RdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC10LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOm5vdCg6bGFzdC1jaGlsZCk+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLWItbm9uZVwiLFxuXHRdLFxufTtcblxuY29uc3QgRk9DVVNfU1RBQ0tJTkdfQ0xBU1MgPSBcIio6Zm9jdXMtdmlzaWJsZTpyZWxhdGl2ZSAqOmZvY3VzLXZpc2libGU6ei0xMFwiO1xuY29uc3QgU0VQQVJBVE9SX0NMQVNTRVMgPVxuXHRcIm92ZXJmbG93LWhpZGRlbiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXNlY29uZGFyeSBzaGFkb3ctc21cIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcInBkbS1idXR0b24tZ3JvdXBcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9XCJdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGRtQnV0dG9uR3JvdXBDb21wb25lbnQge1xuXHRASW5wdXQoKSB2YXJpYW50OiBQZG1CdXR0b25Hcm91cFZhcmlhbnQgPSBcImRlZmF1bHRcIjtcblx0QElucHV0KCkgb3JpZW50YXRpb24/OiBQZG1CdXR0b25Hcm91cE9yaWVudGF0aW9uO1xuXHRASW5wdXQoKSBkaXJlY3Rpb24/OiBQZG1CdXR0b25Hcm91cE9yaWVudGF0aW9uO1xuXHRASW5wdXQoKSBzZXBhcmF0ZWQgPSB0cnVlO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXG5cdGdldCBheGlzKCk6IEF4aXMge1xuXHRcdHJldHVybiB0aGlzLm9yaWVudGF0aW9uID8/IHRoaXMuZGlyZWN0aW9uID8/IFwiaG9yaXpvbnRhbFwiO1xuXHR9XG5cblx0Z2V0IGlzVmVydGljYWwoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMudmFyaWFudCA9PT0gXCJvcmllbnRhdGlvblwiIHx8IHRoaXMuYXhpcyA9PT0gXCJ2ZXJ0aWNhbFwiO1xuXHR9XG5cblx0Z2V0IHNob3VsZEF0dGFjaCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gIXRoaXMuc2VwYXJhdGVkICYmIHRoaXMudmFyaWFudCAhPT0gXCJkZWZhdWx0XCI7XG5cdH1cblxuXHRnZXQgYXJpYU9yaWVudGF0aW9uKCk6IFBkbUJ1dHRvbkdyb3VwT3JpZW50YXRpb24ge1xuXHRcdHJldHVybiB0aGlzLmlzVmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIjtcblx0fVxuXG5cdGdldCByb290Q2xhc3NlcygpOiBzdHJpbmdbXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdFJPT1RfTEFZT1VUW3RoaXMuaXNWZXJ0aWNhbCA/IFwidmVydGljYWxcIiA6IFwiaG9yaXpvbnRhbFwiXSxcblx0XHRcdHRoaXMudmFyaWFudCA9PT0gXCJkZWZhdWx0XCIgfHwgdGhpcy5zZXBhcmF0ZWQgPyBcImdhcC0yXCIgOiBcImdhcC0wXCIsXG5cdFx0XHR0aGlzLnNob3VsZEF0dGFjaFxuXHRcdFx0XHQ/IEFUVEFDSE1FTlRfRURHRV9DTEFTU0VTW1xuXHRcdFx0XHRcdFx0dGhpcy5pc1ZlcnRpY2FsID8gXCJ2ZXJ0aWNhbFwiIDogXCJob3Jpem9udGFsXCJcblx0XHRcdFx0XHRdLmpvaW4oXCIgXCIpXG5cdFx0XHRcdDogXCJcIixcblx0XHRcdHRoaXMuc2hvdWxkQXR0YWNoXG5cdFx0XHRcdD8gQVRUQUNITUVOVF9DT05UUk9MX0NMQVNTRVNbXG5cdFx0XHRcdFx0XHR0aGlzLmlzVmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIlxuXHRcdFx0XHRcdF0uam9pbihcIiBcIilcblx0XHRcdFx0OiBcIlwiLFxuXHRcdFx0dGhpcy5zaG91bGRBdHRhY2ggPyBGT0NVU19TVEFDS0lOR19DTEFTUyA6IFwiXCIsXG5cdFx0XHR0aGlzLnZhcmlhbnQgPT09IFwic2VwYXJhdG9yXCIgPyBTRVBBUkFUT1JfQ0xBU1NFUyA6IFwiXCIsXG5cdFx0XHR0aGlzLmNsYXNzTmFtZSxcblx0XHRdO1xuXHR9XG59XG4iLCI8ZGl2XG4gIHJvbGU9XCJncm91cFwiXG4gIFthdHRyLmFyaWEtb3JpZW50YXRpb25dPVwiYXJpYU9yaWVudGF0aW9uXCJcbiAgW25nQ2xhc3NdPVwicm9vdENsYXNzZXNcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAvYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFXMUUsTUFBTSxXQUFXLEdBQXlCO0lBQ3pDLFVBQVUsRUFBRSxtREFBbUQ7SUFDL0QsUUFBUSxFQUFFLDZCQUE2QjtDQUN2QyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBMkI7SUFDdkQsVUFBVSxFQUFFO1FBQ1gsb0JBQW9CO1FBQ3BCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0Isb0NBQW9DO1FBQ3BDLGdDQUFnQztLQUNoQztJQUNELFFBQVEsRUFBRTtRQUNULG9CQUFvQjtRQUNwQixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxnQ0FBZ0M7S0FDaEM7Q0FDRCxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBMkI7SUFDMUQsVUFBVSxFQUFFO1FBQ1gscUJBQXFCO1FBQ3JCLDJCQUEyQjtRQUMzQixxQ0FBcUM7UUFDckMsbUNBQW1DO1FBQ25DLGlEQUFpRDtRQUNqRCxnREFBZ0Q7UUFFaEQsc0JBQXNCO1FBQ3RCLHVCQUF1QjtRQUN2QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLGlDQUFpQztRQUNqQywrQkFBK0I7UUFDL0IsdUNBQXVDO1FBQ3ZDLHVDQUF1QztRQUN2QyxxQ0FBcUM7UUFDckMsNkNBQTZDO1FBQzdDLDRDQUE0QztRQUM1QyxtREFBbUQ7UUFDbkQsa0RBQWtEO1FBRWxELDZCQUE2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QUFZO2dCQUNoQixDQUFDLENBQUMsMEJBQTBCLENBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUMzQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLEVBQUU7WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFNBQVM7U0FDZCxDQUFDO0lBQ0gsQ0FBQzs7b0hBekNXLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDRMQ3JOcEMsOElBT0E7MkZEOE1hLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDQyxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIFBkbUJ1dHRvbkdyb3VwVmFyaWFudCA9XG5cdHwgXCJkZWZhdWx0XCJcblx0fCBcImdyb3VwXCJcblx0fCBcIm9yaWVudGF0aW9uXCJcblx0fCBcInNlcGFyYXRvclwiO1xuZXhwb3J0IHR5cGUgUGRtQnV0dG9uR3JvdXBPcmllbnRhdGlvbiA9IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuXG50eXBlIEF4aXMgPSBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcblxuY29uc3QgUk9PVF9MQVlPVVQ6IFJlY29yZDxBeGlzLCBzdHJpbmc+ID0ge1xuXHRob3Jpem9udGFsOiBcInctZnVsbCBmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBvdmVyZmxvdy14LWF1dG9cIixcblx0dmVydGljYWw6IFwiZmxleCBmbGV4LWNvbCBpdGVtcy1zdHJldGNoXCIsXG59O1xuXG5jb25zdCBBVFRBQ0hNRU5UX0VER0VfQ0xBU1NFUzogUmVjb3JkPEF4aXMsIHN0cmluZ1tdPiA9IHtcblx0aG9yaXpvbnRhbDogW1xuXHRcdFwiWyY+Kl06cm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj4qOmZpcnN0LWNoaWxkXTpyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPio6bGFzdC1jaGlsZF06cm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTpib3JkZXItbC0wXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTotbWwtcHhcIixcblx0XSxcblx0dmVydGljYWw6IFtcblx0XHRcIlsmPipdOnJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+KjpmaXJzdC1jaGlsZF06cm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj4qOmxhc3QtY2hpbGRdOnJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+Kjpub3QoOmZpcnN0LWNoaWxkKV06Ym9yZGVyLXQtMFwiLFxuXHRcdFwiWyY+Kjpub3QoOmZpcnN0LWNoaWxkKV06LW10LXB4XCIsXG5cdF0sXG59O1xuXG5jb25zdCBBVFRBQ0hNRU5UX0NPTlRST0xfQ0xBU1NFUzogUmVjb3JkPEF4aXMsIHN0cmluZ1tdPiA9IHtcblx0aG9yaXpvbnRhbDogW1xuXHRcdFwiWyY+cGRtLWJ1dHRvbl06ZmxleFwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbj5idXR0b25dOmgtOVwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1idXR0b24+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbjpmaXJzdC1jaGlsZD5idXR0b25dOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS1idXR0b246bGFzdC1jaGlsZD5idXR0b25dOiFyb3VuZGVkLXItbWRcIixcblxuXHRcdFwiWyY+cGRtLWlucHV0XTpmbGV4LTFcIixcblx0XHRcIlsmPnBkbS1pbnB1dF06bWluLXctMFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdl06dy1mdWxsXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2XTptaW4tdy0wXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06YmctYmFja2dyb3VuZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpmaXJzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpsYXN0LWNoaWxkPmRpdl06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0OmZpcnN0LWNoaWxkPmRpdj5pbnB1dF06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0Omxhc3QtY2hpbGQ+ZGl2PmlucHV0XTohcm91bmRlZC1yLW1kXCIsXG5cblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cF06bWluLXctMFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwPmRpdl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cDpmaXJzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dC1ncm91cDpsYXN0LWNoaWxkPmRpdl06IXJvdW5kZWQtci1tZFwiLFxuXG5cdFx0XCJbJj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdD5zZWxlY3RdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6Zmlyc3QtY2hpbGQ+c2VsZWN0XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Omxhc3QtY2hpbGQ+c2VsZWN0XTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0OmZpcnN0LWNoaWxkPmRpdj5idXR0b25dOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6bGFzdC1jaGlsZD5kaXY+YnV0dG9uXTohcm91bmRlZC1yLW1kXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Om5vdCg6Zmlyc3QtY2hpbGQpPmRpdj5idXR0b25dOiFyb3VuZGVkLWwtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpub3QoOmxhc3QtY2hpbGQpPmRpdj5idXR0b25dOiFyb3VuZGVkLXItbm9uZVwiLFxuXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPipdOnJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj4qXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCk+c3Bhbj4qXTpib3JkZXItbC0wXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPmJ1dHRvbl06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06YmctYmFja2dyb3VuZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+aW5wdXRdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5pbnB1dF06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+c2VsZWN0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5zZWxlY3RdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1idXR0b24+YnV0dG9uXTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOmJnLWJhY2tncm91bmRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXZdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtbC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTohcm91bmRlZC1sLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWlucHV0LWdyb3VwPmRpdl06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLXNlbGVjdD5zZWxlY3RdOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtci1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLWwtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLXItbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOm5vdCg6Zmlyc3QtY2hpbGQpPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTohcm91bmRlZC1sLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOm5vdCg6bGFzdC1jaGlsZCk+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLXItbm9uZVwiLFxuXHRdLFxuXHR2ZXJ0aWNhbDogW1xuXHRcdFwiWyY+Kl06cm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj4qOmZpcnN0LWNoaWxkXTpyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPio6bGFzdC1jaGlsZF06cm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTpib3JkZXItdC0wXCIsXG5cdFx0XCJbJj4qOm5vdCg6Zmlyc3QtY2hpbGQpXTotbXQtcHhcIixcblxuXHRcdFwiWyY+cGRtLWJ1dHRvbl06ZmxleFwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbj5idXR0b25dOmgtOVwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1idXR0b24+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWJ1dHRvbjpmaXJzdC1jaGlsZD5idXR0b25dOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS1idXR0b246bGFzdC1jaGlsZD5idXR0b25dOiFyb3VuZGVkLWItbWRcIixcblxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0PmRpdl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dD5kaXY+aW5wdXRdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS1pbnB1dD5kaXY+aW5wdXRdOmJnLWJhY2tncm91bmRcIixcblx0XHRcIlsmPnBkbS1pbnB1dD5kaXY+aW5wdXRdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ6Zmlyc3QtY2hpbGQ+ZGl2XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQ6bGFzdC1jaGlsZD5kaXZdOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpmaXJzdC1jaGlsZD5kaXY+aW5wdXRdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS1pbnB1dDpsYXN0LWNoaWxkPmRpdj5pbnB1dF06IXJvdW5kZWQtYi1tZFwiLFxuXG5cdFx0XCJbJj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwOmZpcnN0LWNoaWxkPmRpdl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLWlucHV0LWdyb3VwOmxhc3QtY2hpbGQ+ZGl2XTohcm91bmRlZC1iLW1kXCIsXG5cblx0XHRcIlsmPnBkbS1zZWxlY3Q+c2VsZWN0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0PnNlbGVjdF06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpmaXJzdC1jaGlsZD5zZWxlY3RdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6bGFzdC1jaGlsZD5zZWxlY3RdOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6Zmlyc3QtY2hpbGQ+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXNlbGVjdDpsYXN0LWNoaWxkPmRpdj5idXR0b25dOiFyb3VuZGVkLWItbWRcIixcblx0XHRcIlsmPnBkbS1zZWxlY3Q6bm90KDpmaXJzdC1jaGlsZCk+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtdC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tc2VsZWN0Om5vdCg6bGFzdC1jaGlsZCk+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtYi1ub25lXCIsXG5cblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+Kl06cm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPipdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKT5zcGFuPipdOmJvcmRlci10LTBcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+YnV0dG9uXTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+YnV0dG9uXTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+YnV0dG9uXTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmlucHV0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmlucHV0XTpiZy1iYWNrZ3JvdW5kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPmlucHV0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5pbnB1dF06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPmlucHV0XTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnNlbGVjdF06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5zZWxlY3RdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnNlbGVjdF06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnNlbGVjdF06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tYnV0dG9uPmJ1dHRvbl06IXJvdW5kZWQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tYnV0dG9uPmJ1dHRvbl06c2hhZG93LW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmZpcnN0LWNoaWxkPnNwYW4+cGRtLWJ1dHRvbj5idXR0b25dOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0tYnV0dG9uPmJ1dHRvbl06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXZdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dD5kaXY+aW5wdXRdOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06YmctYmFja2dyb3VuZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQ+ZGl2XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdl06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQ+ZGl2PmlucHV0XTohcm91bmRlZC10LW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpsYXN0LWNoaWxkPnNwYW4+cGRtLWlucHV0PmRpdj5pbnB1dF06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1pbnB1dC1ncm91cD5kaXZdOnNoYWRvdy1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1pbnB1dC1ncm91cD5kaXZdOiFyb3VuZGVkLXQtbWRcIixcblx0XHRcIlsmPnBkbS10b29sdGlwOmxhc3QtY2hpbGQ+c3Bhbj5wZG0taW5wdXQtZ3JvdXA+ZGl2XTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1zZWxlY3Q+c2VsZWN0XTohcm91bmRlZC1ub25lXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcD5zcGFuPnBkbS1zZWxlY3Q+c2VsZWN0XTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLW5vbmVcIixcblx0XHRcIlsmPnBkbS10b29sdGlwPnNwYW4+cGRtLXNlbGVjdD5kaXY+YnV0dG9uXTpzaGFkb3ctbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6Zmlyc3QtY2hpbGQ+c3Bhbj5wZG0tc2VsZWN0PnNlbGVjdF06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1zZWxlY3Q+c2VsZWN0XTohcm91bmRlZC1iLW1kXCIsXG5cdFx0XCJbJj5wZG0tdG9vbHRpcDpmaXJzdC1jaGlsZD5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtdC1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bGFzdC1jaGlsZD5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtYi1tZFwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCk+c3Bhbj5wZG0tc2VsZWN0PmRpdj5idXR0b25dOiFyb3VuZGVkLXQtbm9uZVwiLFxuXHRcdFwiWyY+cGRtLXRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKT5zcGFuPnBkbS1zZWxlY3Q+ZGl2PmJ1dHRvbl06IXJvdW5kZWQtYi1ub25lXCIsXG5cdF0sXG59O1xuXG5jb25zdCBGT0NVU19TVEFDS0lOR19DTEFTUyA9IFwiKjpmb2N1cy12aXNpYmxlOnJlbGF0aXZlICo6Zm9jdXMtdmlzaWJsZTp6LTEwXCI7XG5jb25zdCBTRVBBUkFUT1JfQ0xBU1NFUyA9XG5cdFwib3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctc2Vjb25kYXJ5IHNoYWRvdy1zbVwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLWJ1dHRvbi1ncm91cFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL2J1dHRvbi1ncm91cC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1CdXR0b25Hcm91cENvbXBvbmVudCB7XG5cdEBJbnB1dCgpIHZhcmlhbnQ6IFBkbUJ1dHRvbkdyb3VwVmFyaWFudCA9IFwiZGVmYXVsdFwiO1xuXHRASW5wdXQoKSBvcmllbnRhdGlvbj86IFBkbUJ1dHRvbkdyb3VwT3JpZW50YXRpb247XG5cdEBJbnB1dCgpIGRpcmVjdGlvbj86IFBkbUJ1dHRvbkdyb3VwT3JpZW50YXRpb247XG5cdEBJbnB1dCgpIHNlcGFyYXRlZCA9IHRydWU7XG5cdEBJbnB1dCgpIGNsYXNzTmFtZSA9IFwiXCI7XG5cblx0Z2V0IGF4aXMoKTogQXhpcyB7XG5cdFx0cmV0dXJuIHRoaXMub3JpZW50YXRpb24gPz8gdGhpcy5kaXJlY3Rpb24gPz8gXCJob3Jpem9udGFsXCI7XG5cdH1cblxuXHRnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy52YXJpYW50ID09PSBcIm9yaWVudGF0aW9uXCIgfHwgdGhpcy5heGlzID09PSBcInZlcnRpY2FsXCI7XG5cdH1cblxuXHRnZXQgc2hvdWxkQXR0YWNoKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhdGhpcy5zZXBhcmF0ZWQgJiYgdGhpcy52YXJpYW50ICE9PSBcImRlZmF1bHRcIjtcblx0fVxuXG5cdGdldCBhcmlhT3JpZW50YXRpb24oKTogUGRtQnV0dG9uR3JvdXBPcmllbnRhdGlvbiB7XG5cdFx0cmV0dXJuIHRoaXMuaXNWZXJ0aWNhbCA/IFwidmVydGljYWxcIiA6IFwiaG9yaXpvbnRhbFwiO1xuXHR9XG5cblx0Z2V0IHJvb3RDbGFzc2VzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0Uk9PVF9MQVlPVVRbdGhpcy5pc1ZlcnRpY2FsID8gXCJ2ZXJ0aWNhbFwiIDogXCJob3Jpem9udGFsXCJdLFxuXHRcdFx0dGhpcy52YXJpYW50ID09PSBcImRlZmF1bHRcIiB8fCB0aGlzLnNlcGFyYXRlZCA/IFwiZ2FwLTJcIiA6IFwiZ2FwLTBcIixcblx0XHRcdHRoaXMuc2hvdWxkQXR0YWNoXG5cdFx0XHRcdD8gQVRUQUNITUVOVF9FREdFX0NMQVNTRVNbXG5cdFx0XHRcdFx0XHR0aGlzLmlzVmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIlxuXHRcdFx0XHRcdF0uam9pbihcIiBcIilcblx0XHRcdFx0OiBcIlwiLFxuXHRcdFx0dGhpcy5zaG91bGRBdHRhY2hcblx0XHRcdFx0PyBBVFRBQ0hNRU5UX0NPTlRST0xfQ0xBU1NFU1tcblx0XHRcdFx0XHRcdHRoaXMuaXNWZXJ0aWNhbCA/IFwidmVydGljYWxcIiA6IFwiaG9yaXpvbnRhbFwiXG5cdFx0XHRcdFx0XS5qb2luKFwiIFwiKVxuXHRcdFx0XHQ6IFwiXCIsXG5cdFx0XHR0aGlzLnNob3VsZEF0dGFjaCA/IEZPQ1VTX1NUQUNLSU5HX0NMQVNTIDogXCJcIixcblx0XHRcdHRoaXMudmFyaWFudCA9PT0gXCJzZXBhcmF0b3JcIiA/IFNFUEFSQVRPUl9DTEFTU0VTIDogXCJcIixcblx0XHRcdHRoaXMuY2xhc3NOYW1lLFxuXHRcdF07XG5cdH1cbn1cbiIsIjxkaXZcbiAgcm9sZT1cImdyb3VwXCJcbiAgW2F0dHIuYXJpYS1vcmllbnRhdGlvbl09XCJhcmlhT3JpZW50YXRpb25cIlxuICBbbmdDbGFzc109XCJyb290Q2xhc3Nlc1wiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -126,10 +126,10 @@ export class PdmSelectComponent {
126
126
  }
127
127
  }
128
128
  PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
129
- PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
129
+ PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, decorators: [{
131
131
  type: Component,
132
- args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
132
+ args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
133
133
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { id: [{
134
134
  type: Input
135
135
  }], value: [{
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
161
161
  type: HostListener,
162
162
  args: ["document:keydown.escape"]
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBYzlDLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjlCLFlBQ2tCLEdBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjNDLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBUTFDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxnQkFBVyxHQUFHLElB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LEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNGLENBQUM7OytHQTNKVyxrQkFBa0I7bUdBQWxCLGtCQUFrQix3WEF1QmIsd0JBQXdCLDBPQzNEMUMsa2dHQTBGQTsyRkR0RGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs2SkFHdEMsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUksV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQUlsQixnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsd0JBQXdCO2dCQWlFekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGRyZW4sXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBkbVNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gXCIuL3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9vdmVybGF5L3BkbS1vdmVybGF5LW9wdGlvbnNcIjtcbmltcG9ydCB7IGNyZWF0ZUZsZXhpYmxlUG9zaXRpb25TdHJhdGVneSB9IGZyb20gXCIuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneVwiO1xuaW1wb3J0IHsgWl9JTkRFWCB9IGZyb20gXCIuLi8uLi91dGlscy96LWluZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtU2VsZWN0T3B0aW9uIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXNlbGVjdFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcblx0QElucHV0KCkgb3B0aW9uczogUGRtU2VsZWN0T3B0aW9uW10gPSBbXTtcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0IGFuIG9wdGlvblwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cblx0b3BlbiA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG5cdEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyRWxcIikgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cdEBWaWV3Q2hpbGQoXCJwYW5lbFRlbXBsYXRlXCIpIHByaXZhdGUgcGFuZWxUZW1wbGF0ZVJlZiE6IGFueTtcblxuXHQvKiogQ29sbGVjdHMgYW55IGA8cGRtLXNlbGVjdC1vcHRpb24+YCBjaGlsZHJlbiBwcm9qZWN0ZWQgaW50byB0aGlzIGNvbXBvbmVudC4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUpXG5cdHByaXZhdGUgcHJvamVjdGVkT3B0aW9ucyE6IFF1ZXJ5TGlzdDxQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmU+O1xuXG5cdHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIGJhY2tkcm9wU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0KSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBSZS1yZW5kZXIgd2hlbiBwcm9qZWN0ZWQgb3B0aW9ucyBjaGFuZ2UgKGUuZy4gKm5nRm9yIG9uIHBkbS1zZWxlY3Qtb3B0aW9uKS5cblx0XHR0aGlzLnByb2plY3RlZE9wdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBsaXN0IG9mIG9wdGlvbnMuXG5cdCAqIFByb2plY3RlZCBgPHBkbS1zZWxlY3Qtb3B0aW9uPmAgY2hpbGRyZW4gdGFrZSBwcmlvcml0eSBvdmVyIHRoZSBgW29wdGlvbnNdYCBpbnB1dC5cblx0ICogRmFsbHMgYmFjayB0byBgW29wdGlvbnNdYCB3aGVuIG5vIGNoaWxkcmVuIGFyZSBwcm9qZWN0ZWQuXG5cdCAqL1xuXHRnZXQgcmVzb2x2ZWRPcHRpb25zKCk6IFBkbVNlbGVjdE9wdGlvbltdIHtcblx0XHRpZiAodGhpcy5wcm9qZWN0ZWRPcHRpb25zICYmIHRoaXMucHJvamVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcm9qZWN0ZWRPcHRpb25zLm1hcCgoZCkgPT4gKHtcblx0XHRcdFx0bGFiZWw6IGQucmVzb2x2ZWRMYWJlbCxcblx0XHRcdFx0dmFsdWU6IGQudmFsdWUsXG5cdFx0XHRcdGRpc2FibGVkOiBkLmRpc2FibGVkLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zO1xuXHR9XG5cblx0Z2V0IHNlbGVjdGVkT3B0aW9uKCk6IFBkbVNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb2x2ZWRPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8IHRoaXMucGxhY2Vob2xkZXI7XG5cdH1cblxuXHR0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblx0XHRpZiAodGhpcy5vcGVuKSB7XG5cdFx0XHR0aGlzLmNsb3NlUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9XG5cdH1cblxuXHRvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUpO1xuXHR9XG5cblx0c2VsZWN0T3B0aW9uKG9wdGlvbjogUGRtU2VsZWN0T3B0aW9uKTogdm9pZCB7XG5cdFx0aWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvcHRpb24udmFsdWUpO1xuXHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd24uZXNjYXBlXCIpXG5cdG9uRXNjYXBlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm9wZW4pIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG5cdFx0XHR0aGlzLm92ZXJsYXksXG5cdFx0XHR0cmlnZ2VyRWwsXG5cdFx0XHQ0LFxuXHRcdCk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcblx0XHRcdC8vIENSw41USUNPOiB6LVs3MF0gcGFyYSBhcGFyZWNlciBTT0JSRSBtb2RhbHMgKHotWzYwXSlcblx0XHRcdC8vIHBhbmVsQ2xhc3Mgc2UgYXBsaWNhIGFsIGNkay1vdmVybGF5LXBhbmUgd3JhcHBlclxuXHRcdFx0cGFuZWxDbGFzczogW1pfSU5ERVgucG9wb3Zlcl0sXG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdHdpZHRoOiB0cmlnZ2VyRWwub2Zmc2V0V2lkdGgsXG5cdFx0XHQvLyBDb25zdW1lciBvdmVycmlkZXMgYXJlIHNwcmVhZCBsYXN0IOKAlCB0aGV5IHdpbiBvdmVyIGV2ZXJ5IGRlZmF1bHQgYWJvdmUuXG5cdFx0XHQuLi50aGlzLm92ZXJsYXlPcHRpb25zLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuXHRcdFx0dGhpcy5wYW5lbFRlbXBsYXRlUmVmLFxuXHRcdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLFxuXHRcdCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG5cdFx0dGhpcy5iYWNrZHJvcFN1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuXHRcdFx0XHRpZiAoIXRyaWdnZXJFbC5jb250YWlucyh0YXJnZXQpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdHRoaXMub3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydyZWxhdGl2ZScsIGNsYXNzTmFtZSB8fCAndy1mdWxsJ11cIj5cbiAgPGJ1dHRvblxuICAgICN0cmlnZ2VyRWxcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdib3JkZXItaW5wdXQgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBhcmlhLWludmFsaWQ6cmluZy0yIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUgZmxleCBoLTkgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20gc2hhZG93LXNtIG91dGxpbmUtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgXVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgdGV4dC1sZWZ0IGxlYWRpbmctNScsXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uXG4gICAgICAgICAgPyAnZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgIDogJ2ZvbnQtbm9ybWFsIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZExhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxwZG0taWNvblxuICAgICAgbmFtZT1cImNoZXZyb24tZG93blwiXG4gICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIlxuICAgID48L3BkbS1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEhpZGRlbiBuYXRpdmUgc2VsZWN0IGtlcHQgZm9yIHNjcmVlbi1yZWFkZXIgLyBmb3JtIGZhbGxiYWNrIC0tPlxuICA8c2VsZWN0XG4gICAgY2xhc3M9XCJzci1vbmx5XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxvcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVzb2x2ZWRPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDwhLS0gU2xvdCBmb3IgY29udGVudC1wcm9qZWN0ZWQgcGRtLXNlbGVjdC1vcHRpb24gZWxlbWVudHMgKGhpZGRlbiBmcm9tIGxheW91dCkgLS0+XG4gIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicGRtLXNlbGVjdC1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gIDxkaXZcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkIHx8IG51bGxcIlxuICAgIGNsYXNzPVwib3ZlcmZsb3cteS1hdXRvIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTEgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kIG1heC1oLTk2XCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVzb2x2ZWRPcHRpb25zXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIm9wdGlvbi52YWx1ZSA9PT0gdmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbilcIlxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnZmxleCB3LWZ1bGwgYXBwZWFyYW5jZS1ub25lIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHB5LTEuNSB0ZXh0LWxlZnQgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgICBvcHRpb24uZGlzYWJsZWRcbiAgICAgICAgICA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCdcbiAgICAgICAgICA6ICdob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgICAgICBvcHRpb24udmFsdWUgPT09IHZhbHVlID8gJ3RleHQtZm9yZWdyb3VuZCcgOiAnJyxcbiAgICAgIF1cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgbGVhZGluZy01XCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJvcHRpb24udmFsdWUgPT09IHZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJtbC0yIGZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktZW5kXCJcbiAgICAgID5cbiAgICAgICAgPHBkbS1pY29uXG4gICAgICAgICAgbmFtZT1cImNoZWNrXCJcbiAgICAgICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICAgICAgY2xhc3NOYW1lPVwic2hyaW5rLTAgdGV4dC1jdXJyZW50XCJcbiAgICAgICAgPjwvcGRtLWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBYzlDLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjlCLFlBQ2tCLEdBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjNDLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBUTFDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxnQkFBVyxHQUFHLElB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LEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNGLENBQUM7OytHQTNKVyxrQkFBa0I7bUdBQWxCLGtCQUFrQix3WEF1QmIsd0JBQXdCLDBPQzNEMUMseWdHQTBGQTsyRkR0RGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs2SkFHdEMsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUksV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQUlsQixnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsd0JBQXdCO2dCQWlFekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGRyZW4sXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBkbVNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gXCIuL3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9vdmVybGF5L3BkbS1vdmVybGF5LW9wdGlvbnNcIjtcbmltcG9ydCB7IGNyZWF0ZUZsZXhpYmxlUG9zaXRpb25TdHJhdGVneSB9IGZyb20gXCIuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneVwiO1xuaW1wb3J0IHsgWl9JTkRFWCB9IGZyb20gXCIuLi8uLi91dGlscy96LWluZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtU2VsZWN0T3B0aW9uIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXNlbGVjdFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcblx0QElucHV0KCkgb3B0aW9uczogUGRtU2VsZWN0T3B0aW9uW10gPSBbXTtcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0IGFuIG9wdGlvblwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cblx0b3BlbiA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG5cdEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyRWxcIikgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cdEBWaWV3Q2hpbGQoXCJwYW5lbFRlbXBsYXRlXCIpIHByaXZhdGUgcGFuZWxUZW1wbGF0ZVJlZiE6IGFueTtcblxuXHQvKiogQ29sbGVjdHMgYW55IGA8cGRtLXNlbGVjdC1vcHRpb24+YCBjaGlsZHJlbiBwcm9qZWN0ZWQgaW50byB0aGlzIGNvbXBvbmVudC4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUpXG5cdHByaXZhdGUgcHJvamVjdGVkT3B0aW9ucyE6IFF1ZXJ5TGlzdDxQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmU+O1xuXG5cdHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIGJhY2tkcm9wU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0KSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBSZS1yZW5kZXIgd2hlbiBwcm9qZWN0ZWQgb3B0aW9ucyBjaGFuZ2UgKGUuZy4gKm5nRm9yIG9uIHBkbS1zZWxlY3Qtb3B0aW9uKS5cblx0XHR0aGlzLnByb2plY3RlZE9wdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBsaXN0IG9mIG9wdGlvbnMuXG5cdCAqIFByb2plY3RlZCBgPHBkbS1zZWxlY3Qtb3B0aW9uPmAgY2hpbGRyZW4gdGFrZSBwcmlvcml0eSBvdmVyIHRoZSBgW29wdGlvbnNdYCBpbnB1dC5cblx0ICogRmFsbHMgYmFjayB0byBgW29wdGlvbnNdYCB3aGVuIG5vIGNoaWxkcmVuIGFyZSBwcm9qZWN0ZWQuXG5cdCAqL1xuXHRnZXQgcmVzb2x2ZWRPcHRpb25zKCk6IFBkbVNlbGVjdE9wdGlvbltdIHtcblx0XHRpZiAodGhpcy5wcm9qZWN0ZWRPcHRpb25zICYmIHRoaXMucHJvamVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcm9qZWN0ZWRPcHRpb25zLm1hcCgoZCkgPT4gKHtcblx0XHRcdFx0bGFiZWw6IGQucmVzb2x2ZWRMYWJlbCxcblx0XHRcdFx0dmFsdWU6IGQudmFsdWUsXG5cdFx0XHRcdGRpc2FibGVkOiBkLmRpc2FibGVkLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zO1xuXHR9XG5cblx0Z2V0IHNlbGVjdGVkT3B0aW9uKCk6IFBkbVNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb2x2ZWRPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8IHRoaXMucGxhY2Vob2xkZXI7XG5cdH1cblxuXHR0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblx0XHRpZiAodGhpcy5vcGVuKSB7XG5cdFx0XHR0aGlzLmNsb3NlUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9XG5cdH1cblxuXHRvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUpO1xuXHR9XG5cblx0c2VsZWN0T3B0aW9uKG9wdGlvbjogUGRtU2VsZWN0T3B0aW9uKTogdm9pZCB7XG5cdFx0aWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvcHRpb24udmFsdWUpO1xuXHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd24uZXNjYXBlXCIpXG5cdG9uRXNjYXBlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm9wZW4pIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG5cdFx0XHR0aGlzLm92ZXJsYXksXG5cdFx0XHR0cmlnZ2VyRWwsXG5cdFx0XHQ0LFxuXHRcdCk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcblx0XHRcdC8vIENSw41USUNPOiB6LVs3MF0gcGFyYSBhcGFyZWNlciBTT0JSRSBtb2RhbHMgKHotWzYwXSlcblx0XHRcdC8vIHBhbmVsQ2xhc3Mgc2UgYXBsaWNhIGFsIGNkay1vdmVybGF5LXBhbmUgd3JhcHBlclxuXHRcdFx0cGFuZWxDbGFzczogW1pfSU5ERVgucG9wb3Zlcl0sXG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdHdpZHRoOiB0cmlnZ2VyRWwub2Zmc2V0V2lkdGgsXG5cdFx0XHQvLyBDb25zdW1lciBvdmVycmlkZXMgYXJlIHNwcmVhZCBsYXN0IOKAlCB0aGV5IHdpbiBvdmVyIGV2ZXJ5IGRlZmF1bHQgYWJvdmUuXG5cdFx0XHQuLi50aGlzLm92ZXJsYXlPcHRpb25zLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuXHRcdFx0dGhpcy5wYW5lbFRlbXBsYXRlUmVmLFxuXHRcdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLFxuXHRcdCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG5cdFx0dGhpcy5iYWNrZHJvcFN1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuXHRcdFx0XHRpZiAoIXRyaWdnZXJFbC5jb250YWlucyh0YXJnZXQpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdHRoaXMub3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydyZWxhdGl2ZScsIGNsYXNzTmFtZSB8fCAndy1mdWxsJ11cIj5cbiAgPGJ1dHRvblxuICAgICN0cmlnZ2VyRWxcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdib3JkZXItaW5wdXQgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBhcmlhLWludmFsaWQ6cmluZy0yIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUgZmxleCBoLTkgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtbWQgYm9yZGVyIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20gc2hhZG93LXNtIG91dGxpbmUtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgXVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgdGV4dC1sZWZ0IGxlYWRpbmctNScsXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uXG4gICAgICAgICAgPyAnZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgIDogJ2ZvbnQtbm9ybWFsIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZExhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxwZG0taWNvblxuICAgICAgbmFtZT1cImNoZXZyb24tZG93blwiXG4gICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIlxuICAgID48L3BkbS1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEhpZGRlbiBuYXRpdmUgc2VsZWN0IGtlcHQgZm9yIHNjcmVlbi1yZWFkZXIgLyBmb3JtIGZhbGxiYWNrIC0tPlxuICA8c2VsZWN0XG4gICAgY2xhc3M9XCJzci1vbmx5XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxvcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVzb2x2ZWRPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDwhLS0gU2xvdCBmb3IgY29udGVudC1wcm9qZWN0ZWQgcGRtLXNlbGVjdC1vcHRpb24gZWxlbWVudHMgKGhpZGRlbiBmcm9tIGxheW91dCkgLS0+XG4gIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicGRtLXNlbGVjdC1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gIDxkaXZcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkIHx8IG51bGxcIlxuICAgIGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LXktYXV0byByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYm9yZGVyIGJnLXBvcG92ZXIgcC0xIHRleHQtcG9wb3Zlci1mb3JlZ3JvdW5kIHNoYWRvdy1tZCBtYXgtaC05NlwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHJlc29sdmVkT3B0aW9uc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJvcHRpb24udmFsdWUgPT09IHZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24pXCJcbiAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgJ2ZsZXggdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMiBweS0xLjUgdGV4dC1sZWZ0IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgb3B0aW9uLmRpc2FibGVkXG4gICAgICAgICAgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnXG4gICAgICAgICAgOiAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSA/ICd0ZXh0LWZvcmVncm91bmQnIDogJycsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1pbi13LTAgZmxleC0xIHRydW5jYXRlIGxlYWRpbmctNVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwibWwtMiBmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiXG4gICAgICA+XG4gICAgICAgIDxwZG0taWNvblxuICAgICAgICAgIG5hbWU9XCJjaGVja1wiXG4gICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInNocmluay0wIHRleHQtY3VycmVudFwiXG4gICAgICAgID48L3BkbS1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -316,7 +316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
316
316
  }] } });
317
317
 
318
318
  const ROOT_LAYOUT = {
319
- horizontal: "flex flex-col sm:flex-row sm:items-center sm:flex-wrap",
319
+ horizontal: "w-full flex flex-row items-center overflow-x-auto",
320
320
  vertical: "flex flex-col items-stretch",
321
321
  };
322
322
  const ATTACHMENT_EDGE_CLASSES = {
@@ -344,7 +344,9 @@ const ATTACHMENT_CONTROL_CLASSES = {
344
344
  "[&>pdm-button:first-child>button]:!rounded-l-md",
345
345
  "[&>pdm-button:last-child>button]:!rounded-r-md",
346
346
  "[&>pdm-input]:flex-1",
347
+ "[&>pdm-input]:min-w-0",
347
348
  "[&>pdm-input>div]:w-full",
349
+ "[&>pdm-input>div]:min-w-0",
348
350
  "[&>pdm-input>div]:!rounded-none",
349
351
  "[&>pdm-input>div]:shadow-none",
350
352
  "[&>pdm-input>div>input]:!rounded-none",
@@ -354,6 +356,7 @@ const ATTACHMENT_CONTROL_CLASSES = {
354
356
  "[&>pdm-input:last-child>div]:!rounded-r-md",
355
357
  "[&>pdm-input:first-child>div>input]:!rounded-l-md",
356
358
  "[&>pdm-input:last-child>div>input]:!rounded-r-md",
359
+ "[&>pdm-input-group]:min-w-0",
357
360
  "[&>pdm-input-group>div]:!rounded-none",
358
361
  "[&>pdm-input-group>div]:shadow-none",
359
362
  "[&>pdm-input-group:first-child>div]:!rounded-l-md",
@@ -5409,10 +5412,10 @@ class PdmSelectComponent {
5409
5412
  }
5410
5413
  }
5411
5414
  PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
5412
- PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5415
+ PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5413
5416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, decorators: [{
5414
5417
  type: Component,
5415
- args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
5418
+ args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none items-center justify-between rounded-md border bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
5416
5419
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { id: [{
5417
5420
  type: Input
5418
5421
  }], value: [{