@postnord/web-components
Version:
PostNord Web Components
54 lines (49 loc) • 3.86 kB
JavaScript
/*!
* Built with Stencil
* By PostNord.
*/
;
var index = require('./index-CfUQZtlH.js');
var arrow_right = require('./arrow_right-CABi9Wkp.js');
const pnPageNavDropdownItemCss = () => `${index.transformTag("pn-page-nav-dropdown-item")}:first-of-type li>a,${index.transformTag("pn-page-nav-dropdown-item")}:first-of-type li>button{border-radius:0.5em 0.5em 0 0}${index.transformTag("pn-page-nav-dropdown-item")}:last-of-type li>a,${index.transformTag("pn-page-nav-dropdown-item")}:last-of-type li>button{border-radius:0 0 0.5em 0.5em}${index.transformTag("pn-page-nav-dropdown-item")}:last-of-type li>hr{display:none}${index.transformTag("pn-page-nav-dropdown-item")} li{font-size:inherit}${index.transformTag("pn-page-nav-dropdown-item")} li>*{color:#ffffff;font-size:inherit;border:none;padding:1em;margin:0;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background 0.15s;outline:none;width:100%;font-weight:500}${index.transformTag("pn-page-nav-dropdown-item")} li>*>${index.transformTag("pn-icon")}{margin-left:1em}${index.transformTag("pn-page-nav-dropdown-item")} li>*.pn-page-nav-dropdown-item-active{background:#005d92}${index.transformTag("pn-page-nav-dropdown-item")} li>*.pn-page-nav-dropdown-item-active:hover,${index.transformTag("pn-page-nav-dropdown-item")} li>*.pn-page-nav-dropdown-item-active:focus{background:#005d92}${index.transformTag("pn-page-nav-dropdown-item")} li>*:hover,${index.transformTag("pn-page-nav-dropdown-item")} li>*:focus{background:#0d234b}${index.transformTag("pn-page-nav-dropdown-item")} li>*:focus{box-shadow:inset 0 0 0 0.1em #005d92, inset 0 0 0 0.2em #d3cecb}${index.transformTag("pn-page-nav-dropdown-item")} li>a{text-decoration:none}${index.transformTag("pn-page-nav-dropdown-item")} li>button{background:none}${index.transformTag("pn-page-nav-dropdown-item")} li>hr{bottom:0;padding:0;margin:0 auto;border-top:0.0625em solid #d3cecb;opacity:0.6;width:85%}`;
const PnPageNavDropdownItem = class {
constructor(hostRef) {
index.registerInstance(this, hostRef);
this.itemselection = index.createEvent(this, "itemselection");
}
get hostElement() { return index.getElement(this); }
/**
* The value that will be emitted upon selection, only pass this if the item
* is a link, if you want a button (for quick actions), omit this prop.
*/
value;
/** Pass an href to the items if you want to have links that lead outside of your app */
href;
/** Ignore this, it's internal communication with parent. @hide true */
active = false;
/** Ignore this, it's internal communication with parent */
itemselection;
select(e) {
if (this.value && !this.href)
e.preventDefault();
this.itemselection.emit(this.value);
}
setClassnames() {
let classes = 'pn-page-nav-dropdown-item ';
if (this.active)
classes += 'pn-page-nav-dropdown-item-active ';
return classes;
}
getType() {
return this.value ? null : 'button';
}
getTagName() {
return this.value ? 'a' : 'button';
}
render() {
const TagName = this.getTagName();
return (index.h("li", { key: 'a4ca23ac5a53d78c87f2c955c3da18372a7d572d' }, index.h(TagName, { key: '20639a9f58133cf65d8719943d9d11630166b8d4', href: this.href || '#', class: this.setClassnames(), type: this.getType(), onClick: e => this.select(e), tabindex: "-1" }, index.h("slot", { key: '5440c1e919238f6aaa55ca9df2dec18ebbce2f83' }), index.h("pn-icon", { key: 'ff16474c7bc9fc6664c64c5b4567e88a88bd29fb', icon: arrow_right.arrow_right, color: "white" })), index.h("hr", { key: '5201ae642f54f3ad7b157762dedfddb08d865486' })));
}
};
PnPageNavDropdownItem.style = pnPageNavDropdownItemCss();
exports.pn_page_nav_dropdown_item = PnPageNavDropdownItem;