@xplortech/apollo-core 1.0.0-beta.16 → 1.0.0-beta.17

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.
@@ -1 +0,0 @@
1
- {"version":3,"names":["XplAvatar","render","className","this","size","color","inner","h","src","alt","name","class","status","Host","href","disabled","target","XplBadge","dot","variant","XplBreadcrumbItem","constructor","hostRef","chevron","role","innerHTML","XplBreadcrumbs","XplButton","componentDidRender","attrs","el","attributes","dataAttrs","Object","keys","filter","k","propertyName","includes","reduce","acc","assign","value","child","querySelector","forEach","setAttribute","removeAttribute","state","iconOnly","fullWidth","link","type","XplCheckbox","uuid","styled","checked","id","indeterminate","onChange","checkboxChange","emit","input","ref","required","htmlFor","description","XplContentArea","XplDashboard","XplDataCard","watchStat","newValue","stat","watchShortStat","shortStat","componentDidLoad","anchorEl","getElementsByTagName","anchorText","document","createTextNode","anchorSpan","createElement","appendChild","bgColorHue","headerClasses","icon","tabindex","title","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","i","fromCharCode","order2","map","n","join","test3","split","letter","err","objectAssign","source","from","to","symbols","s","arguments","length","key","call","DEFAULT_HEIGHT","data","htmlAttributes","defaultOptions","options","attrObj","parseInt","trim","option","push","symbol","height","heights","version","width","viewBox","toSVG","naturalHeight","closestNaturalHeight","path","apolloIcons","naturalHeights","xplIconCss","XplIcon","wrapperClasses","backgroundColor","style","octicons","XplNavItem","onNavToggle","window","innerWidth","navOpen","onClick","navControl","XplRadio","radioChange","XplSecondaryNav","XplTable","selectAllValue","Math","random","toString","slice","isSelectedValuesSet","_a","selectedValues","selectAll","e","HTMLInputElement","areAllSelected","selected","Array","querySelectorAll","selectOne","checkboxIdx","v","selectedIdx","tableSelect","onScroll","hasScrolled","container","scrollLeft","setData","rowData","watchData","componentWillLoad","fill","striped","freeze","columns","column","multiselect","some","a","row","rowNum","cell","XplUtilityBar","open","isNavOpenAtStartup"],"sources":["./src/components/components/xpl-avatar/xpl-avatar.tsx","./src/components/components/xpl-badge/xpl-badge.tsx","./src/components/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.tsx","./src/components/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.tsx","./src/components/components/xpl-button/xpl-button.tsx","./src/components/components/xpl-checkbox/xpl-checkbox.tsx","./src/components/components/xpl-content-area/xpl-content-area.tsx","./src/components/components/xpl-dashboard/xpl-dashboard.tsx","./src/components/components/xpl-data-card/xpl-data-card.tsx","./node_modules/object-assign/index.js","./node_modules/@xplortech/apollo-icons/index.js","./src/components/components/xpl-icon/xpl-icon.css?tag=xpl-icon","./src/components/components/xpl-icon/xpl-icon.tsx","./src/components/components/xpl-nav-item/xpl-nav-item.tsx","./src/components/components/xpl-radio/xpl-radio.tsx","./src/components/components/xpl-secondary-nav/xpl-secondary-nav.tsx","./src/components/components/xpl-table/xpl-table.tsx","./src/components/components/xpl-utility-bar/xpl-utility-bar.tsx"],"sourcesContent":["import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xpl-avatar',\n})\nexport class XplAvatar {\n @Prop() color?: 'green' | 'yellow' | 'pink' | 'primary' | 'secondary';\n @Prop() disabled?: boolean = false;\n @Prop() href?: string;\n @Prop() name?: string;\n @Prop() size?: 'md' | 'sm';\n @Prop() src?: string;\n @Prop() status?: 'active' | 'warning' | 'inactive';\n @Prop() target?: string;\n\n render() {\n let className = 'xpl-avatar';\n if (this.size) className += ` xpl-avatar--${this.size}`;\n if (this.color) className += ` xpl-avatar--${this.color}`;\n\n const inner = (\n <div>\n {this.src ? (\n <img alt={this.name} src={this.src} />\n ) : (\n <div class=\"xpl-avatar__placeholder\">\n <slot></slot>\n </div>\n )}\n {this.status && (\n <div class={`xpl-avatar__dot--${this.status}`}></div>\n )}\n </div>\n );\n\n return (\n <Host>\n {this.href && !this.disabled ? (\n <a href={this.href} class={className} target={this.target}>\n {inner}\n </a>\n ) : this.href && this.disabled ? (\n <div class={className + ' xpl-avatar--disabled'}>\n {inner}\n </div>\n ) : (\n <div class={className}>{inner}</div>\n )}\n </Host>\n );\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xpl-badge',\n})\nexport class XplBadge {\n @Prop() dot?: boolean;\n @Prop() variant?: 'success' | 'warning' | 'inactive' | 'error';\n\n render() {\n let className = 'xpl-badge';\n if (this.dot) className += ' xpl-badge--dot';\n if (this.variant) className += ' xpl-badge--' + this.variant;\n\n return (\n <Host>\n <div class={className}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot unnamed - content rendered inside <li>, should be link or button (styled as link)\n */\n@Component({\n tag: 'xpl-breadcrumb-item',\n})\nexport class XplBreadcrumbItem {\n // This is temporary as we still don't have a xpl-icon component. When that's created we should update this code.\n private chevron = `<svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"chevron-right\" class=\"svg-inline--fa fa-chevron-right fa-w-10\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 512\">\n <path fill=\"currentColor\" d=\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"></path>\n </svg>\n `;\n\n render() {\n return (\n <Host class=\"xpl-breadcrumb-item\" role=\"listitem\">\n <li role=\"none\">\n <slot></slot>\n </li>\n <span innerHTML={`${this.chevron}`} />\n </Host>\n );\n }\n}\n","import { Component, Host, h } from '@stencil/core';\n\n/**\n * @slot unnamed - content rendered <ol>, should be a group of <li> or <xpl-breadcrumb-item>\n */\n@Component({\n tag: 'xpl-breadcrumbs',\n})\nexport class XplBreadcrumbs {\n render() {\n return (\n <Host>\n <nav class=\"xpl-breadcrumbs\" aria-label=\"Breadcrumb\">\n <ol role=\"list\">\n <slot></slot>\n </ol>\n </nav>\n </Host>\n );\n }\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\n@Component({\n tag: 'xpl-button',\n})\nexport class XplButton {\n @Element() el: HTMLXplButtonElement;\n /**\n * whether button should be disabled\n */\n @Prop() disabled?: boolean;\n /**\n * whether button should yield a slot for a link tag\n */\n @Prop() link?: boolean;\n /**\n * whether button should render icon only\n */\n @Prop() iconOnly?: boolean;\n /**\n * whether button should render with full width\n */\n @Prop() fullWidth?: boolean;\n /**\n * @property {string} - button name attribute\n */\n @Prop() name?: string;\n /**\n * @property {\"default\" | \"sm\" | \"xs\"} - button size\n */\n @Prop() size: 'default' | 'sm' | 'xs' = 'default';\n /**\n * @property {\"submit\" | \"reset\" | \"button\"} - button type attribute\n */\n @Prop() type?: 'submit' | 'reset' | 'button';\n /**\n * @property {string} - button value attribute\n */\n @Prop() value?: string;\n /**\n * @property {\"primary\" | \"secondary\" | \"subtle\"} - button variant\n */\n @Prop() variant: 'primary' | 'secondary' | 'subtle' = 'primary';\n /**\n * @property {\"neutral\" | \"warning\" | \"success\"} - button state (color) neutral=purple, success=green, warning=red\n */\n @Prop() state: 'neutral' | 'warning' | 'success' = 'neutral';\n\n componentDidRender() {\n const attrs = this.el.attributes;\n const dataAttrs = Object.keys(attrs)\n .filter((k) => {\n const propertyName = attrs[k].name;\n if (propertyName) {\n return (\n propertyName.includes('data-test') ||\n propertyName.includes('aria-')\n );\n }\n return false;\n })\n .reduce((acc, k) => {\n return { ...acc, [attrs[k].name]: attrs[k].value };\n }, {});\n\n const child = this.el.querySelector('button');\n Object.keys(dataAttrs).forEach((k) => {\n child.setAttribute(k, dataAttrs[k]);\n this.el.removeAttribute(k);\n });\n }\n\n render() {\n let className = `xpl-button\n xpl-button--${this.size}\n xpl-button--${this.state}\n xpl-button--${this.variant}`;\n if (this.iconOnly) className += ' xpl-button--icon-only';\n if (this.fullWidth) className += ' xpl-button--full-width';\n if (this.link && this.disabled)\n className += ' xpl-button--link-disabled';\n\n return (\n <Host class={className}>\n {\n /**\n * Conditionally render either an <slot> or <button> element\n * depending on if there's an `link` or not\n */\n this.link ? (\n <slot></slot>\n ) : (\n <button\n disabled={this.disabled}\n name={this.name}\n type={this.type}\n value={this.value}\n >\n <slot></slot>\n </button>\n )\n }\n </Host>\n );\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { v4 as uuid } from 'uuid';\n\n@Component({\n tag: 'xpl-checkbox',\n})\nexport class XplCheckbox {\n @Prop() checked?: boolean;\n @Prop() description?: string;\n @Prop() disabled?: boolean;\n @Prop() indeterminate?: boolean;\n @Prop() name?: string;\n @Prop() required?: boolean;\n @Prop() styled?: boolean;\n @Prop() value?: string;\n\n @State() id: string = uuid();\n\n /** @private */\n @Event() checkboxChange: EventEmitter;\n\n private input!: HTMLInputElement;\n\n render() {\n return (\n <Host\n class={{\n 'xpl-checkbox-radio-container': true,\n styled: this.styled,\n disabled: this.disabled,\n }}\n >\n <input\n class=\"xpl-checkbox\"\n type=\"checkbox\"\n checked={this.checked}\n disabled={this.disabled}\n id={this.id}\n indeterminate={this.indeterminate}\n onChange={() =>\n this.checkboxChange.emit(this.input.checked)\n }\n name={this.name}\n ref={(el) => (this.input = el as HTMLInputElement)}\n required={this.required}\n value={this.value}\n ></input>\n <label\n class={{\n 'xpl-label': true,\n 'xpl-label--disabled': this.disabled,\n }}\n htmlFor={this.id}\n >\n <slot></slot>\n {this.description && (\n <small\n class={{\n 'xpl-description': true,\n 'xpl-description--disabled': this.disabled,\n }}\n >\n {this.description}\n </small>\n )}\n </label>\n </Host>\n );\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xpl-content-area',\n})\nexport class XplContentArea {\n /**\n * @property {string} size - The content-area size.\n */\n @Prop() size: 'wide' | 'narrow' | 'full' = 'wide';\n\n render() {\n return (\n <Host>\n <main\n class={`xpl-content-area-wrapper xpl-content-area-wrapper__${this.size}`}\n >\n <div class=\"xpl-content-area\">\n <slot></slot>\n </div>\n </main>\n </Host>\n );\n }\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'xpl-dashboard',\n})\nexport class XplDashboard {\n render() {\n return (\n <Host>\n <dl class=\"xpl-dashboard\">\n <slot></slot>\n </dl>\n </Host>\n );\n }\n}\n","import { Component, Element, h, Host, Prop, Watch } from '@stencil/core';\nimport { IconName } from '../xpl-icon/xpl-icon';\n\n@Component({\n tag: 'xpl-data-card',\n})\nexport class XplDataCard {\n @Element() el: HTMLXplDataCardElement;\n /**\n * Whether the card is a link\n */\n @Prop() link?: boolean;\n /**\n * Name Term\n */\n @Prop() name: string;\n /**\n * Detail, stat, or value to be displayed.\n * Will be rendered when card is larger than 441px.\n * Will also appear in the tooltip when shortStat\n * is shown.\n */\n @Prop() stat: string;\n /**\n * Detail, stat, or value to be displayed\n * in short format. Will be rendered when card is\n * smaller than 441px.\n */\n @Prop() shortStat?: string;\n /**\n * Color variant. Used to set the icon\n * color and background.\n */\n @Prop() variant?: 'primary' | 'secondary';\n /**\n * Whether to display the icon or not.\n */\n @Prop() icon?: IconName;\n\n @Watch('stat')\n watchStat(newValue: string) {\n this.stat = newValue;\n }\n\n @Watch('shortStat')\n watchShortStat(newValue: string) {\n this.shortStat = newValue;\n }\n\n componentDidLoad() {\n if (this.link) {\n const anchorEl =\n this.el.getElementsByTagName('a')[0] ||\n this.el.getElementsByTagName('button')[0];\n const anchorText = document.createTextNode(this.name);\n const anchorSpan = document.createElement('span');\n anchorSpan.appendChild(anchorText);\n\n anchorEl.setAttribute('class', 'xpl-data-card__anchor');\n anchorEl.appendChild(anchorSpan);\n }\n return;\n }\n\n render() {\n const bgColorHue = this.variant === 'secondary' ? 'purple' : 'orange';\n let headerClasses = `xpl-data-card__header${\n !this.icon ? '--no-icon ' : ' '\n }`;\n headerClasses +=\n this.variant === 'secondary'\n ? 'xpl-data-card__header--secondary'\n : 'xpl-data-card__header--primary';\n return (\n <Host\n role=\"group\"\n class={`xpl-data-card ${this.link && 'xpl-data-card__link'}`}\n tabindex=\"0\"\n >\n {this.link &&\n (this.shortStat ? (\n <abbr title={this.stat}>\n <slot></slot>\n </abbr>\n ) : (\n <slot></slot>\n ))}\n <dt>{this.name}</dt>\n <dd>\n <div class={headerClasses}>\n {!!this.icon && (\n <xpl-icon\n icon={this.icon}\n background-color={bgColorHue}\n size={20}\n ></xpl-icon>\n )}\n {this.link && (\n <span class=\"xpl-data-card__header__arrow\">\n <xpl-icon\n icon=\"chevron-right\"\n size={16}\n ></xpl-icon>\n </span>\n )}\n </div>\n <span class={this.shortStat && 'xpl-data-card__long_stat'}>\n {this.stat}\n </span>\n {this.shortStat && (\n <span class=\"xpl-data-card__short_stat\">\n <abbr title={this.stat}>{this.shortStat}</abbr>\n </span>\n )}\n </dd>\n </Host>\n );\n }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const data = require('./build/data.json')\nconst objectAssign = require('object-assign')\n\nconst DEFAULT_HEIGHT = 16\n\nfor (const key of Object.keys(data)) {\n // Returns a string representation of html attributes\n const htmlAttributes = (icon, defaultOptions, options) => {\n const attributes = []\n const attrObj = objectAssign({}, defaultOptions, options)\n\n // If the user passed in options\n if (options) {\n // If any of the width or height is passed in\n if (options['width'] || options['height']) {\n attrObj['width'] = options['width']\n ? options['width']\n : (parseInt(options['height']) * defaultOptions['width']) / defaultOptions['height']\n attrObj['height'] = options['height']\n ? options['height']\n : (parseInt(options['width']) * defaultOptions['height']) / defaultOptions['width']\n }\n\n // If the user passed in class\n if (options['class']) {\n attrObj['class'] = `octicon octicon-${key} ${options['class']}`\n attrObj['class'].trim()\n }\n\n // If the user passed in aria-label\n if (options['aria-label']) {\n attrObj['aria-label'] = options['aria-label']\n attrObj['role'] = 'img'\n\n // Un-hide the icon\n delete attrObj['aria-hidden']\n }\n }\n\n for (const option of Object.keys(attrObj)) {\n attributes.push(`${option}=\"${attrObj[option]}\"`)\n }\n\n return attributes.join(' ').trim()\n }\n\n // Set the symbol for easy access\n data[key].symbol = key\n\n // Set options for each icon height\n for (const height of Object.keys(data[key].heights)) {\n data[key].heights[height].options = {\n version: '1.1',\n width: data[key].heights[height].width,\n height: parseInt(height),\n viewBox: `0 0 ${data[key].heights[height].width} ${height}`,\n class: `octicon octicon-${key}`,\n 'aria-hidden': 'true'\n }\n }\n\n // Function to return an SVG object\n data[key].toSVG = function (options = {}) {\n const {height, width} = options\n const naturalHeight = closestNaturalHeight(Object.keys(data[key].heights), height || width || DEFAULT_HEIGHT)\n return `<svg ${htmlAttributes(data[key], data[key].heights[naturalHeight].options, options)}>${\n data[key].heights[naturalHeight].path\n }</svg>`\n }\n}\n\n// Import data into exports\nmodule.exports = data\n\nfunction closestNaturalHeight(naturalHeights, height) {\n return naturalHeights\n .map(naturalHeight => parseInt(naturalHeight, 10))\n .reduce((acc, naturalHeight) => (naturalHeight <= height ? naturalHeight : acc), naturalHeights[0])\n}\n",".xpl-icon {\n align-items: center;\n display: grid;\n justify-content: center;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport octicons from '@xplortech/apollo-icons';\nimport data from '@xplortech/apollo-icons/build/data.json';\n\nexport type IconName = keyof typeof data;\n\ninterface Options {\n class?: string;\n height?: number;\n width?: number;\n}\n\n@Component({\n tag: 'xpl-icon',\n styleUrl: 'xpl-icon.css',\n})\nexport class XplIcon {\n /**\n * Name of icon\n */\n @Prop() icon: IconName;\n /**\n * Size of icon\n */\n @Prop() size?: number;\n /**\n * Icon's background color.\n */\n @Prop() backgroundColor?: string;\n\n render() {\n let options: Options = {};\n if (typeof this.size === 'number')\n options = { width: this.size, height: this.size };\n let wrapperClasses = 'xpl-icon__wrapper ';\n if (!!this.backgroundColor)\n wrapperClasses += `xpl-icon__wrapper--with-background xpl-icon__wrapper--with-background--${this.backgroundColor}`;\n\n return (\n <Host>\n <figure class={wrapperClasses}>\n <span\n aria-label={this.icon}\n role=\"img\"\n class=\"xpl-icon\"\n style={{\n width: `${this.size}px`,\n height: `${this.size}px`,\n }}\n innerHTML={octicons[this.icon].toSVG(options)}\n />\n <figcaption>{this.icon} icon</figcaption>\n </figure>\n </Host>\n );\n }\n}\n","import { Component, Event, EventEmitter, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xpl-nav-item',\n})\nexport class XplNavItem {\n /**\n * @property {boolean} - Whether or not the item should control the main nav state on click\n */\n @Prop() navControl?: boolean = false;\n\n /**\n * @event {boolean} - Emits the desired state of the navigation bar (open: true/false)\n */\n @Event() navOpen: EventEmitter<boolean>;\n\n private onNavToggle() {\n if (window.innerWidth <= 640) {\n this.navOpen.emit(false);\n }\n }\n\n render() {\n return (\n <Host\n class=\"xpl-nav-item\"\n role=\"listitem\"\n onClick={() => {\n if (this.navControl) {\n this.onNavToggle();\n }\n }}\n >\n <slot name=\"link\">\n <slot name=\"icon\"></slot>\n <slot></slot>\n </slot>\n </Host>\n );\n }\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Event,\n EventEmitter,\n} from '@stencil/core';\nimport { v4 as uuid } from 'uuid';\n\n@Component({\n tag: 'xpl-radio',\n})\nexport class XplRadio {\n @Prop() checked?: boolean;\n @Prop() description?: string;\n @Prop() disabled?: boolean;\n @Prop() name?: string;\n @Prop() required?: boolean;\n @Prop() styled?: boolean;\n @Prop() value?: string;\n\n @State() id: string = uuid();\n\n /** @private */\n @Event() radioChange: EventEmitter;\n\n render() {\n return (\n <Host\n class={{\n 'xpl-checkbox-radio-container': true,\n styled: this.styled,\n disabled: this.disabled,\n }}\n >\n <input\n class=\"xpl-radio\"\n type=\"radio\"\n checked={this.checked}\n disabled={this.disabled}\n id={this.id}\n name={this.name}\n required={this.required}\n value={this.value}\n onChange={() => this.radioChange.emit(true)}\n ></input>\n <label\n class={{\n 'xpl-label': true,\n 'xpl-label--disabled': this.disabled,\n }}\n htmlFor={this.id}\n >\n <slot></slot>\n {this.description && (\n <small\n class={{\n 'xpl-description': true,\n 'xpl-description--disabled': this.disabled,\n }}\n >\n {this.description}\n </small>\n )}\n </label>\n </Host>\n );\n }\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'xpl-secondary-nav',\n})\nexport class XplSecondaryNav {\n render() {\n return (\n <Host class=\"xpl-secondary-nav\">\n <nav aria-label=\"Secondary Nav\">\n <slot></slot>\n </nav>\n </Host>\n );\n }\n}\n","import {\n Component,\n Host,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n h,\n Watch,\n} from '@stencil/core';\n\n@Component({\n tag: 'xpl-table',\n})\nexport class XplTable {\n @Element() el: HTMLXplTableElement;\n /**\n * The header values for each column.\n */\n @Prop() columns?: string[];\n /**\n * The data for the body of the table.\n */\n @Prop() data?: string[][];\n /**\n * When true, the first column of the table is sticky and will cover the leftmost rows in a horizontally scrollable container.\n */\n @Prop() freeze?: boolean;\n /**\n * Toggles a selectable checkbox for each row in the table\n */\n @Prop() multiselect?: boolean;\n /**\n * Toggles an optional styling of the background of each even row of the table body.\n */\n @Prop() striped?: boolean;\n /**\n * The values for the input for each row when multiselect is activated.\n */\n @Prop() selectedValues?: string[] = [];\n\n @State() areAllSelected: boolean = false;\n @State() rowData: string[][];\n @State() hasScrolled: boolean = false;\n @State() selected: (string | boolean)[];\n\n @Event() tableSelect: EventEmitter;\n\n private selectAllValue = Math.random().toString(36).slice(2);\n\n private container!: HTMLDivElement;\n\n private isSelectedValuesSet = this.selectedValues?.length > 0;\n\n private selectAll = (e: Event) => {\n const { target } = e;\n\n if (!(target instanceof HTMLInputElement)) return;\n\n const { checked } = target;\n\n this.areAllSelected = checked;\n\n this.selected = this.isSelectedValuesSet\n ? // gets all checkboxes in body\n Array.from(\n this.el.querySelectorAll('tbody td:first-child input')\n ).map((input: HTMLInputElement) =>\n // if the select all checkbox is checked, return\n // the value from the current input. If false, set all to false.\n checked ? input?.value : checked\n )\n : this.selected.map(() => checked);\n this.onChange();\n };\n\n private selectOne = (e: Event, checkboxIdx: number) => {\n const { target } = e;\n if (!(target instanceof HTMLInputElement)) return;\n\n const { checked, value } = target;\n\n this.areAllSelected = false;\n this.selected = this.selected.map((v, selectedIdx) => {\n // if the checkbox that fired the event is not the current idx\n // return the current value\n if (selectedIdx !== checkboxIdx) return v;\n\n /**\n * If there are values in this.selectedValues, either return the value\n * for that checkbox or false, dependent on if the checkbox is checked or not.\n * If there are no values in this.selectedValues, return the value\n * to either true or false, dependent on if the checkbox is checked or not.\n *\n */\n return this.isSelectedValuesSet\n ? checked\n ? value\n : checked\n : checked;\n });\n this.onChange();\n };\n\n private onChange = () => {\n this.tableSelect.emit({\n selected: this.selected,\n areAllSelected: this.areAllSelected,\n });\n };\n\n private onScroll = () => {\n this.hasScrolled = this.container.scrollLeft > 0;\n };\n\n /**\n * TODO: Need to figure out how this interplays with data\n * received from an API/server\n */\n // private sortBy = (col: number, ascending = true) => {\n // this.rowData.sort((a, b) => {\n // const A = a[col];\n // const B = b[col];\n // if (typeof A === 'number' && typeof B === 'number') {\n // const f = ascending ? 1 : -1;\n // return A > B ? f : -f;\n // }\n // return -1;\n // });\n // this.rowData = Array.from(this.rowData);\n // this.render();\n // };\n\n private setData = () => {\n this.rowData = this.data !== undefined ? Array.from(this.data) : [];\n };\n\n @Watch('data')\n watchData() {\n this.setData();\n }\n\n componentWillLoad() {\n this.areAllSelected = false;\n this.setData();\n this.selected = new Array(this.rowData.length).fill(false);\n }\n\n render() {\n let className = 'xpl-table';\n if (this.striped) className += ' xpl-table--striped';\n if (this.freeze) className += ' xpl-table--freeze';\n if (this.hasScrolled) className += ' xpl-table--has-scrolled';\n\n return (\n <Host>\n <div\n class=\"xpl-table-container\"\n onScroll={this.onScroll}\n ref={(el) => (this.container = el as HTMLDivElement)}\n >\n <table class={className}>\n {this.columns && (\n <thead>\n {this.columns.map((column, i) => {\n return (\n <th>\n {this.multiselect && i === 0 ? (\n <label htmlFor=\"__xpl-table-th\">\n <input\n checked={\n this.areAllSelected\n }\n id=\"__xpl-table-th\"\n // appear indeterminate when at least one but not all\n // are selected\n indeterminate={\n !this\n .areAllSelected &&\n this.selected.some(\n (a) => a\n )\n }\n onChange={(e) => {\n this.selectAll(e);\n }}\n type=\"checkbox\"\n value={`select-all-${this.selectAllValue}`}\n />\n {column}\n </label>\n ) : (\n column\n )}\n </th>\n );\n })}\n </thead>\n )}\n <tbody>\n {this.rowData.map((row, rowNum) => {\n return (\n <tr\n class={\n this.selected &&\n this.selected[rowNum]\n ? 'xpl-table-row-selected'\n : ''\n }\n >\n {row.map((cell, i) => {\n return (\n <td>\n {this.multiselect &&\n i === 0 ? (\n <label\n htmlFor={\n '__xpl-table-row-' +\n rowNum\n }\n >\n <input\n id={\n '__xpl-table-row-' +\n rowNum\n }\n checked={\n !!this\n .selected[\n rowNum\n ]\n }\n type=\"checkbox\"\n onChange={(e) =>\n this.selectOne(\n e,\n rowNum\n )\n }\n value={`${\n this\n .selectedValues\n .length >\n 0\n ? this\n .selectedValues[\n rowNum\n ]\n : `xpl-table-checkbox-${rowNum}`\n }`}\n />\n <div\n innerHTML={cell}\n />\n </label>\n ) : (\n <div innerHTML={cell} />\n )}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </Host>\n );\n }\n}\n","import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n State,\n} from '@stencil/core';\n\n@Component({\n tag: 'xpl-utility-bar',\n})\nexport class XplUtilityBar {\n /**\n * @event {boolean} - Emits the desired state of the navigation bar (open: true/false)\n */\n @Event() navOpen: EventEmitter<boolean>;\n\n /**\n * @property {boolean} - whether or not to show the bars to control the state of the navigation bar (open/close)\n */\n @Prop() navControl?: boolean;\n\n /**\n * @property {boolean} - Optional property that defines whether or not the main nav is open at startup.\n */\n @Prop() isNavOpenAtStartup?: boolean;\n\n @State() open: boolean = true;\n\n private onNavToggle() {\n this.open = !this.open;\n this.navOpen.emit(this.open);\n }\n\n componentWillLoad() {\n this.open =\n this.isNavOpenAtStartup !== undefined\n ? this.isNavOpenAtStartup\n : this.open;\n }\n render() {\n return (\n <Host>\n <nav\n aria-label=\"utility navigation bar\"\n class=\"xpl-utility-bar\"\n >\n {this.navControl ? (\n <div>\n <button\n class=\"xpl-utility-bar__nav-control\"\n onClick={() => this.onNavToggle()}\n >\n <xpl-icon\n class=\"xpl-utility-nav__bars\"\n icon=\"three-bars\"\n ></xpl-icon>\n </button>\n <slot name=\"aside\"></slot>\n </div>\n ) : (\n <slot name=\"aside\"></slot>\n )}\n <slot name=\"main\"></slot>\n </nav>\n </Host>\n );\n }\n}\n"],"mappings":"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"}