@cbpds/web-components
Version:
Web components for the CBP Design System.
60 lines (54 loc) • 2.91 kB
JavaScript
/*!
* CPB Design System web components - built with Stencil
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const index = require('./index-cd71cbd5.js');
const utils = require('./utils-99c9e716.js');
const cbpGridCss = ":root{--cbp-grid-linearized-margin:0}cbp-grid:not([hidden]){display:grid;max-width:100%}cbp-grid:not([hidden]).cbp-grid-linearized{display:block !important}cbp-grid:not([hidden]).cbp-grid-linearized>*{margin-block-end:var(--cbp-grid-linearized-margin)}";
const CbpGridStyle0 = cbpGridCss;
const CbpGrid = class {
constructor(hostRef) {
index.registerInstance(this, hostRef);
this.display = 'grid';
this.gridTemplateAreas = undefined;
this.gridTemplateColumns = undefined;
this.gridTemplateRows = undefined;
this.gridAutoFlow = undefined;
this.gridAutoColumns = undefined;
this.gridAutoRows = undefined;
this.alignItems = undefined;
this.justifyItems = undefined;
this.alignContent = undefined;
this.justifyContent = undefined;
this.gap = undefined;
this.breakpoint = undefined;
this.sx = {};
}
handleBreakpointChange(mql) {
mql.matches ? this.host.classList.add('cbp-grid-linearized') : this.host.classList.remove('cbp-grid-linearized');
}
componentWillLoad() {
var _a;
if (typeof this.sx == 'string') {
this.sx = JSON.parse(this.sx) || {};
}
utils.setCSSProps(this.host, Object.assign({ 'display': this.display, 'grid-template-areas': this.gridTemplateAreas, 'grid-template-columns': this.gridTemplateColumns, 'grid-template-rows': this.gridTemplateRows, 'grid-auto-flow': this.gridAutoFlow, 'grid-auto-columns': this.gridAutoColumns, 'grid-auto-rows': this.gridAutoRows, 'align-content': this.alignContent, 'justify-content': this.justifyContent, 'align-items': this.alignItems, 'justify-items': this.justifyItems, 'grid-gap': this.gap, '--cbp-grid-linearized-margin': this.gap != undefined ? (_a = this.gap.split(' ')) === null || _a === void 0 ? void 0 : _a[0] : undefined }, this.sx));
}
componentDidLoad() {
if (this.breakpoint) {
const mediaQueryList = window === null || window === void 0 ? void 0 : window.matchMedia(`(max-width: ${this.breakpoint})`);
if (mediaQueryList) {
mediaQueryList.addEventListener('change', mql => this.handleBreakpointChange(mql));
this.handleBreakpointChange(mediaQueryList);
}
}
}
render() {
return (index.h(index.Host, { key: 'c788a59a27dca9f0867a297097ceb04029d943f3' }, index.h("slot", { key: '2ba6d5b5162c3da7e198962d792a2f027a809571' })));
}
get host() { return index.getElement(this); }
};
CbpGrid.style = CbpGridStyle0;
exports.cbp_grid = CbpGrid;
//# sourceMappingURL=cbp-grid.cjs.entry.js.map