{ "version": 3, "sources": ["src/elements/hi-result-group.js", "src/elements/hi-placeholder.ts", "src/elements/hi-time-list.ts", "src/elements/hi-timepicker.ts", "src/elements/hi-typeahead.js", "src/elements/hi-pending.js", "src/elements/hi-result.js", "src/elements/hi-switch.js", "src/elements/hi-portal.js", "src/elements/hi-group.js", "src/elements/hi-case.js", "src/elements/hi-if.js", "src/index.ts"], "sourcesContent": ["import { PolymerElement, html } from 'polymer';\n\n/**\n * @customElement\n * @polymer\n * @appliesMixin HIP.BehaviorInteractiveElement\n * @appliesMixin HIP.BehaviorA11yKeyboard\n * @appliesMixin HIP.BehaviorSetFocus\n * @appliesMixin HIP.BehaviorElement\n */\nclass ResultGroupElement extends HIP.BehaviorSetFocus(\n HIP.BehaviorBrowserEvents(\n HIP.BehaviorA11yKeyboard(HIP.BehaviorInteractiveElement(HIP.BehaviorElement(PolymerElement)))\n )\n) {\n static get is() {\n return 'hi-result-group';\n }\n\n static get template() {\n return html`\n \n \n

\n
\n \n
\n
\n \n
\n `;\n }\n\n static get properties() {\n return {\n filterRule: {\n type: String,\n observer: '__filterRuleChanged'\n },\n filterRegExp: {\n type: Object,\n computed: '__filterRegExpCompute(filterRule)'\n },\n /**\n * fewest results permitted before a warning message will show\n */\n min: {\n type: Number,\n value: 0\n },\n /**\n * highest number of results permitted before a warning message will show\n */\n max: {\n type: Number,\n value: 20\n },\n /**\n * override the default message if the results are less than the `min`\n */\n labelMin: String,\n /**\n * override the default message if the results are less than the `max`\n */\n labelMax: String,\n /**\n * a warning message that will show, if the results are higher than `min` and lower than `max`\n */\n labelWarning: String,\n /**\n * a message which overrides all others\n */\n labelOverride: String\n };\n }\n\n static get observers() {\n return ['__minMaxResultObserver(min, max)'];\n }\n\n static get api() {\n return ['shiftFocusDown', 'shiftFocusUp', 'focusIndex', 'focusItem', 'selectIndex', 'selectItem'];\n }\n\n /**\n * @see chosen-ended\n * @event space-keyup-ended\n * @param {Number} index the index of the hi-item selected (starts at 0)\n * @param {ItemElement} item the hi-item selected\n */\n\n /**\n * @see chosen-ended\n * @event enter-keyup-ended\n * @param {Number} index the index of the hi-item selected (starts at 0)\n * @param {ItemElement} item the hi-item selected\n */\n\n /**\n * @event right-keyup-ended\n */\n\n /**\n * @event left-keyup-ended\n */\n\n /**\n * @event up-keyup-ended\n */\n\n /**\n * @event down-keyup-ended\n */\n\n static get keyBindings() {\n return {\n 'space:keydown': '_onKeyAny__preventDefault',\n 'space:keyup': '_setFocus__onKeyUp__space',\n 'enter:keyup': '_setFocus__onKeyUp__enter',\n 'up:keydown': '_onKeyAny__preventDefault',\n 'down:keydown': '_onKeyAny__preventDefault',\n 'right:keyup': '_setFocus__onKeyUp_right',\n 'down:keyup': '_setFocus__onKeyUp_down',\n 'left:keyup': '_setFocus__onKeyUp_left',\n 'up:keyup': '_setFocus__onKeyUp_up'\n };\n }\n\n static get browserBindings() {\n return {\n focus: '_setFocus__onFocus'\n };\n }\n\n static get valueEvent() {\n return 'chosen-ended';\n }\n\n static get autoBinding() {\n return {\n signal: 'focused-index-changed',\n slot: 'focusedIndex'\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'listbox');\n this.valueAttr = 'value';\n }\n\n __onSlotChanged() {\n this._setFocus__onSlotChanged();\n this.__setMessageOnChildrenSize();\n\n this.__filterRuleChanged(this.filterRule);\n }\n\n __minMaxResultObserver() {\n this.__setMessageOnChildrenSize();\n }\n\n __setMessageOnChildrenSize() {\n const childrenSize = this.slotChildren.length;\n const $warningMessage = this.$.warningMessage;\n const labelWarning = this.labelWarning;\n const labelOverride = this.labelOverride;\n\n $warningMessage.style.display = 'block';\n\n if (labelOverride && labelOverride.length > 0) {\n $warningMessage.textContent = labelOverride;\n } else if (childrenSize <= this.min) {\n $warningMessage.textContent = this.labelMin || `${childrenSize} results found`;\n } else if (childrenSize > this.max) {\n $warningMessage.textContent =\n this.labelMax || `Your search has more than ${this.max} results, refine your search for better results.`;\n } else if (labelWarning && labelWarning.length > 0) {\n $warningMessage.textContent = labelWarning;\n } else {\n $warningMessage.textContent = '';\n $warningMessage.style.display = 'none';\n }\n }\n\n __filterRegExpCompute(_filterRule) {\n return ResultGroupElement.createFilterRegExp(_filterRule);\n }\n\n /**\n *\n */\n static createFilterRegExp(_filterRule) {\n return new RegExp(`(${_filterRule.replace(/[^a-z0-9\\s\\-_]/gi, '')})`, 'ig');\n }\n\n __filterRuleChanged(_filterRule) {\n if (!_filterRule) {\n return;\n }\n\n const filterRegExp = this.filterRegExp;\n\n this.slotChildren.forEach((child) => {\n child.filterRegExp = filterRegExp;\n });\n\n this.hiddenChildren.forEach((node) => {\n node.filterRule = filterRegExp;\n\n if (node.render) {\n node.render();\n }\n });\n\n this.__setMessageOnChildrenSize();\n }\n}\n\nHIP.factory.element(ResultGroupElement);\n", "import { BehaviorTemplateElement } from '@eab-eip/hi-behavior-template/hi-behavior-template';\nimport { AsHIC, HIP, BehaviorElement } from '@eab-eip/hi-component/hi-component';\nimport { PolymerElement, html } from 'polymer';\n\nimport f1 from '@eab-pip/pi-f1';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * @customElement\n * @polymer\n * @appliesMixin BehaviorElement\n * @appliesMixin BehaviorTemplateElement\n */\nexport class PlaceholderElement extends BehaviorTemplateElement(BehaviorElement(AsHIC(PolymerElement))) {\n static get is() {\n return 'hi-placeholder';\n }\n\n static get template() {\n return html`\n \n \n\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n `;\n }\n\n /**\n *\n */\n rows: unknown[];\n private __rows: { length: number; empty: number }[];\n\n /**\n *\n */\n busy: boolean;\n\n static get properties() {\n return {\n busy: {\n type: Boolean,\n value: true,\n observer: '__onBusyChanged',\n reflectToAttribute: true,\n notify: true\n },\n rows: {\n type: Array,\n observer: '__rowsChanged'\n }\n };\n }\n\n static get observedAttributes() {\n return ['busy', 'rows'];\n }\n\n constructor() {\n super();\n\n this.rows = [];\n this.__rows = [\n {\n length: 5,\n empty: 7\n },\n {\n length: 6,\n empty: 6\n },\n {\n length: 7,\n empty: 5\n }\n ];\n }\n\n static get autoBinding() {\n return {\n signal: 'busy-changed',\n field: 'busy'\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'status');\n }\n\n __onBusyChanged(busyState: boolean) {\n this.setAttribute('aria-busy', `${busyState}`);\n if (!busyState) {\n this.render();\n }\n }\n\n __rowsChanged(rows: any) {\n if (rows.length > 0) {\n this.__rows = f1.map((val: number) => {\n return {\n length: val,\n empty: 12 - val\n };\n }, rows);\n }\n }\n\n render() {\n this._renderTemplate();\n let template = this.querySelector('template');\n\n if (!this.__children) {\n if (!template) {\n const observer = new MutationObserver(() => {\n template = this.querySelector('template');\n\n if (template) {\n observer.disconnect();\n this.render();\n } else {\n throw new Error('hi-placeholder requires a