@spicainternational/ngx-sds-components 8.0.0 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/esm2022/public-api.mjs +2 -1
  2. package/esm2022/src/lib/avatar/avatar-group.component.mjs +2 -2
  3. package/esm2022/src/lib/avatar/avatar.component.mjs +20 -6
  4. package/esm2022/src/lib/color-picker/color-picker.component.mjs +3 -3
  5. package/esm2022/src/lib/date-picker/date-picker.component.mjs +3 -3
  6. package/esm2022/src/lib/drawer/drawer.component.mjs +2 -2
  7. package/esm2022/src/lib/expansion-panel/expansion-panel.component.mjs +3 -3
  8. package/esm2022/src/lib/modal/dialog/dialog.component.mjs +3 -3
  9. package/esm2022/src/lib/modal/modal.component.mjs +3 -3
  10. package/esm2022/src/lib/navigation/navigation-group/navigation-group.component.mjs +14 -4
  11. package/esm2022/src/lib/navigation/navigation-user-profile/components/user-profile-tile/user-profile-tile.component.mjs +1 -1
  12. package/esm2022/src/lib/navigation/navigation-user-profile/navigation-user-profile.component.mjs +2 -2
  13. package/esm2022/src/lib/ripple/public-api.mjs +2 -0
  14. package/esm2022/src/lib/ripple/ripple.directive.mjs +103 -0
  15. package/esm2022/src/lib/ripple/spicainternational-ngx-sds-components-src-lib-ripple.mjs +5 -0
  16. package/esm2022/src/lib/segmented-control/segmented-control.component.mjs +56 -7
  17. package/esm2022/src/lib/side-bar/side-bar.component.mjs +2 -2
  18. package/fesm2022/spicainternational-ngx-sds-components-src-lib-avatar.mjs +20 -6
  19. package/fesm2022/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  20. package/fesm2022/spicainternational-ngx-sds-components-src-lib-color-picker.mjs +2 -2
  21. package/fesm2022/spicainternational-ngx-sds-components-src-lib-color-picker.mjs.map +1 -1
  22. package/fesm2022/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +2 -2
  23. package/fesm2022/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  24. package/fesm2022/spicainternational-ngx-sds-components-src-lib-drawer.mjs +1 -1
  25. package/fesm2022/spicainternational-ngx-sds-components-src-lib-drawer.mjs.map +1 -1
  26. package/fesm2022/spicainternational-ngx-sds-components-src-lib-expansion-panel.mjs +2 -2
  27. package/fesm2022/spicainternational-ngx-sds-components-src-lib-expansion-panel.mjs.map +1 -1
  28. package/fesm2022/spicainternational-ngx-sds-components-src-lib-modal.mjs +4 -4
  29. package/fesm2022/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  30. package/fesm2022/spicainternational-ngx-sds-components-src-lib-navigation.mjs +14 -4
  31. package/fesm2022/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
  32. package/fesm2022/spicainternational-ngx-sds-components-src-lib-ripple.mjs +110 -0
  33. package/fesm2022/spicainternational-ngx-sds-components-src-lib-ripple.mjs.map +1 -0
  34. package/fesm2022/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs +55 -6
  35. package/fesm2022/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs.map +1 -1
  36. package/fesm2022/spicainternational-ngx-sds-components-src-lib-side-bar.mjs +2 -2
  37. package/fesm2022/spicainternational-ngx-sds-components-src-lib-side-bar.mjs.map +1 -1
  38. package/fesm2022/spicainternational-ngx-sds-components.mjs +1 -0
  39. package/fesm2022/spicainternational-ngx-sds-components.mjs.map +1 -1
  40. package/package.json +13 -7
  41. package/public-api.d.ts +1 -0
  42. package/src/lib/avatar/avatar.component.d.ts +7 -4
  43. package/src/lib/modal/modal.component.d.ts +1 -1
  44. package/src/lib/navigation/navigation-group/navigation-group.component.d.ts +3 -2
  45. package/src/lib/ripple/index.d.ts +5 -0
  46. package/src/lib/ripple/public-api.d.ts +1 -0
  47. package/src/lib/ripple/ripple.directive.d.ts +21 -0
  48. package/src/lib/ripple/sds-ripple.css +20 -0
  49. package/src/lib/segmented-control/segmented-control.component.d.ts +10 -4
@@ -67,7 +67,7 @@ export class SdsNavigationUserProfileComponent {
67
67
  this.notificationBadgeClick.emit();
68
68
  }
