@carbon/ibm-products-web-components
Version:
Carbon for IBM Products Web Components
98 lines (96 loc) • 3.36 kB
JavaScript
/**
* Copyright IBM Corp. 2020, 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
import "../../globals/settings.js";
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js";
import { tearsheetSignal } from "./tearsheet-signal.js";
import { classMap } from "lit/directives/class-map.js";
import { css, html } from "lit";
import { property } from "lit/decorators.js";
import '@carbon/web-components/es-custom/components/button/index.js';
import { carbonElement } from "@carbon/web-components/es/globals/decorators/carbon-element.js";
import { iconLoader } from "@carbon/web-components/es/globals/internal/icon-loader.js";
import '@carbon/web-components/es-custom/components/icon-button/index.js';
import Chevron20 from "@carbon/icons/es/chevron--up/20";
import '@carbon/web-components/es-custom/components/popover/popover-content.js';
import CDSButton from "@carbon/web-components/es/components/button/button";
//#region src/components/tearsheet-preview/tearsheet-scroller.ts
/**
* @license
*
* Copyright IBM Corp. 2026
*
* This source code is licensed under the Apache-2.0 license found in the
* LICENSE file in the root directory of this source tree.
*/
const blockClass = `c4p--tearsheet__next`;
let CDSTearsheetScroller = class CDSTearsheetScroller extends CDSButton {
constructor(..._args) {
super(..._args);
this.slot = "scroller";
this.align = "left";
this.collapseText = "Collapse";
this.expandText = "Expand";
this.size = "md";
this._handleScroller = () => {
const { fullyCollapsed } = tearsheetSignal.get();
tearsheetSignal.set({
...tearsheetSignal.get(),
fullyCollapsed: !fullyCollapsed
});
};
}
_renderTooltipContent() {
return html`
<cds-custom-tooltip-content>
<slot name="tooltip-content"></slot>
</cds-custom-tooltip-content>
`;
}
render() {
const { fullyCollapsed } = tearsheetSignal.get();
return html`<cds-custom-icon-button
kind="ghost"
size="md"
class=${classMap({
[`scroller-collapsed`]: !!fullyCollapsed,
[`${blockClass}__scroller-button`]: true
})}
@click=${this._handleScroller}
>
${iconLoader(Chevron20, { slot: "icon" })}
<span slot="tooltip-content">
${fullyCollapsed ? this.expandText : this.collapseText}
</span>
</cds-custom-icon-button>`;
}
static {
this.styles = css`
.scroller-collapsed svg {
transform: rotate(180deg);
}
`;
}
};
__decorate([property({ reflect: true })], CDSTearsheetScroller.prototype, "slot", void 0);
__decorate([property({
reflect: true,
type: String
})], CDSTearsheetScroller.prototype, "align", void 0);
__decorate([property({
reflect: true,
type: String
})], CDSTearsheetScroller.prototype, "collapseText", void 0);
__decorate([property({
reflect: true,
type: String
})], CDSTearsheetScroller.prototype, "expandText", void 0);
__decorate([property({ reflect: true })], CDSTearsheetScroller.prototype, "size", void 0);
CDSTearsheetScroller = __decorate([carbonElement(`c4p-tearsheet-scroller`)], CDSTearsheetScroller);
var tearsheet_scroller_default = CDSTearsheetScroller;
//#endregion
export { CDSTearsheetScroller, tearsheet_scroller_default as default };
//# sourceMappingURL=tearsheet-scroller.js.map