69
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsNavigationUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SdsNavigationUserProfileComponent, isStandalone: true, selector: "sds-navigation-user-profile", inputs: { profile: { classPropertyName: "profile", publicName: "profile", isSignal: false, isRequired: false, transformFunction: null }, profileInfo: { classPropertyName: "profileInfo", publicName: "profileInfo", isSignal: false, isRequired: false, transformFunction: null }, showSignOut: { classPropertyName: "showSignOut", publicName: "showSignOut", isSignal: false, isRequired: false, transformFunction: null }, showProfile: { classPropertyName: "showProfile", publicName: "showProfile", isSignal: false, isRequired: false, transformFunction: null }, signOutText: { classPropertyName: "signOutText", publicName: "signOutText", isSignal: false, isRequired: false, transformFunction: null }, profileText: { classPropertyName: "profileText", publicName: "profileText", isSignal: false, isRequired: false, transformFunction: null }, showNotificationBadge: { classPropertyName: "showNotificationBadge", publicName: "showNotificationBadge", isSignal: false, isRequired: false, transformFunction: null }, newNotificationsText: { classPropertyName: "newNotificationsText", publicName: "newNotificationsText", isSignal: false, isRequired: false, transformFunction: null }, showOptions: { classPropertyName: "showOptions", publicName: "showOptions", isSignal: false, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, sideBarInstanceName: { classPropertyName: "sideBarInstanceName", publicName: "sideBarInstanceName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { profileClick: "profileClick", signOutClick: "signOutClick", notificationBadgeClick: "notificationBadgeClick", showOptionsChange: "showOptionsChange", isCollapsed: "isCollapsedChange" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"\r\n d-flex\r\n flex-row\r\n align-items-center\r\n gap-2\r\n sds-navigation-user-profile-container\r\n user-select-none\r\n mb-1 ms-1 me-1 mt-2\r\n pt-1 pb-1 ps-2\r\n sds-hoverable\r\n sds-rounded-2\r\n \"\r\n (click)=\"toggleOptions($event)\"\r\n>\r\n <div \r\n #popoverTarget\r\n class=\"\r\n position-relative\r\n\r\n \">\r\n <sds-avatar\r\n [text]=\"profile?.name\"\r\n [colorKey]=\"profile?.id\"\r\n [pictureUri]=\"profile?.pictureUri\"\r\n >\r\n </sds-avatar>\r\n\r\n <span\r\n *ngIf=\"showNotificationBadge\"\r\n class=\"\r\n position-absolute\r\n notification-badge\r\n translate-middle\r\n bg-danger\r\n border border-light\r\n rounded-circle\r\n \"\r\n (click)=\"onNotificationBadgeClick($event)\"\r\n >\r\n <span class=\"visually-hidden\">{{ newNotificationsText }}</span>\r\n </span>\r\n </div>\r\n\r\n @if(!isCollapsed()) {\r\n <div class=\"sds-flex-column\">\r\n <span class=\"truncate-two-lines text-gray-800 sds-fs-93\">\r\n {{ profile?.name }}\r\n </span>\r\n\r\n <span class=\"sds-fw-400 sds-fs-75 text-truncate text-muted\">\r\n {{ profileInfo }}\r\n </span>\r\n </div>\r\n }\r\n</div>\r\n\r\n<dx-popover\r\n [target]=\"popoverTarget\"\r\n [position]=\"{ my: 'left bottom', at: 'left top' }\"\r\n collision=\"fit none\"\r\n minWidth=\"20rem\"\r\n maxWidth=\"20rem\"\r\n [(visible)]=\"showOptions\"\r\n [wrapperAttr]=\"{\r\n class: 'sds-navigation-user-profile-popover sds-dx-popup-no-arrow sds-dx-popup-content-padding-0'\r\n }\"\r\n>\r\n <div class=\"py-2 pb-3 main-profile-container border-bottom\">\r\n\r\n <div class=\"sds-flex-column align-items-center\">\r\n <sds-avatar\r\n [text]=\"profile?.name\"\r\n [colorKey]=\"profile?.id\"\r\n [pictureUri]=\"profile?.pictureUri\"\r\n [size]=\"7\"\r\n >\r\n </sds-avatar>\r\n\r\n <h5 class=\"text-center mt-2 px-3\">\r\n {{profile?.name}}\r\n </h5>\r\n\r\n <div class=\"sds-fw-400 text-center text-gray-800 sds-fs-87 px-3 text-truncate w-100\">\r\n {{profile?.info}}\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ul\r\n class=\"\r\n list-unstyled\r\n sds-navigation-user-profile-actions\r\n mb-0\r\n sds-ul-gap-1\r\n mx-2\r\n mb-2\r\n \"\r\n >\r\n <li *ngIf=\"showProfile\">\r\n <sds-user-profile-action-button\r\n [text]=\"profileText\"\r\n [icon]=\"userProfileIcon\"\r\n (actionClick)=\"onProfileClick()\"\r\n >\r\n </sds-user-profile-action-button>\r\n </li>\r\n\r\n <li *ngIf=\"showSignOut\">\r\n <sds-user-profile-action-button\r\n [text]=\"signOutText\"\r\n [icon]=\"signOutIcon\"\r\n (actionClick)=\"onSignOutClick()\"\r\n >\r\n </sds-user-profile-action-button>\r\n </li>\r\n </ul>\r\n</dx-popover>\r\n", styles: [".sds-navigation-user-profile-container{padding:.8rem;cursor:pointer}.sds-navigation-user-profile-container .notification-badge{top:15%;left:100%;padding:.4rem}.truncate-two-lines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.main-profile-container{margin:.5rem}::ng-deep .sds-navigation-user-profile-popover .dx-popup-content{padding:0!important;font-size:1rem}\n"], dependencies: [{ kind: "component", type: SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor", "size", "pictureImageAlt", "pictureLoading", "picturePriority", "badgeVisible", "badgePosition", "badgeBackgroundColor", "badgeTextColor", "badgeHint"] }, { kind: "component", type: SdsUserProfileActionButtonComponent, selector: "sds-user-profile-action-button", inputs: ["text", "icon"], outputs: ["actionClick"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DxPopoverModule }, { kind: "component", type: i1.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "enableBodyScroll", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "enableBodyScrollChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SdsNavigationUserProfileComponent, isStandalone: true, selector: "sds-navigation-user-profile", inputs: { profile: { classPropertyName: "profile", publicName: "profile", isSignal: false, isRequired: false, transformFunction: null }, profileInfo: { classPropertyName: "profileInfo", publicName: "profileInfo", isSignal: false, isRequired: false, transformFunction: null }, showSignOut: { classPropertyName: "showSignOut", publicName: "showSignOut", isSignal: false, isRequired: false, transformFunction: null }, showProfile: { classPropertyName: "showProfile", publicName: "showProfile", isSignal: false, isRequired: false, transformFunction: null }, signOutText: { classPropertyName: "signOutText", publicName: "signOutText", isSignal: false, isRequired: false, transformFunction: null }, profileText: { classPropertyName: "profileText", publicName: "profileText", isSignal: false, isRequired: false, transformFunction: null }, showNotificationBadge: { classPropertyName: "showNotificationBadge", publicName: "showNotificationBadge", isSignal: false, isRequired: false, transformFunction: null }, newNotificationsText: { classPropertyName: "newNotificationsText", publicName: "newNotificationsText", isSignal: false, isRequired: false, transformFunction: null }, showOptions: { classPropertyName: "showOptions", publicName: "showOptions", isSignal: false, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, sideBarInstanceName: { classPropertyName: "sideBarInstanceName", publicName: "sideBarInstanceName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { profileClick: "profileClick", signOutClick: "signOutClick", notificationBadgeClick: "notificationBadgeClick", showOptionsChange: "showOptionsChange", isCollapsed: "isCollapsedChange" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"\r\n d-flex\r\n flex-row\r\n align-items-center\r\n gap-2\r\n sds-navigation-user-profile-container\r\n user-select-none\r\n mb-1 ms-1 me-1 mt-2\r\n pt-1 pb-1 ps-2\r\n sds-hoverable\r\n sds-rounded-2\r\n \"\r\n (click)=\"toggleOptions($event)\"\r\n>\r\n <div \r\n #popoverTarget\r\n class=\"\r\n position-relative\r\n\r\n \">\r\n <sds-avatar\r\n [text]=\"profile?.name\"\r\n [colorKey]=\"profile?.id\"\r\n [pictureUri]=\"profile?.pictureUri\"\r\n >\r\n </sds-avatar>\r\n\r\n <span\r\n *ngIf=\"showNotificationBadge\"\r\n class=\"\r\n position-absolute\r\n notification-badge\r\n translate-middle\r\n bg-danger\r\n border border-light\r\n rounded-circle\r\n \"\r\n (click)=\"onNotificationBadgeClick($event)\"\r\n >\r\n <span class=\"visually-hidden\">{{ newNotificationsText }}</span>\r\n </span>\r\n </div>\r\n\r\n @if(!isCollapsed()) {\r\n <div class=\"sds-flex-column\">\r\n <span class=\"truncate-two-lines text-gray-800 sds-fs-93\">\r\n {{ profile?.name }}\r\n </span>\r\n\r\n <span class=\"sds-fw-400 sds-fs-75 text-truncate text-muted\">\r\n {{ profileInfo }}\r\n </span>\r\n </div>\r\n }\r\n</div>\r\n\r\n<dx-popover\r\n [target]=\"popoverTarget\"\r\n [position]=\"{ my: 'left bottom', at: 'left top' }\"\r\n collision=\"fit none\"\r\n minWidth=\"20rem\"\r\n maxWidth=\"20rem\"\r\n [(visible)]=\"showOptions\"\r\n [wrapperAttr]=\"{\r\n class: 'sds-navigation-user-profile-popover sds-dx-popup-no-arrow sds-dx-popup-content-padding-0'\r\n }\"\r\n>\r\n <div class=\"py-2 pb-3 main-profile-container border-bottom\">\r\n\r\n <div class=\"sds-flex-column align-items-center\">\r\n <sds-avatar\r\n [text]=\"profile?.name\"\r\n [colorKey]=\"profile?.id\"\r\n [pictureUri]=\"profile?.pictureUri\"\r\n [size]=\"7\"\r\n >\r\n </sds-avatar>\r\n\r\n <h5 class=\"text-center mt-2 px-3\">\r\n {{profile?.name}}\r\n </h5>\r\n\r\n <div class=\"sds-fw-400 text-center text-gray-800 sds-fs-87 px-3 text-truncate w-100\">\r\n {{profile?.info}}\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ul\r\n class=\"\r\n list-unstyled\r\n sds-navigation-user-profile-actions\r\n mb-0\r\n sds-ul-gap-1\r\n mx-2\r\n mb-2\r\n \"\r\n >\r\n <li *ngIf=\"showProfile\">\r\n <sds-user-profile-action-button\r\n [text]=\"profileText\"\r\n [icon]=\"userProfileIcon\"\r\n (actionClick)=\"onProfileClick()\"\r\n >\r\n </sds-user-profile-action-button>\r\n </li>\r\n\r\n <li *ngIf=\"showSignOut\">\r\n <sds-user-profile-action-button\r\n [text]=\"signOutText\"\r\n [icon]=\"signOutIcon\"\r\n (actionClick)=\"onSignOutClick()\"\r\n >\r\n </sds-user-profile-action-button>\r\n </li>\r\n </ul>\r\n</dx-popover>\r\n", styles: [".sds-navigation-user-profile-container{padding:.8rem;cursor:pointer}.sds-navigation-user-profile-container .notification-badge{top:15%;left:100%;padding:.4rem}.truncate-two-lines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.main-profile-container{margin:.5rem}::ng-deep .sds-navigation-user-profile-popover .dx-popup-content{padding:0!important;font-size:1rem}\n"], dependencies: [{ kind: "component", type: SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "borderWidth", "initialsText", "cursor", "size", "pictureImageAlt", "pictureLoading", "picturePriority", "badgeVisible", "badgePosition", "badgeBackgroundColor", "badgeTextColor", "badgeHint"] }, { kind: "component", type: SdsUserProfileActionButtonComponent, selector: "sds-user-profile-action-button", inputs: ["text", "icon"], outputs: ["actionClick"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DxPopoverModule }, { kind: "component", type: i1.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "deferRendering", "disabled", "enableBodyScroll", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "deferRenderingChange", "disabledChange", "enableBodyScrollChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] }); }
71
71
  }
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsNavigationUserProfileComponent, decorators: [{
73
73
  type: Component,
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
104
104
  }], showOptionsChange: [{
105
105
  type: Output
106
106
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tdXNlci1wcm9maWxlL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFHM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQzs7O0FBZW5JLE1BQU0sT0FBTyxpQ0FBaUM7SUF3QjFDO1FBdkJTLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBQ3pDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVCLGdCQUFXLEdBQVcsVUFBVSxDQUFDO1FBQ2pDLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBRWhDLDBCQUFx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QUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsc0JBQXNCO3NCQUEvQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBJbnB1dCwgbW9kZWwsIE9uSW5pdCwgT25DaGFuZ2VzLCBPdXRwdXQsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeFBvcG92ZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvcG9wb3Zlcic7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZHNBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhcic7XHJcbmltcG9ydCB7IENvbGxhcHNpYmxlTmF2aWdhdGlvbkVudGl0eSB9IGZyb20gJy4uL21vZGVscy9uYXZpZ2F0aW9uLW1vZGVscyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Qcm9maWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXByb2ZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBmYVNpZ25PdXQsIGZhVXNlciB9IGZyb20gJ0Bmb3J0YXdlc29tZS9wcm8tcmVndWxhci1zdmctaWNvbnMnO1xyXG5pbXBvcnQgeyBTZHNVc2VyUHJvZmlsZUFjdGlvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbi91c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzZHMtbmF2aWdhdGlvbi11c2VyLXByb2ZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIFNkc0F2YXRhckNvbXBvbmVudCxcclxuICAgICAgICBTZHNVc2VyUHJvZmlsZUFjdGlvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIER4UG9wb3Zlck1vZHVsZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZHNOYXZpZ2F0aW9uVXNlclByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29sbGFwc2libGVOYXZpZ2F0aW9uRW50aXR5IHtcclxuICAgIEBJbnB1dCgpIHByb2ZpbGU6IE5hdmlnYXRpb25Qcm9maWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBwcm9maWxlSW5mbzogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KCkgc2hvd1NpZ25PdXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgc2hvd1Byb2ZpbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHNpZ25PdXRUZXh0OiBzdHJpbmcgPSAnU2lnbiBvdXQnO1xyXG4gICAgQElucHV0KCkgcHJvZmlsZVRleHQ6IHN0cmluZyA9ICdQcm9maWxlJztcclxuXHJcbiAgICBASW5wdXQoKSBzaG93Tm90aWZpY2F0aW9uQmFkZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG5ld05vdGlmaWNhdGlvbnNUZXh0OiBzdHJpbmcgPSAnTmV3IE5vdGlmaWNhdGlvbnMnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwcm9maWxlQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSBzaWduT3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uQmFkZ2VDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIFxyXG4gICAgQElucHV0KCkgc2hvd09wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBzaG93T3B0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHByb3RlY3RlZCB1c2VyUHJvZmlsZUljb24gPSBmYVVzZXI7XHJcbiAgICBwcm90ZWN0ZWQgc2lnbk91dEljb24gPSBmYVNpZ25PdXRcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgICBcclxuICAgIGlzQ29sbGFwc2VkID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgc2lkZUJhckluc3RhbmNlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gaWYgKGNoYW5nZXNbJ2FjdGl2ZVByb2ZpbGVJZCddIHx8IGNoYW5nZXNbJ3Byb2ZpbGUnXSB8fCBjaGFuZ2VzWydhZGRpdGlvbmFsUHJvZmlsZXMnXSkge1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy5hY3RpdmVQcm9maWxlSWQgPT09IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuYWN0aXZlUHJvZmlsZSA9IHRoaXMucHJvZmlsZTtcclxuICAgICAgICAvLyAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVByb2ZpbGVJZCA9PT0gdGhpcy5wcm9maWxlPy5pZCkge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5hY3RpdmVQcm9maWxlID0gdGhpcy5wcm9maWxlO1xyXG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5hY3RpdmVQcm9maWxlID0gdGhpcy5hZGRpdGlvbmFsUHJvZmlsZXMuZmluZChwcm9maWxlID0+IHByb2ZpbGUuaWQgPT09IHRoaXMuYWN0aXZlUHJvZmlsZUlkKSB8fCBudWxsO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblByb2ZpbGVDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMucHJvZmlsZUNsaWNrLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TaWduT3V0Q2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnNDaGFuZ2UuZW1pdCh0aGlzLnNob3dPcHRpb25zKTtcclxuICAgICAgICB0aGlzLnNpZ25PdXRDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlT3B0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3Blbk9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB0b2dnbGVPcHRpb25zKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnNDaGFuZ2UuZW1pdCh0aGlzLnNob3dPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Ob3RpZmljYXRpb25CYWRnZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25CYWRnZUNsaWNrLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIlxyXG4gICAgICAgIGQtZmxleFxyXG4gICAgICAgIGZsZXgtcm93XHJcbiAgICAgICAgYWxpZ24taXRlbXMtY2VudGVyXHJcbiAgICAgICAgZ2FwLTJcclxuICAgICAgICBzZHMtbmF2aWdhdGlvbi11c2VyLXByb2ZpbGUtY29udGFpbmVyXHJcbiAgICAgICAgdXNlci1zZWxlY3Qtbm9uZVxyXG4gICAgICAgIG1iLTEgbXMtMSBtZS0xIG10LTJcclxuICAgICAgICBwdC0xIHBiLTEgcHMtMlxyXG4gICAgICAgIHNkcy1ob3ZlcmFibGVcclxuICAgICAgICBzZHMtcm91bmRlZC0yXHJcbiAgICBcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxkaXYgXHJcbiAgICAgICAgI3BvcG92ZXJUYXJnZXRcclxuICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICBwb3NpdGlvbi1yZWxhdGl2ZVxyXG5cclxuICAgICAgICBcIj5cclxuICAgICAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICAgICBbdGV4dF09XCJwcm9maWxlPy5uYW1lXCJcclxuICAgICAgICAgICAgW2NvbG9yS2V5XT1cInByb2ZpbGU/LmlkXCJcclxuICAgICAgICAgICAgW3BpY3R1cmVVcmldPVwicHJvZmlsZT8ucGljdHVyZVVyaVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvc2RzLWF2YXRhcj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93Tm90aWZpY2F0aW9uQmFkZ2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24tYWJzb2x1dGVcclxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi1iYWRnZVxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlLW1pZGRsZVxyXG4gICAgICAgICAgICAgICAgYmctZGFuZ2VyXHJcbiAgICAgICAgICAgICAgICBib3JkZXIgYm9yZGVyLWxpZ2h0XHJcbiAgICAgICAgICAgICAgICByb3VuZGVkLWNpcmNsZVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ob3RpZmljYXRpb25CYWRnZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyBuZXdOb3RpZmljYXRpb25zVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoIWlzQ29sbGFwc2VkKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUtdHdvLWxpbmVzIHRleHQtZ3JheS04MDAgc2RzLWZzLTkzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcm9maWxlPy5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RzLWZ3LTQwMCBzZHMtZnMtNzUgdGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcm9maWxlSW5mbyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuPGR4LXBvcG92ZXJcclxuICAgIFt0YXJnZXRdPVwicG9wb3ZlclRhcmdldFwiXHJcbiAgICBbcG9zaXRpb25dPVwieyBteTogJ2xlZnQgYm90dG9tJywgYXQ6ICdsZWZ0IHRvcCcgfVwiXHJcbiAgICBjb2xsaXNpb249XCJmaXQgbm9uZVwiXHJcbiAgICBtaW5XaWR0aD1cIjIwcmVtXCJcclxuICAgIG1heFdpZHRoPVwiMjByZW1cIlxyXG4gICAgWyh2aXNpYmxlKV09XCJzaG93T3B0aW9uc1wiXHJcbiAgICBbd3JhcHBlckF0dHJdPVwie1xyXG4gICAgICAgIGNsYXNzOiAnc2RzLW5hdmlnYXRpb24tdXNlci1wcm9maWxlLXBvcG92ZXIgc2RzLWR4LXBvcHVwLW5vLWFycm93IHNkcy1keC1wb3B1cC1jb250ZW50LXBhZGRpbmctMCdcclxuICAgIH1cIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHktMiBwYi0zIG1haW4tcHJvZmlsZS1jb250YWluZXIgYm9yZGVyLWJvdHRvbVwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgW3RleHRdPVwicHJvZmlsZT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbY29sb3JLZXldPVwicHJvZmlsZT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgW3BpY3R1cmVVcmldPVwicHJvZmlsZT8ucGljdHVyZVVyaVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCI3XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3Nkcy1hdmF0YXI+XHJcblxyXG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgIHt7cHJvZmlsZT8ubmFtZX19XHJcbiAgICAgICAgICAgIDwvaDU+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZ3LTQwMCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktODAwIHNkcy1mcy04NyBweC0zIHRleHQtdHJ1bmNhdGUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIHt7cHJvZmlsZT8uaW5mb319XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgICA8dWxcclxuICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICBsaXN0LXVuc3R5bGVkXHJcbiAgICAgICAgICAgIHNkcy1uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS1hY3Rpb25zXHJcbiAgICAgICAgICAgIG1iLTBcclxuICAgICAgICAgICAgc2RzLXVsLWdhcC0xXHJcbiAgICAgICAgICAgIG14LTJcclxuICAgICAgICAgICAgbWItMlxyXG4gICAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwic2hvd1Byb2ZpbGVcIj5cclxuICAgICAgICAgICAgPHNkcy11c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW3RleHRdPVwicHJvZmlsZVRleHRcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidXNlclByb2ZpbGVJY29uXCJcclxuICAgICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvblByb2ZpbGVDbGljaygpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3Nkcy11c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8bGkgKm5nSWY9XCJzaG93U2lnbk91dFwiPlxyXG4gICAgICAgICAgICA8c2RzLXVzZXItcHJvZmlsZS1hY3Rpb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJzaWduT3V0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJzaWduT3V0SWNvblwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25TaWduT3V0Q2xpY2soKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9zZHMtdXNlci1wcm9maWxlLWFjdGlvbi1idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvZHgtcG9wb3Zlcj5cclxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tdXNlci1wcm9maWxlL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFHM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQzs7O0FBZW5JLE1BQU0sT0FBTyxpQ0FBaUM7SUF3QjFDO1FBdkJTLFlBQU8sR0FBNkIsSUFBSSxDQUFDO1FBQ3pDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVCLGdCQUFXLEdBQVcsVUFBVSxDQUFDO1FBQ2pDLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBRWhDLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2Qyx5QkFBb0IsR0FBVyxtQkFBbUIsQ0FBQztRQUVsRCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUQsMkJBQXNCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdkUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDNUIsc0JBQWlCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFdkUsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxTQUFTLENBQUE7UUFJakMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBSHpCLENBQUM7SUFLaEIsUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLDJGQUEyRjtRQUMzRiwyQ0FBMkM7UUFDM0MsNkNBQTZDO1FBQzdDLDhEQUE4RDtRQUM5RCw2Q0FBNkM7UUFDN0MsZUFBZTtRQUNmLHFIQUFxSDtRQUNySCxRQUFRO1FBQ1IsSUFBSTtJQUNSLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWxELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFpQjtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckMsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxLQUFpQjtRQUM3QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7K0dBNUVRLGlDQUFpQzttR0FBakMsaUNBQWlDLHkzREN0QjlDLCsrR0EwSEEsaWZEMUdRLGtCQUFrQiw4VUFDbEIsbUNBQW1DLCtIQUNuQyxJQUFJLDRGQUNKLGVBQWU7OzRGQUdWLGlDQUFpQztrQkFaN0MsU0FBUzsrQkFDSSw2QkFBNkIsY0FHM0IsSUFBSSxXQUNQO3dCQUNMLGtCQUFrQjt3QkFDbEIsbUNBQW1DO3dCQUNuQyxJQUFJO3dCQUNKLGVBQWU7cUJBQ2xCO3dEQUdRLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsc0JBQXNCO3NCQUEvQixNQUFNO2dCQUVFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBJbnB1dCwgbW9kZWwsIE9uSW5pdCwgT25DaGFuZ2VzLCBPdXRwdXQsIHNpZ25hbCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeFBvcG92ZXJNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvcG9wb3Zlcic7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZHNBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhcic7XHJcbmltcG9ydCB7IENvbGxhcHNpYmxlTmF2aWdhdGlvbkVudGl0eSB9IGZyb20gJy4uL21vZGVscy9uYXZpZ2F0aW9uLW1vZGVscyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Qcm9maWxlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXByb2ZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBmYVNpZ25PdXQsIGZhVXNlciB9IGZyb20gJ0Bmb3J0YXdlc29tZS9wcm8tcmVndWxhci1zdmctaWNvbnMnO1xyXG5pbXBvcnQgeyBTZHNVc2VyUHJvZmlsZUFjdGlvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbi91c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzZHMtbmF2aWdhdGlvbi11c2VyLXByb2ZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIFNkc0F2YXRhckNvbXBvbmVudCxcclxuICAgICAgICBTZHNVc2VyUHJvZmlsZUFjdGlvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIER4UG9wb3Zlck1vZHVsZSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZHNOYXZpZ2F0aW9uVXNlclByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29sbGFwc2libGVOYXZpZ2F0aW9uRW50aXR5IHtcclxuICAgIEBJbnB1dCgpIHByb2ZpbGU6IE5hdmlnYXRpb25Qcm9maWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBwcm9maWxlSW5mbzogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KCkgc2hvd1NpZ25PdXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgc2hvd1Byb2ZpbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHNpZ25PdXRUZXh0OiBzdHJpbmcgPSAnU2lnbiBvdXQnO1xyXG4gICAgQElucHV0KCkgcHJvZmlsZVRleHQ6IHN0cmluZyA9ICdQcm9maWxlJztcclxuXHJcbiAgICBASW5wdXQoKSBzaG93Tm90aWZpY2F0aW9uQmFkZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG5ld05vdGlmaWNhdGlvbnNUZXh0OiBzdHJpbmcgPSAnTmV3IE5vdGlmaWNhdGlvbnMnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwcm9maWxlQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSBzaWduT3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uQmFkZ2VDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIFxyXG4gICAgQElucHV0KCkgc2hvd09wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBzaG93T3B0aW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHByb3RlY3RlZCB1c2VyUHJvZmlsZUljb24gPSBmYVVzZXI7XHJcbiAgICBwcm90ZWN0ZWQgc2lnbk91dEljb24gPSBmYVNpZ25PdXRcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgICBcclxuICAgIGlzQ29sbGFwc2VkID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgc2lkZUJhckluc3RhbmNlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gaWYgKGNoYW5nZXNbJ2FjdGl2ZVByb2ZpbGVJZCddIHx8IGNoYW5nZXNbJ3Byb2ZpbGUnXSB8fCBjaGFuZ2VzWydhZGRpdGlvbmFsUHJvZmlsZXMnXSkge1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy5hY3RpdmVQcm9maWxlSWQgPT09IG51bGwpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuYWN0aXZlUHJvZmlsZSA9IHRoaXMucHJvZmlsZTtcclxuICAgICAgICAvLyAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVByb2ZpbGVJZCA9PT0gdGhpcy5wcm9maWxlPy5pZCkge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5hY3RpdmVQcm9maWxlID0gdGhpcy5wcm9maWxlO1xyXG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5hY3RpdmVQcm9maWxlID0gdGhpcy5hZGRpdGlvbmFsUHJvZmlsZXMuZmluZChwcm9maWxlID0+IHByb2ZpbGUuaWQgPT09IHRoaXMuYWN0aXZlUHJvZmlsZUlkKSB8fCBudWxsO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblByb2ZpbGVDbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMucHJvZmlsZUNsaWNrLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TaWduT3V0Q2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnNDaGFuZ2UuZW1pdCh0aGlzLnNob3dPcHRpb25zKTtcclxuICAgICAgICB0aGlzLnNpZ25PdXRDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlT3B0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNob3dPcHRpb25zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3Blbk9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9uc0NoYW5nZS5lbWl0KHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB0b2dnbGVPcHRpb25zKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5zaG93T3B0aW9ucyA9ICF0aGlzLnNob3dPcHRpb25zO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2hvd09wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnNDaGFuZ2UuZW1pdCh0aGlzLnNob3dPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Ob3RpZmljYXRpb25CYWRnZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25CYWRnZUNsaWNrLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIlxyXG4gICAgICAgIGQtZmxleFxyXG4gICAgICAgIGZsZXgtcm93XHJcbiAgICAgICAgYWxpZ24taXRlbXMtY2VudGVyXHJcbiAgICAgICAgZ2FwLTJcclxuICAgICAgICBzZHMtbmF2aWdhdGlvbi11c2VyLXByb2ZpbGUtY29udGFpbmVyXHJcbiAgICAgICAgdXNlci1zZWxlY3Qtbm9uZVxyXG4gICAgICAgIG1iLTEgbXMtMSBtZS0xIG10LTJcclxuICAgICAgICBwdC0xIHBiLTEgcHMtMlxyXG4gICAgICAgIHNkcy1ob3ZlcmFibGVcclxuICAgICAgICBzZHMtcm91bmRlZC0yXHJcbiAgICBcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoJGV2ZW50KVwiXHJcbj5cclxuICAgIDxkaXYgXHJcbiAgICAgICAgI3BvcG92ZXJUYXJnZXRcclxuICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICBwb3NpdGlvbi1yZWxhdGl2ZVxyXG5cclxuICAgICAgICBcIj5cclxuICAgICAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICAgICBbdGV4dF09XCJwcm9maWxlPy5uYW1lXCJcclxuICAgICAgICAgICAgW2NvbG9yS2V5XT1cInByb2ZpbGU/LmlkXCJcclxuICAgICAgICAgICAgW3BpY3R1cmVVcmldPVwicHJvZmlsZT8ucGljdHVyZVVyaVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvc2RzLWF2YXRhcj5cclxuXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93Tm90aWZpY2F0aW9uQmFkZ2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgcG9zaXRpb24tYWJzb2x1dGVcclxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi1iYWRnZVxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlLW1pZGRsZVxyXG4gICAgICAgICAgICAgICAgYmctZGFuZ2VyXHJcbiAgICAgICAgICAgICAgICBib3JkZXIgYm9yZGVyLWxpZ2h0XHJcbiAgICAgICAgICAgICAgICByb3VuZGVkLWNpcmNsZVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ob3RpZmljYXRpb25CYWRnZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyBuZXdOb3RpZmljYXRpb25zVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoIWlzQ29sbGFwc2VkKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUtdHdvLWxpbmVzIHRleHQtZ3JheS04MDAgc2RzLWZzLTkzXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcm9maWxlPy5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RzLWZ3LTQwMCBzZHMtZnMtNzUgdGV4dC10cnVuY2F0ZSB0ZXh0LW11dGVkXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBwcm9maWxlSW5mbyB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuPGR4LXBvcG92ZXJcclxuICAgIFt0YXJnZXRdPVwicG9wb3ZlclRhcmdldFwiXHJcbiAgICBbcG9zaXRpb25dPVwieyBteTogJ2xlZnQgYm90dG9tJywgYXQ6ICdsZWZ0IHRvcCcgfVwiXHJcbiAgICBjb2xsaXNpb249XCJmaXQgbm9uZVwiXHJcbiAgICBtaW5XaWR0aD1cIjIwcmVtXCJcclxuICAgIG1heFdpZHRoPVwiMjByZW1cIlxyXG4gICAgWyh2aXNpYmxlKV09XCJzaG93T3B0aW9uc1wiXHJcbiAgICBbd3JhcHBlckF0dHJdPVwie1xyXG4gICAgICAgIGNsYXNzOiAnc2RzLW5hdmlnYXRpb24tdXNlci1wcm9maWxlLXBvcG92ZXIgc2RzLWR4LXBvcHVwLW5vLWFycm93IHNkcy1keC1wb3B1cC1jb250ZW50LXBhZGRpbmctMCdcclxuICAgIH1cIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHktMiBwYi0zIG1haW4tcHJvZmlsZS1jb250YWluZXIgYm9yZGVyLWJvdHRvbVwiPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgICAgICAgICAgW3RleHRdPVwicHJvZmlsZT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbY29sb3JLZXldPVwicHJvZmlsZT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgW3BpY3R1cmVVcmldPVwicHJvZmlsZT8ucGljdHVyZVVyaVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCI3XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3Nkcy1hdmF0YXI+XHJcblxyXG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yIHB4LTNcIj5cclxuICAgICAgICAgICAgICAgIHt7cHJvZmlsZT8ubmFtZX19XHJcbiAgICAgICAgICAgIDwvaDU+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RzLWZ3LTQwMCB0ZXh0LWNlbnRlciB0ZXh0LWdyYXktODAwIHNkcy1mcy04NyBweC0zIHRleHQtdHJ1bmNhdGUgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIHt7cHJvZmlsZT8uaW5mb319XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgICA8dWxcclxuICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICBsaXN0LXVuc3R5bGVkXHJcbiAgICAgICAgICAgIHNkcy1uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS1hY3Rpb25zXHJcbiAgICAgICAgICAgIG1iLTBcclxuICAgICAgICAgICAgc2RzLXVsLWdhcC0xXHJcbiAgICAgICAgICAgIG14LTJcclxuICAgICAgICAgICAgbWItMlxyXG4gICAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwic2hvd1Byb2ZpbGVcIj5cclxuICAgICAgICAgICAgPHNkcy11c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW3RleHRdPVwicHJvZmlsZVRleHRcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25dPVwidXNlclByb2ZpbGVJY29uXCJcclxuICAgICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvblByb2ZpbGVDbGljaygpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3Nkcy11c2VyLXByb2ZpbGUtYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8bGkgKm5nSWY9XCJzaG93U2lnbk91dFwiPlxyXG4gICAgICAgICAgICA8c2RzLXVzZXItcHJvZmlsZS1hY3Rpb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJzaWduT3V0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJzaWduT3V0SWNvblwiXHJcbiAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25TaWduT3V0Q2xpY2soKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9zZHMtdXNlci1wcm9maWxlLWFjdGlvbi1idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvZHgtcG9wb3Zlcj5cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './ripple.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL3JpcHBsZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9yaXBwbGUuZGlyZWN0aXZlJzsiXX0=
@@ -0,0 +1,103 @@
1
+ import { Directive, HostBinding, HostListener, Input, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SdsRippleDirective {
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ this.sdsRippleColor = 'rgba(255, 255, 255, 0.5)';
8
+ this.sdsRippleDuration = 600;
9
+ this.sdsRippleMaxConcurrent = 3;
10
+ this.addContainer = true;
11
+ this.position = 'relative';
12
+ this.overflow = 'hidden';
13
+ this.activeRipples = [];
14
+ }
15
+ onTouchStart(event) {
16
+ if (event.touches.length > 0) {
17
+ const touch = event.touches[0];
18
+ this.createRipple(touch.clientX, touch.clientY);
19
+ }
20
+ }
21
+ onMouseDown(event) {
22
+ // Only trigger on left click
23
+ if (event.button !== 0)
24
+ return;
25
+ this.createRipple(event.clientX, event.clientY);
26
+ }
27
+ createRipple(clientX, clientY) {
28
+ // Remove oldest ripple if at max capacity
29
+ if (this.activeRipples.length >= this.sdsRippleMaxConcurrent) {
30
+ const oldestRipple = this.activeRipples.shift();
31
+ if (oldestRipple?.parentNode) {
32
+ this.renderer.removeChild(this.el.nativeElement, oldestRipple);
33
+ }
34
+ }
35
+ const ripple = this.renderer.createElement('span');
36
+ this.renderer.addClass(ripple, 'sds-ripple');
37
+ const rect = this.el.nativeElement.getBoundingClientRect();
38
+ const size = Math.max(rect.width, rect.height) * 2;
39
+ const x = clientX - rect.left - size / 2;
40
+ const y = clientY - rect.top - size / 2;
41
+ const duration = Math.min(this.sdsRippleDuration, 1200);
42
+ this.renderer.setStyle(ripple, 'width', `${size}px`);
43
+ this.renderer.setStyle(ripple, 'height', `${size}px`);
44
+ this.renderer.setStyle(ripple, 'left', `${x}px`);
45
+ this.renderer.setStyle(ripple, 'top', `${y}px`);
46
+ this.renderer.setStyle(ripple, 'background-color', this.sdsRippleColor);
47
+ this.renderer.setStyle(ripple, 'animation-duration', `${duration}ms`);
48
+ this.renderer.appendChild(this.el.nativeElement, ripple);
49
+ this.activeRipples.push(ripple);
50
+ setTimeout(() => {
51
+ if (ripple.parentNode) {
52
+ this.renderer.removeChild(this.el.nativeElement, ripple);
53
+ }
54
+ const index = this.activeRipples.indexOf(ripple);
55
+ if (index > -1) {
56
+ this.activeRipples.splice(index, 1);
57
+ }
58
+ }, duration);
59
+ }
60
+ ngOnDestroy() {
61
+ // Clean up any remaining ripples
62
+ this.activeRipples.forEach(ripple => {
63
+ if (ripple.parentNode) {
64
+ this.renderer.removeChild(this.el.nativeElement, ripple);
65
+ }
66
+ });
67
+ this.activeRipples = [];
68
+ if (this.touchTimeout) {
69
+ clearTimeout(this.touchTimeout);
70
+ }
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsRippleDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
73
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: SdsRippleDirective, isStandalone: true, selector: "[sdsRipple]", inputs: { sdsRippleColor: "sdsRippleColor", sdsRippleDuration: "sdsRippleDuration", sdsRippleMaxConcurrent: "sdsRippleMaxConcurrent" }, host: { listeners: { "touchstart": "onTouchStart($event)", "mousedown": "onMouseDown($event)" }, properties: { "class.sds-ripple-container": "this.addContainer", "style.position": "this.position", "style.overflow": "this.overflow" } }, ngImport: i0 }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsRippleDirective, decorators: [{
76
+ type: Directive,
77
+ args: [{
78
+ selector: '[sdsRipple]',
79
+ standalone: true,
80
+ }]
81
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { sdsRippleColor: [{
82
+ type: Input
83
+ }], sdsRippleDuration: [{
84
+ type: Input
85
+ }], sdsRippleMaxConcurrent: [{
86
+ type: Input
87
+ }], addContainer: [{
88
+ type: HostBinding,
89
+ args: ['class.sds-ripple-container']
90
+ }], position: [{
91
+ type: HostBinding,
92
+ args: ['style.position']
93
+ }], overflow: [{
94
+ type: HostBinding,
95
+ args: ['style.overflow']
96
+ }], onTouchStart: [{
97
+ type: HostListener,
98
+ args: ['touchstart', ['$event']]
99
+ }], onMouseDown: [{
100
+ type: HostListener,
101
+ args: ['mousedown', ['$event']]
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyxrQkFBa0I7SUFZM0IsWUFDWSxFQUFjLEVBQ2QsUUFBbUI7UUFEbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFidEIsbUJBQWMsR0FBVywwQkFBMEIsQ0FBQztRQUNwRCxzQkFBaUIsR0FBVyxHQUFHLENBQUM7UUFDaEMsMkJBQXNCLEdBQVcsQ0FBQyxDQUFDO1FBRUQsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDaEMsYUFBUSxHQUFHLFVBQVUsQ0FBQztRQUN0QixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTNDLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBR0osWUFBWSxDQUFDLEtBQWlCO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBR0QsV0FBVyxDQUFDLEtBQWlCO1FBQ3pCLDZCQUE2QjtRQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWUsRUFBRSxPQUFlO1FBQ2pELDBDQUEwQztRQUMxQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEQsSUFBSSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDTCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsTUFBTSxDQUFDLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxXQUFXO1FBQ1AsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDOytHQXJGUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3VHQUVZLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFcUMsWUFBWTtzQkFBdEQsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBQ1YsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ0UsUUFBUTtzQkFBdEMsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBVzdCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU3RDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3Nkc1JpcHBsZV0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkc1JpcHBsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBzZHNSaXBwbGVDb2xvcjogc3RyaW5nID0gJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSc7XHJcbiAgICBASW5wdXQoKSBzZHNSaXBwbGVEdXJhdGlvbjogbnVtYmVyID0gNjAwO1xyXG4gICAgQElucHV0KCkgc2RzUmlwcGxlTWF4Q29uY3VycmVudDogbnVtYmVyID0gMztcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNkcy1yaXBwbGUtY29udGFpbmVyJykgYWRkQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIEBIb3N0QmluZGluZygnc3R5bGUucG9zaXRpb24nKSBwb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XHJcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm92ZXJmbG93Jykgb3ZlcmZsb3cgPSAnaGlkZGVuJztcclxuXHJcbiAgICBwcml2YXRlIGFjdGl2ZVJpcHBsZXM6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuICAgIHByaXZhdGUgdG91Y2hUaW1lb3V0OiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcclxuICAgICkge31cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICAgIG9uVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC50b3VjaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVJpcHBsZSh0b3VjaC5jbGllbnRYLCB0b3VjaC5jbGllbnRZKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgLy8gT25seSB0cmlnZ2VyIG9uIGxlZnQgY2xpY2tcclxuICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9PSAwKSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jcmVhdGVSaXBwbGUoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVSaXBwbGUoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpIHtcclxuICAgICAgICAvLyBSZW1vdmUgb2xkZXN0IHJpcHBsZSBpZiBhdCBtYXggY2FwYWNpdHlcclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVSaXBwbGVzLmxlbmd0aCA+PSB0aGlzLnNkc1JpcHBsZU1heENvbmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgY29uc3Qgb2xkZXN0UmlwcGxlID0gdGhpcy5hY3RpdmVSaXBwbGVzLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgIGlmIChvbGRlc3RSaXBwbGU/LnBhcmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBvbGRlc3RSaXBwbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByaXBwbGUgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJpcHBsZSwgJ3Nkcy1yaXBwbGUnKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb25zdCBzaXplID0gTWF0aC5tYXgocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpICogMjtcclxuICAgICAgICBjb25zdCB4ID0gY2xpZW50WCAtIHJlY3QubGVmdCAtIHNpemUgLyAyO1xyXG4gICAgICAgIGNvbnN0IHkgPSBjbGllbnRZIC0gcmVjdC50b3AgLSBzaXplIC8gMjtcclxuXHJcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSBNYXRoLm1pbih0aGlzLnNkc1JpcHBsZUR1cmF0aW9uLCAxMjAwKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGUsICd3aWR0aCcsIGAke3NpemV9cHhgKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZSwgJ2hlaWdodCcsIGAke3NpemV9cHhgKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJpcHBsZSwgJ2xlZnQnLCBgJHt4fXB4YCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGUsICd0b3AnLCBgJHt5fXB4YCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGUsICdiYWNrZ3JvdW5kLWNvbG9yJywgdGhpcy5zZHNSaXBwbGVDb2xvcik7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyaXBwbGUsICdhbmltYXRpb24tZHVyYXRpb24nLCBgJHtkdXJhdGlvbn1tc2ApO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgcmlwcGxlKTtcclxuICAgICAgICB0aGlzLmFjdGl2ZVJpcHBsZXMucHVzaChyaXBwbGUpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJpcHBsZS5wYXJlbnROb2RlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgcmlwcGxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYWN0aXZlUmlwcGxlcy5pbmRleE9mKHJpcHBsZSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVJpcHBsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIGR1cmF0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICAvLyBDbGVhbiB1cCBhbnkgcmVtYWluaW5nIHJpcHBsZXNcclxuICAgICAgICB0aGlzLmFjdGl2ZVJpcHBsZXMuZm9yRWFjaChyaXBwbGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmlwcGxlLnBhcmVudE5vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCByaXBwbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVSaXBwbGVzID0gW107XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMudG91Y2hUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRvdWNoVGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpY2FpbnRlcm5hdGlvbmFsLW5neC1zZHMtY29tcG9uZW50cy1zcmMtbGliLXJpcHBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL3JpcHBsZS9zcGljYWludGVybmF0aW9uYWwtbmd4LXNkcy1jb21wb25lbnRzLXNyYy1saWItcmlwcGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -1,10 +1,12 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { FaIconComponent } from '@fortawesome/angular-fontawesome';
3
3
  import { NgClass, NgFor, NgIf } from '@angular/common';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SdsSegmentedControlComponent {
6
- constructor() {
6
+ constructor(cdr) {
7
+ this.cdr = cdr;
7
8
  this.segmentPadding = 'loose';
9
+ this.enableAnimation = true;
8
10
  this.itemChange = new EventEmitter();
9
11
  this.valueChange = new EventEmitter();
10
12
  this.valueExpr = 'value';
@@ -13,16 +15,58 @@ export class SdsSegmentedControlComponent {
13
15
  this.style = 'default';
14
16
  }
15
17
  ngOnInit() { }
18
+ ngAfterViewInit() {
19
+ if (this.enableAnimation) {
20
+ this.updateClipPath();
21
+ }
22
+ }
23
+ ngOnChanges(changes) {
24
+ if ((changes['value'] || changes['enableClipPathAnimation']) && this.enableAnimation) {
25
+ // Use a longer timeout to ensure the DOM is updated
26
+ setTimeout(() => this.updateClipPath(), 50);
27
+ }
28
+ }
16
29
  selectItem(item, event) {
17
30
  event.stopPropagation();
18
31
  if (!this.disabled) {
19
32
  this.value = item[this.valueExpr];
20
33
  this.valueChange.emit(this.value);
21
34
  this.itemChange.emit(item);
35
+ if (this.enableAnimation) {
36
+ this.cdr.detectChanges();
37
+ this.updateClipPath();
38
+ }
22
39
  }
23
40
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsSegmentedControlComponent, isStandalone: true, selector: "sds-segmented-control", inputs: { items: "items", value: "value", valueExpr: "valueExpr", displayExpr: "displayExpr", iconExpr: "iconExpr", tooltipExpr: "tooltipExpr", idExpr: "idExpr", disabled: "disabled", style: "style", segmentPadding: "segmentPadding" }, outputs: { itemChange: "itemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'sds-segmented-control-primary': style == 'primary',\r\n 'sds-segmented-control-inverted': style == 'inverted'\r\n }\"\r\n >\r\n <div *ngFor=\"let item of items let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"selectItem(item, $event)\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n\r\n <!-- <i *ngIf=\"item.icon\" class=\"{{item.icon}} me-2\"></i> -->\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [".sds-segmented-control-container .segment.tight-padding{padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ updateClipPath() {
42
+ setTimeout(() => {
43
+ const container = this.clipPathContainerRef?.nativeElement;
44
+ if (!container)
45
+ return;
46
+ const activeSegment = container.parentElement?.querySelector(`.segment.selected:not(.segment-overlay)`);
47
+ if (activeSegment && container.parentElement) {
48
+ const parentElement = container.parentElement;
49
+ const computedStyle = window.getComputedStyle(parentElement);
50
+ const paddingLeft = parseFloat(computedStyle.paddingLeft);
51
+ const offsetLeft = activeSegment.offsetLeft - paddingLeft;
52
+ const offsetWidth = activeSegment.offsetWidth;
53
+ const overlayWidth = container.offsetWidth;
54
+ // Only update if we have valid dimensions
55
+ if (offsetWidth === 0 || overlayWidth === 0) {
56
+ // Retry after a short delay if elements aren't rendered yet
57
+ setTimeout(() => this.updateClipPath(), 100);
58
+ return;
59
+ }
60
+ const clipLeft = offsetLeft;
61
+ const clipRight = offsetLeft + offsetWidth;
62
+ const clipLeftPercent = ((clipLeft / overlayWidth) * 100).toFixed(2);
63
+ const clipRightPercent = (100 - (clipRight / overlayWidth) * 100).toFixed(2);
64
+ container.style.clipPath = `inset(0 ${clipRightPercent}% 0 ${clipLeftPercent}% round 4px)`;
65
+ }
66
+ }, 0);
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSegmentedControlComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdsSegmentedControlComponent, isStandalone: true, selector: "sds-segmented-control", inputs: { items: "items", value: "value", valueExpr: "valueExpr", displayExpr: "displayExpr", iconExpr: "iconExpr", tooltipExpr: "tooltipExpr", idExpr: "idExpr", disabled: "disabled", style: "style", segmentPadding: "segmentPadding", enableAnimation: "enableAnimation" }, outputs: { itemChange: "itemChange", valueChange: "valueChange" }, viewQueries: [{ propertyName: "clipPathContainerRef", first: true, predicate: ["clipPathContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'sds-segmented-control-primary': style == 'primary',\r\n 'sds-segmented-control-inverted': style == 'inverted',\r\n 'clip-path-enabled': enableAnimation\r\n }\">\r\n \r\n <div *ngFor=\"let item of items; let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"selectItem(item, $event)\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"enableAnimation\" \r\n class=\"sds-clip-path-overlay\" \r\n #clipPathContainer \r\n aria-hidden=\"true\">\r\n <div *ngFor=\"let item of items; let last = last;\" \r\n class=\"segment segment-overlay\" \r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [tabIndex]=\"-1\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".sds-segmented-control-container .segment.tight-padding{padding-left:.5rem;padding-right:.5rem}.sds-segmented-control-container{display:inline-block;padding:max(.125rem,2px);border-style:solid;border-width:1px;border-radius:6px;border-color:#ced4da;background-color:#fff;font-size:.9rem;position:relative;white-space:nowrap}.sds-segmented-control-container .disabled{pointer-events:none;opacity:.5;background:#ced4da}.sds-segmented-control-container .segment{display:inline-block;border-radius:4px;color:#343434;cursor:pointer;color:#000;font-weight:500;margin-left:auto;margin-right:auto;padding:.25rem 1rem;-webkit-user-select:none;user-select:none}.sds-segmented-control-container .segment.selected{background-color:var(--bs-gray-300)}.sds-segmented-control-container .segment.selected .separator{border-color:transparent}.sds-segmented-control-container .segment:hover:not(.selected){background-color:transparent}.sds-segmented-control-container.disabled{pointer-events:none;opacity:.5;cursor:default}.sds-segmented-control-container.sds-segmented-control-primary .segment.selected{background-color:var(--bs-primary);color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted{background-color:#ced4da;border-color:#ced4da;border-width:0}.sds-segmented-control-container.sds-segmented-control-inverted .segment.selected{background-color:#fff;color:#000}.sds-segmented-control-container.clip-path-enabled .segment.selected{background-color:initial;color:initial}.sds-segmented-control-container .sds-clip-path-overlay{position:absolute;top:max(.125rem,2px);left:max(.125rem,2px);right:max(.125rem,2px);bottom:max(.125rem,2px);display:flex;z-index:1;overflow:hidden;transition:clip-path .25s ease;pointer-events:none;border-radius:4px;background-color:var(--bs-gray-300)}.sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#000;font-weight:500;background:transparent}.sds-segmented-control-container .sds-clip-path-overlay .segment-overlay:hover{background:transparent}.sds-segmented-control-container.sds-segmented-control-primary .sds-clip-path-overlay{background-color:var(--bs-primary)}.sds-segmented-control-container.sds-segmented-control-primary .sds-clip-path-overlay .segment-overlay{color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted .sds-clip-path-overlay{background-color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted .sds-clip-path-overlay .segment-overlay{color:#000}.sds-segmented-control-light .sds-segmented-control-container{background-color:#ced4da;border-color:#ced4da;border-width:0}.sds-segmented-control-light .sds-segmented-control-container .segment.selected{background-color:#fff;color:#000}.sds-segmented-control-light .sds-segmented-control-container .sds-clip-path-overlay{background-color:#fff}.sds-segmented-control-light .sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#000}.sds-segmented-control-primary .sds-segmented-control-container .segment.selected{background-color:var(--bs-primary);color:#fff}.sds-segmented-control-primary .sds-segmented-control-container .sds-clip-path-overlay{background-color:var(--bs-primary)}.sds-segmented-control-primary .sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#fff}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
70
  }
27
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSegmentedControlComponent, decorators: [{
28
72
  type: Component,
@@ -31,8 +75,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
31
75
  NgFor,
32
76
  NgIf,
33
77
  FaIconComponent,
34
- ], template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'sds-segmented-control-primary': style == 'primary',\r\n 'sds-segmented-control-inverted': style == 'inverted'\r\n }\"\r\n >\r\n <div *ngFor=\"let item of items let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"selectItem(item, $event)\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n\r\n <!-- <i *ngIf=\"item.icon\" class=\"{{item.icon}} me-2\"></i> -->\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [".sds-segmented-control-container .segment.tight-padding{padding-left:.5rem;padding-right:.5rem}\n"] }]
35
- }], ctorParameters: () => [], propDecorators: { items: [{
78
+ ], template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [ngClass]=\"{\r\n 'disabled': disabled,\r\n 'sds-segmented-control-primary': style == 'primary',\r\n 'sds-segmented-control-inverted': style == 'inverted',\r\n 'clip-path-enabled': enableAnimation\r\n }\">\r\n \r\n <div *ngFor=\"let item of items; let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"selectItem(item, $event)\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"enableAnimation\" \r\n class=\"sds-clip-path-overlay\" \r\n #clipPathContainer \r\n aria-hidden=\"true\">\r\n <div *ngFor=\"let item of items; let last = last;\" \r\n class=\"segment segment-overlay\" \r\n [class.tight-padding]=\"segmentPadding == 'tight'\"\r\n [tabIndex]=\"-1\">\r\n\r\n <div class=\"sds-flex-row-center gap-2\">\r\n <fa-icon *ngIf=\"iconExpr && item[iconExpr]\" [icon]=\"item[iconExpr]\" [fixedWidth]=\"true\"></fa-icon>\r\n <span *ngIf=\"displayExpr\">{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".sds-segmented-control-container .segment.tight-padding{padding-left:.5rem;padding-right:.5rem}.sds-segmented-control-container{display:inline-block;padding:max(.125rem,2px);border-style:solid;border-width:1px;border-radius:6px;border-color:#ced4da;background-color:#fff;font-size:.9rem;position:relative;white-space:nowrap}.sds-segmented-control-container .disabled{pointer-events:none;opacity:.5;background:#ced4da}.sds-segmented-control-container .segment{display:inline-block;border-radius:4px;color:#343434;cursor:pointer;color:#000;font-weight:500;margin-left:auto;margin-right:auto;padding:.25rem 1rem;-webkit-user-select:none;user-select:none}.sds-segmented-control-container .segment.selected{background-color:var(--bs-gray-300)}.sds-segmented-control-container .segment.selected .separator{border-color:transparent}.sds-segmented-control-container .segment:hover:not(.selected){background-color:transparent}.sds-segmented-control-container.disabled{pointer-events:none;opacity:.5;cursor:default}.sds-segmented-control-container.sds-segmented-control-primary .segment.selected{background-color:var(--bs-primary);color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted{background-color:#ced4da;border-color:#ced4da;border-width:0}.sds-segmented-control-container.sds-segmented-control-inverted .segment.selected{background-color:#fff;color:#000}.sds-segmented-control-container.clip-path-enabled .segment.selected{background-color:initial;color:initial}.sds-segmented-control-container .sds-clip-path-overlay{position:absolute;top:max(.125rem,2px);left:max(.125rem,2px);right:max(.125rem,2px);bottom:max(.125rem,2px);display:flex;z-index:1;overflow:hidden;transition:clip-path .25s ease;pointer-events:none;border-radius:4px;background-color:var(--bs-gray-300)}.sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#000;font-weight:500;background:transparent}.sds-segmented-control-container .sds-clip-path-overlay .segment-overlay:hover{background:transparent}.sds-segmented-control-container.sds-segmented-control-primary .sds-clip-path-overlay{background-color:var(--bs-primary)}.sds-segmented-control-container.sds-segmented-control-primary .sds-clip-path-overlay .segment-overlay{color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted .sds-clip-path-overlay{background-color:#fff}.sds-segmented-control-container.sds-segmented-control-inverted .sds-clip-path-overlay .segment-overlay{color:#000}.sds-segmented-control-light .sds-segmented-control-container{background-color:#ced4da;border-color:#ced4da;border-width:0}.sds-segmented-control-light .sds-segmented-control-container .segment.selected{background-color:#fff;color:#000}.sds-segmented-control-light .sds-segmented-control-container .sds-clip-path-overlay{background-color:#fff}.sds-segmented-control-light .sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#000}.sds-segmented-control-primary .sds-segmented-control-container .segment.selected{background-color:var(--bs-primary);color:#fff}.sds-segmented-control-primary .sds-segmented-control-container .sds-clip-path-overlay{background-color:var(--bs-primary)}.sds-segmented-control-primary .sds-segmented-control-container .sds-clip-path-overlay .segment-overlay{color:#fff}\n"] }]
79
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { clipPathContainerRef: [{
80
+ type: ViewChild,
81
+ args: ['clipPathContainer']
82
+ }], items: [{
36
83
  type: Input
37
84
  }], value: [{
38
85
  type: Input
@@ -52,9 +99,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
52
99
  type: Input
53
100
  }], segmentPadding: [{
54
101
  type: Input
102
+ }], enableAnimation: [{
103
+ type: Input
55
104
  }], itemChange: [{
56
105
  type: Output
57
106
  }], valueChange: [{
58
107
  type: Output
59
108
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWV2RCxNQUFNLE9BQU8sNEJBQTRCO0lBZ0JyQztRQUxTLG1CQUFjLEdBQXNCLE9BQU8sQ0FBQztRQUUzQyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcxRCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFTixVQUFVLENBQUMsSUFBUyxFQUFFLEtBQWlCO1FBQzFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7K0dBakNRLDRCQUE0QjttR0FBNUIsNEJBQTRCLGdZQ3hCekMsKy9CQXVCTSwySkRMRSxPQUFPLG9GQUNQLEtBQUssbUhBQ0wsSUFBSSw2RkFDSixlQUFlOzs0RkFHViw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixlQUFlO3FCQUNsQjt3REFHUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZhSWNvbkNvbXBvbmVudCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Nkcy1zZWdtZW50ZWQtY29udHJvbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBOZ0NsYXNzLFxyXG4gICAgICAgIE5nRm9yLFxyXG4gICAgICAgIE5nSWYsXHJcbiAgICAgICAgRmFJY29uQ29tcG9uZW50LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkc1NlZ21lbnRlZENvbnRyb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgaXRlbXM6IGFueVtdIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICAgIEBJbnB1dCgpIHZhbHVlRXhwcjtcclxuICAgIEBJbnB1dCgpIGRpc3BsYXlFeHByOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSBpY29uRXhwcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgdG9vbHRpcEV4cHI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIGlkRXhwcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgc3R5bGU6ICdkZWZhdWx0JyB8ICdwcmltYXJ5JyB8ICdpbnZlcnRlZCc7XHJcbiAgICBASW5wdXQoKSBzZWdtZW50UGFkZGluZzogJ3RpZ2h0JyB8ICdsb29zZScgPSAnbG9vc2UnO1xyXG5cclxuICAgIEBPdXRwdXQoKSBpdGVtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUV4cHIgPSAndmFsdWUnO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUV4cHIgPSAndGV4dCc7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3R5bGUgPSAnZGVmYXVsdCc7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAgIHB1YmxpYyBzZWxlY3RJdGVtKGl0ZW06IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBpdGVtW3RoaXMudmFsdWVFeHByXTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1DaGFuZ2UuZW1pdChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBcclxuICAgIGNsYXNzPVwic2RzLXNlZ21lbnRlZC1jb250cm9sLWNvbnRhaW5lclwiIFxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgICAgICdzZHMtc2VnbWVudGVkLWNvbnRyb2wtcHJpbWFyeSc6IHN0eWxlID09ICdwcmltYXJ5JyxcclxuICAgICAgICAnc2RzLXNlZ21lbnRlZC1jb250cm9sLWludmVydGVkJzogc3R5bGUgPT0gJ2ludmVydGVkJ1xyXG4gICAgfVwiXHJcbiAgICA+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zIGxldCBsYXN0ID0gbGFzdDtcIiBcclxuICAgICAgICBjbGFzcz1cInNlZ21lbnRcIiBcclxuICAgICAgICBpZD1cInt7aWRFeHByID8gaXRlbVtpZEV4cHJdOiAnJ319XCJcclxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXRlbVt2YWx1ZUV4cHJdID09IHZhbHVlXCJcclxuICAgICAgICBbY2xhc3MudGlnaHQtcGFkZGluZ109XCJzZWdtZW50UGFkZGluZyA9PSAndGlnaHQnXCJcclxuICAgICAgICBbdGl0bGVdPVwidG9vbHRpcEV4cHIgJiYgaXRlbVt0b29sdGlwRXhwcl0gPyBpdGVtW3Rvb2x0aXBFeHByXSA6ICcnXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtLCAkZXZlbnQpXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZHMtZmxleC1yb3ctY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgIDxmYS1pY29uICpuZ0lmPVwiaWNvbkV4cHIgJiYgaXRlbVtpY29uRXhwcl1cIiBbaWNvbl09XCJpdGVtW2ljb25FeHByXVwiIFtmaXhlZFdpZHRoXT1cInRydWVcIj48L2ZhLWljb24+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19IG1lLTJcIj48L2k+IC0tPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRpc3BsYXlFeHByXCI+e3tpdGVtW2Rpc3BsYXlFeHByXX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvc2VnbWVudGVkLWNvbnRyb2wvc2VnbWVudGVkLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFldkQsTUFBTSxPQUFPLDRCQUE0QjtJQWtCckMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFOakMsbUJBQWMsR0FBc0IsT0FBTyxDQUFDO1FBQzVDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRS9CLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzFELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLGVBQWU7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TCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDOytHQTFGUSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvakJDOUJ6Qyx3b0RBc0NNLHl4R0RkRSxPQUFPLG9GQUNQLEtBQUssbUhBQ0wsSUFBSSw2RkFDSixlQUFlOzs0RkFHViw0QkFBNEI7a0JBYnhDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsSUFBSTt3QkFDSixlQUFlO3FCQUNsQjtzRkFHK0Isb0JBQW9CO3NCQUFuRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFFckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLXNlZ21lbnRlZC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWdtZW50ZWQtY29udHJvbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgTmdGb3IsXHJcbiAgICAgICAgTmdJZixcclxuICAgICAgICBGYUljb25Db21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzU2VnbWVudGVkQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBWaWV3Q2hpbGQoJ2NsaXBQYXRoQ29udGFpbmVyJykgY2xpcFBhdGhDb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgICBASW5wdXQoKSBpdGVtczogYW55W10gfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gICAgQElucHV0KCkgdmFsdWVFeHByO1xyXG4gICAgQElucHV0KCkgZGlzcGxheUV4cHI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpIGljb25FeHByOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSB0b29sdGlwRXhwcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgQElucHV0KCkgaWRFeHByOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHN0eWxlOiAnZGVmYXVsdCcgfCAncHJpbWFyeScgfCAnaW52ZXJ0ZWQnO1xyXG4gICAgQElucHV0KCkgc2VnbWVudFBhZGRpbmc6ICd0aWdodCcgfCAnbG9vc2UnID0gJ2xvb3NlJztcclxuICAgIEBJbnB1dCgpIGVuYWJsZUFuaW1hdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQE91dHB1dCgpIGl0ZW1DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgICAgICB0aGlzLnZhbHVlRXhwciA9ICd2YWx1ZSc7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5RXhwciA9ICd0ZXh0JztcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdHlsZSA9ICdkZWZhdWx0JztcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUFuaW1hdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsaXBQYXRoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoKGNoYW5nZXNbJ3ZhbHVlJ10gfHwgY2hhbmdlc1snZW5hYmxlQ2xpcFBhdGhBbmltYXRpb24nXSkgJiYgdGhpcy5lbmFibGVBbmltYXRpb24pIHtcclxuICAgICAgICAgICAgLy8gVXNlIGEgbG9uZ2VyIHRpbWVvdXQgdG8gZW5zdXJlIHRoZSBET00gaXMgdXBkYXRlZFxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ2xpcFBhdGgoKSwgNTApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VsZWN0SXRlbShpdGVtOiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gaXRlbVt0aGlzLnZhbHVlRXhwcl07XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5pdGVtQ2hhbmdlLmVtaXQoaXRlbSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbmFibGVBbmltYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTsgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNsaXBQYXRoKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGlwUGF0aCgpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jbGlwUGF0aENvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVNlZ21lbnQgPSBjb250YWluZXIucGFyZW50RWxlbWVudD8ucXVlcnlTZWxlY3RvcihcclxuICAgICAgICAgICAgICAgIGAuc2VnbWVudC5zZWxlY3RlZDpub3QoLnNlZ21lbnQtb3ZlcmxheSlgXHJcbiAgICAgICAgICAgICkgYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoYWN0aXZlU2VnbWVudCAmJiBjb250YWluZXIucGFyZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGNvbnRhaW5lci5wYXJlbnRFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYWRkaW5nTGVmdCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdCk7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldExlZnQgPSBhY3RpdmVTZWdtZW50Lm9mZnNldExlZnQgLSBwYWRkaW5nTGVmdDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFdpZHRoID0gYWN0aXZlU2VnbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSBpZiB3ZSBoYXZlIHZhbGlkIGRpbWVuc2lvbnNcclxuICAgICAgICAgICAgICAgIGlmIChvZmZzZXRXaWR0aCA9PT0gMCB8fCBvdmVybGF5V2lkdGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBSZXRyeSBhZnRlciBhIHNob3J0IGRlbGF5IGlmIGVsZW1lbnRzIGFyZW4ndCByZW5kZXJlZCB5ZXRcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlQ2xpcFBhdGgoKSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpcExlZnQgPSBvZmZzZXRMZWZ0O1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpcFJpZ2h0ID0gb2Zmc2V0TGVmdCArIG9mZnNldFdpZHRoO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwTGVmdFBlcmNlbnQgPSAoKGNsaXBMZWZ0IC8gb3ZlcmxheVdpZHRoKSAqIDEwMCkudG9GaXhlZCgyKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsaXBSaWdodFBlcmNlbnQgPSAoMTAwIC0gKGNsaXBSaWdodCAvIG92ZXJsYXlXaWR0aCkgKiAxMDApLnRvRml4ZWQoMik7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5jbGlwUGF0aCA9IGBpbnNldCgwICR7Y2xpcFJpZ2h0UGVyY2VudH0lIDAgJHtjbGlwTGVmdFBlcmNlbnR9JSByb3VuZCA0cHgpYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDApO1xyXG4gICAgfVxyXG59IiwiPGRpdiBcclxuICAgIGNsYXNzPVwic2RzLXNlZ21lbnRlZC1jb250cm9sLWNvbnRhaW5lclwiIFxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkLFxyXG4gICAgICAgICdzZHMtc2VnbWVudGVkLWNvbnRyb2wtcHJpbWFyeSc6IHN0eWxlID09ICdwcmltYXJ5JyxcclxuICAgICAgICAnc2RzLXNlZ21lbnRlZC1jb250cm9sLWludmVydGVkJzogc3R5bGUgPT0gJ2ludmVydGVkJyxcclxuICAgICAgICAnY2xpcC1wYXRoLWVuYWJsZWQnOiBlbmFibGVBbmltYXRpb25cclxuICAgIH1cIj5cclxuICAgIFxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGxhc3QgPSBsYXN0O1wiIFxyXG4gICAgICAgIGNsYXNzPVwic2VnbWVudFwiIFxyXG4gICAgICAgIGlkPVwie3tpZEV4cHIgPyBpdGVtW2lkRXhwcl06ICcnfX1cIlxyXG4gICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpdGVtW3ZhbHVlRXhwcl0gPT0gdmFsdWVcIlxyXG4gICAgICAgIFtjbGFzcy50aWdodC1wYWRkaW5nXT1cInNlZ21lbnRQYWRkaW5nID09ICd0aWdodCdcIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0b29sdGlwRXhwciAmJiBpdGVtW3Rvb2x0aXBFeHByXSA/IGl0ZW1bdG9vbHRpcEV4cHJdIDogJydcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0sICRldmVudClcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNkcy1mbGV4LXJvdy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGZhLWljb24gKm5nSWY9XCJpY29uRXhwciAmJiBpdGVtW2ljb25FeHByXVwiIFtpY29uXT1cIml0ZW1baWNvbkV4cHJdXCIgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiPjwvZmEtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkaXNwbGF5RXhwclwiPnt7aXRlbVtkaXNwbGF5RXhwcl19fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJlbmFibGVBbmltYXRpb25cIiBcclxuICAgICAgICAgY2xhc3M9XCJzZHMtY2xpcC1wYXRoLW92ZXJsYXlcIiBcclxuICAgICAgICAgI2NsaXBQYXRoQ29udGFpbmVyIFxyXG4gICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgbGFzdCA9IGxhc3Q7XCIgXHJcbiAgICAgICAgICAgIGNsYXNzPVwic2VnbWVudCBzZWdtZW50LW92ZXJsYXlcIiBcclxuICAgICAgICAgICAgW2NsYXNzLnRpZ2h0LXBhZGRpbmddPVwic2VnbWVudFBhZGRpbmcgPT0gJ3RpZ2h0J1wiXHJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNkcy1mbGV4LXJvdy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uICpuZ0lmPVwiaWNvbkV4cHIgJiYgaXRlbVtpY29uRXhwcl1cIiBbaWNvbl09XCJpdGVtW2ljb25FeHByXVwiIFtmaXhlZFdpZHRoXT1cInRydWVcIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRpc3BsYXlFeHByXCI+e3tpdGVtW2Rpc3BsYXlFeHByXX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -26,11 +26,11 @@ export class SdsSideBarComponent {
26
26
  this.isCollapsed.set(!this.isCollapsed());
27
27
  }
28
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSideBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: SdsSideBarComponent, isStandalone: true, selector: "sds-side-bar", inputs: { widthRem: { classPropertyName: "widthRem", publicName: "widthRem", isSignal: false, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: false, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsed: "isCollapsedChange" }, ngImport: i0, template: "<div \r\n class=\"sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\" \r\n [class.disable-transition]=\"!isCollapsed()\"\r\n >\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\"\r\n >\r\n <div class=\"d-flex flex-column flex-grow-0 h-100 w-100x\" \r\n style=\"transition: none\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n >\r\n <ng-content></ng-content> \r\n </div>\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.2s ease-in-out;overflow-x:hidden;z-index:10;position:relative}.sds-side-bar.disable-transition{transition:none}:host{display:block}\n"] }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: SdsSideBarComponent, isStandalone: true, selector: "sds-side-bar", inputs: { widthRem: { classPropertyName: "widthRem", publicName: "widthRem", isSignal: false, isRequired: false, transformFunction: null }, product: { classPropertyName: "product", publicName: "product", isSignal: false, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsed: "isCollapsedChange" }, ngImport: i0, template: "<div \r\n class=\"sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\" \r\n [class.disable-transition]=\"!isCollapsed()\"\r\n >\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\"\r\n >\r\n <div class=\"d-flex flex-column flex-grow-0 h-100 w-100x\" \r\n style=\"transition: none\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n >\r\n <ng-content></ng-content> \r\n </div>\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.2s ease-out;overflow-x:hidden;z-index:10;position:relative}.sds-side-bar.disable-transition{transition:none}:host{display:block}\n"] }); }
30
30
  }
31
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdsSideBarComponent, decorators: [{
32
32
  type: Component,
33
- args: [{ selector: 'sds-side-bar', standalone: true, imports: [NgIf, NgStyle, FaIconComponent], template: "<div \r\n class=\"sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\" \r\n [class.disable-transition]=\"!isCollapsed()\"\r\n >\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\"\r\n >\r\n <div class=\"d-flex flex-column flex-grow-0 h-100 w-100x\" \r\n style=\"transition: none\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n >\r\n <ng-content></ng-content> \r\n </div>\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.2s ease-in-out;overflow-x:hidden;z-index:10;position:relative}.sds-side-bar.disable-transition{transition:none}:host{display:block}\n"] }]
33
+ args: [{ selector: 'sds-side-bar', standalone: true, imports: [NgIf, NgStyle, FaIconComponent], template: "<div \r\n class=\"sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\" \r\n [class.disable-transition]=\"!isCollapsed()\"\r\n >\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-side-bar-open]=\"!isCollapsed()\"\r\n >\r\n <div class=\"d-flex flex-column flex-grow-0 h-100 w-100x\" \r\n style=\"transition: none\"\r\n [style.width.rem]=\"!isCollapsed() ? widthRem : 3.5\"\r\n >\r\n <ng-content></ng-content> \r\n </div>\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.2s ease-out;overflow-x:hidden;z-index:10;position:relative}.sds-side-bar.disable-transition{transition:none}:host{display:block}\n"] }]
34
34
  }], ctorParameters: () => [], propDecorators: { widthRem: [{
35
35
  type: Input
36
36
  }], product: [{