@nanoporetech-digital/components 2.13.1 → 2.14.0

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.
Files changed (83) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/nano-datalist_3.cjs.entry.js +13 -5
  3. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  4. package/dist/cjs/nano-field-validator.cjs.entry.js +10 -6
  5. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nano-nav-item_2.cjs.entry.js +0 -1
  7. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  8. package/dist/collection/components/accordion/accordion.js +1 -1
  9. package/dist/collection/components/alert/alert.js +1 -1
  10. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  11. package/dist/collection/components/algolia/algolia-input.js +5 -5
  12. package/dist/collection/components/algolia/algolia-results.js +1 -1
  13. package/dist/collection/components/algolia/algolia.js +6 -6
  14. package/dist/collection/components/checkbox/checkbox-group.js +2 -2
  15. package/dist/collection/components/checkbox/checkbox.js +3 -3
  16. package/dist/collection/components/datalist/datalist.js +14 -6
  17. package/dist/collection/components/datalist/datalist.js.map +1 -1
  18. package/dist/collection/components/date-input/date-input.js +8 -8
  19. package/dist/collection/components/date-picker/date-picker.js +5 -5
  20. package/dist/collection/components/details/details.js +1 -1
  21. package/dist/collection/components/dialog/dialog.js +1 -1
  22. package/dist/collection/components/dropdown/dropdown.js +1 -1
  23. package/dist/collection/components/field-validator/field-validator.js +16 -12
  24. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  25. package/dist/collection/components/file-upload/file-upload.js +4 -4
  26. package/dist/collection/components/global-nav/global-nav.js +4 -4
  27. package/dist/collection/components/grid/grid-item.js +1 -1
  28. package/dist/collection/components/icon/icon.js +1 -1
  29. package/dist/collection/components/input/input.js +5 -5
  30. package/dist/collection/components/nav-item/nav-item.js +4 -4
  31. package/dist/collection/components/range/range.js +4 -4
  32. package/dist/collection/components/resize-observe/resize-observe.js +1 -1
  33. package/dist/collection/components/select/select.js +7 -9
  34. package/dist/collection/components/select/select.js.map +1 -1
  35. package/dist/collection/components/slides/slides.js +7 -7
  36. package/dist/collection/components/tabs/tab-group.js +2 -2
  37. package/dist/components/datalist.js +13 -4
  38. package/dist/components/datalist.js.map +1 -1
  39. package/dist/components/nano-field-validator.js +10 -6
  40. package/dist/components/nano-field-validator.js.map +1 -1
  41. package/dist/components/select.js +0 -1
  42. package/dist/components/select.js.map +1 -1
  43. package/dist/custom-elements/index.js +22 -11
  44. package/dist/custom-elements/index.js.map +1 -1
  45. package/dist/esm/nano-datalist_3.entry.js +13 -5
  46. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  47. package/dist/esm/nano-field-validator.entry.js +10 -6
  48. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  49. package/dist/esm/nano-nav-item_2.entry.js +0 -1
  50. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  51. package/dist/esm-es5/nano-datalist_3.entry.js +2 -2
  52. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -1
  53. package/dist/esm-es5/nano-field-validator.entry.js +1 -1
  54. package/dist/esm-es5/nano-field-validator.entry.js.map +1 -1
  55. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  56. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  57. package/dist/nano-components/nano-components.esm.js +1 -1
  58. package/dist/nano-components/p-0a1d463e.entry.js +5 -0
  59. package/dist/nano-components/p-0a1d463e.entry.js.map +1 -0
  60. package/dist/nano-components/p-53957ec6.system.js +1 -1
  61. package/dist/nano-components/p-6ce533f1.system.entry.js +5 -0
  62. package/dist/nano-components/p-6ce533f1.system.entry.js.map +1 -0
  63. package/dist/nano-components/{p-ed0bdea9.entry.js → p-a1108493.entry.js} +2 -2
  64. package/dist/nano-components/p-a1108493.entry.js.map +1 -0
  65. package/dist/nano-components/{p-cb512cff.system.entry.js → p-e8c4ca40.system.entry.js} +2 -2
  66. package/dist/nano-components/p-e8c4ca40.system.entry.js.map +1 -0
  67. package/dist/nano-components/p-f0e9397c.entry.js +5 -0
  68. package/dist/nano-components/p-f0e9397c.entry.js.map +1 -0
  69. package/dist/nano-components/p-f268fe08.system.entry.js +5 -0
  70. package/dist/nano-components/p-f268fe08.system.entry.js.map +1 -0
  71. package/dist/types/components/datalist/datalist.d.ts +1 -0
  72. package/docs-json.json +1 -1
  73. package/package.json +2 -2
  74. package/dist/nano-components/p-085e03db.system.entry.js +0 -5
  75. package/dist/nano-components/p-085e03db.system.entry.js.map +0 -1
  76. package/dist/nano-components/p-32900c91.entry.js +0 -5
  77. package/dist/nano-components/p-32900c91.entry.js.map +0 -1
  78. package/dist/nano-components/p-aa84c727.system.entry.js +0 -5
  79. package/dist/nano-components/p-aa84c727.system.entry.js.map +0 -1
  80. package/dist/nano-components/p-cb512cff.system.entry.js.map +0 -1
  81. package/dist/nano-components/p-e35226a9.entry.js +0 -5
  82. package/dist/nano-components/p-e35226a9.entry.js.map +0 -1
  83. package/dist/nano-components/p-ed0bdea9.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["node_modules/@stencil/store/dist/index.mjs","src/components/field-validator/field-validator.tsx"],"names":["appendToMap","map","propName","value","items","get","set","includes","push","debounce","fn","ms","timeoutId","args","_i","arguments","length","clearTimeout","setTimeout","apply","isConnected","maybeElement","cleanupElements","_b","keys","key","filter","stencilSubscription","getRenderingRef","elmsToUpdate","Map","dispose","clear","elm","elements","forceUpdate","reset","forEach","elms","createObservableMap","defaultState","shouldUpdate","a","b","states","Object","entries","handlers","cb","oldValue","state","Proxy","_","ownKeys","Array","from","getOwnPropertyDescriptor","enumerable","configurable","has","on","eventName","callback","removeFromArray","onChange","unSet","newValue","unReset","use","subscriptions","unsubs","reduce","subscription","unsub","array","item","index","indexOf","createStore","FieldValidator","class_1","hostRef","_this","this","submitted","allFields","nanoFieldSelector","internalValidate","validateOn","scrollToInvalid","_dirty","extraFieldSelector","handleStoreChange","newVal","__awaiter","found","find","field","getName","tagName","fileStateEqual","storeToFields","dirty","validateAllFields","sent","_valid","activeForm","checkValidity","nanoPayloadChange","emit","_store","handleFieldChange","ev","nanoFields","target","fieldsToStore","handlePlainFieldChange","plainFields","handleFormInvalid","preventDefault","submitForm","scrollToFirstInvalid","nanoInvalid","handleSubmit","e","prototype","userFormChange","userForm","defineProperty","_activeForm","form","removeEventListener","addEventListener","validateOnChange","cbg","closest","validationState","v","name","validationMessage","pf","validityMessage","valid","nf","invalid","fields","f","setStore","val","store","setCustomValidity","validity","Promise","all","err","setFieldError","_c","resetValidity","__generator","attachSlotObserver","mo","MutationObserver","_entries","host","querySelector","setupFields","observe","childList","attributes","attributeFilter","subtree","getAttribute","querySelectorAll","__spreadArray","fieldName","type","checked","isArray","ff","_a","files","cb_1","currentArr","JSON","stringify","validate","validation","res","o","validityTarget","msg","memo","undefined","showError","setError","invalidField","scrollIntoView","behavior","block","nanoSubmit","defaultPrevented","submit","connectedCallback","componentDidLoad","requestAnimationFrame","disconnectedCallback","disconnect","render","h","Host","ref"],"mappings":"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","sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(defaultState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n const unReset = on('reset', () => cb(defaultState[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import {\n Component,\n Prop,\n h,\n Host,\n Element,\n ComponentInterface,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from '@stencil/core';\nimport { createStore, ObservableMap } from '@stencil/store';\nimport {\n NanoFormEles,\n PlainFormEles,\n NanoFormEvent,\n ValidationState,\n ValidatorValueStore,\n PlainFormEvent,\n} from '../../interface';\n\n/**\n * A toolbox for `nano-...` form fields and form validation.\n * - Easy to add validation accross field dependencies - e.g. \"When Field1 contains '123' Field2 must contain '456'\"\n * - Easy access to whole form and individual field validity states\n * - Easy access to form data payload\n * = Access to 2-way, data bound reactive store\n * - Scroll to invalid field on submit\n */\n@Component({\n tag: 'nano-field-validator',\n})\nexport class FieldValidator implements ComponentInterface {\n // Internal State\n\n @Element() host: HTMLNanoFieldValidatorElement;\n @State() submitted = false;\n @State() userForm: HTMLFormElement;\n @Watch('userForm')\n userFormChange() {\n if (!!this.userForm) this.activeForm = this.userForm;\n }\n\n private get activeForm() {\n return this._activeForm;\n }\n private set activeForm(form: HTMLFormElement) {\n // manages event listners on whatever form is used (slotted on created here)\n if (!form) return;\n\n if (this._activeForm) {\n this._activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n }\n form.addEventListener('invalid', this.handleFormInvalid, true);\n this._activeForm = form;\n }\n private _activeForm: HTMLFormElement;\n private mo: MutationObserver;\n private allFields: Array<NanoFormEles | PlainFormEles> = [];\n private nanoFields: NanoFormEles[];\n private plainFields: PlainFormEles[];\n private nanoFieldSelector = `\n nano-input,\n nano-select,\n nano-file-upload,\n nano-date-input,\n nano-checkbox\n `;\n\n // annoyingly, whenever we attempt to `checkValidty()` it fires `invalid` events.\n // this is used to prevent infinite loops / multiple calls\n private internalValidate = false;\n\n // Public API\n\n /** When should the fields perform validation. Will override / sync all nested `nano-...` controls */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /** Sync up validateOn with all fields */\n @Watch('validateOn')\n validateOnChange() {\n this.nanoFields.forEach((field) => {\n if (field.tagName === 'NANO-CHECKBOX') {\n const cbg = field.closest('nano-checkbox-group');\n if (cbg) cbg.validateOn = this.validateOn;\n } else {\n (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).validateOn =\n this.validateOn;\n }\n });\n }\n\n /** Tries to scroll to the first invalid field on submit */\n @Prop() scrollToInvalid = true;\n\n /** Returns true if any nested fields have been changed @readonly */\n @Prop({ reflect: true })\n get dirty() {\n return this._dirty;\n }\n @State() _dirty = false;\n\n /** Returns true if all the nested fields are currently valid @readonly */\n @Prop({ reflect: true })\n get valid() {\n return this._valid;\n }\n @State() _valid: boolean;\n\n /** The current form state as a stencil store. */\n @Prop() get store() {\n return this._store;\n }\n @State() _store: ObservableMap<ValidatorValueStore>;\n\n /** The current form payload as a reactive proxy. @readonly */\n @Prop()\n get payload() {\n return this._store.state;\n }\n\n /** Returns true if validation errors will be displayed to the user. @readonly */\n @Prop()\n get showValidation() {\n return (this.validateOn === 'dirty' && this.dirty) || this.submitted;\n }\n\n /** Get the current validation state of all form fields. @readonly\n * ```\n {\n fields: NanoFormEles[];\n valid: boolean;\n validityMessage: string;\n dirty: boolean;\n name: string | number;\n value: any;\n }[]\n ```\n */\n @Prop()\n get validationState(): ValidationState[] {\n // TODO - migrate nano-fields away from using proprietary methods in a bid to be closer to the spec\n\n // this is big and ugly.\n // why? Cos' it must unify checking validity state for both\n // `nano-...` and plain form fields.\n const validationState: ValidationState[] = [];\n\n this.allFields.forEach(async (field) => {\n const found = validationState.find((v) => v.name === this.getName(field));\n let pf: PlainFormEles;\n let nf: NanoFormEles;\n\n if (found) {\n if ((field as PlainFormEles).validationMessage) {\n pf = field as PlainFormEles;\n found.validityMessage = pf.validationMessage.length\n ? pf.validationMessage\n : found.validityMessage;\n this.internalValidate = true;\n if (found.valid && !pf.checkValidity()) found.valid = false;\n this.internalValidate = false;\n } else if ((field as NanoFormEles).validityMessage) {\n nf = field as NanoFormEles;\n found.validityMessage = nf.validityMessage.length\n ? nf.validityMessage\n : nf.validityMessage;\n if (found.valid && nf.invalid) found.valid = false;\n }\n if (!found.fields.find((f) => f === field)) found.fields.push(field);\n }\n\n let valid: boolean;\n let validityMessage: string;\n\n if ((field as PlainFormEles).checkValidity) {\n pf = field as PlainFormEles;\n this.internalValidate = true;\n valid = pf.checkValidity();\n this.internalValidate = false;\n validityMessage = pf.validationMessage;\n } else {\n nf = field as NanoFormEles;\n valid = !nf.invalid;\n validityMessage = nf.validityMessage;\n }\n\n validationState.push({\n fields: [field],\n name: this.getName(field),\n value: this._store.state[this.getName(field)],\n dirty: false,\n valid,\n validityMessage,\n });\n });\n\n return validationState;\n }\n\n /** By default, `nano-field-validator` will also track all native form field elements.\n * You can add extra web-component form fields to listen to\n * (as long as they match the standard form field spec) by using the `fieldSelector` prop.\n */\n @Prop() extraFieldSelector: string = 'input, select, textarea';\n\n /** A validation callback method.\n * @param field - The field name currently being evaluated\n * @param value - The value of the field currently being evaluated\n * @param fields - an array of all currently observered form fields and values\n * @returns field names mapped to an object of status message and validity e.g.\n * ```js\n * {field1: {msg: `This is invalid!`}, field2: {msg: `This is valid!`, valid: true}}\n * ```\n */\n @Prop() validation: (\n field: string,\n value: string,\n fields: ValidatorValueStore\n ) => { [key: string]: { msg: string; valid?: boolean } };\n\n /**\n * Sets the state of the form using an object of key / value pairs.\n * @param state - the state to load in the store\n */\n @Method()\n async setStore(state: ValidatorValueStore) {\n Object.entries(state).forEach(\n ([key, val]) => (this.store.state[key] = val)\n );\n }\n\n /**\n * Sets custom validity for all / some form fields.\n * @param validity - a validity object of `{fieldName: errorString}` pairs. Set as an empty string to clear the error.\n */\n @Method()\n async setCustomValidity(validity: { [key: string]: string }) {\n return await Promise.all(\n Object.entries(validity).map(async ([key, err]) => {\n const field = this.allFields.find((f) => this.getName(f) === key);\n if (!!field) await this.setFieldError(field, err);\n })\n );\n }\n\n /**\n * Clear all custom validation.\n * @param validity\n */\n @Method()\n async resetValidity() {\n return await Promise.all(\n this.allFields.map(async (field) => await this.setFieldError(field, ''))\n );\n }\n\n /** Fired whenever the payload changes */\n @Event() nanoPayloadChange: EventEmitter<ValidatorValueStore>;\n\n /**\n * Fired on valid form submission.\n * Note: if you wish to prevent a form from submitting, instead\n * of using / preventing the native `submit` event, use this event\n * ```js\n * ele.addEventListener('nanoSubmit', (e) => {\n * e.preventDefault()\n * })\n * ```\n */\n @Event() nanoSubmit: EventEmitter;\n\n /** Fire on invalid form submission attempt */\n @Event() nanoInvalid: EventEmitter;\n\n // private methods\n\n @Watch('extraFieldSelector')\n attachSlotObserver() {\n if (!!this.mo) return;\n const mo = (this.mo = new MutationObserver((_entries) => {\n const form = this.host.querySelector('form');\n if (form && form !== this.activeForm) this.activeForm = form;\n this.setupFields();\n }));\n mo.observe(this.host, {\n childList: true,\n attributes: true,\n attributeFilter: ['name'],\n subtree: true,\n });\n }\n\n /**\n * During spec tests, mockelement props aren't set - only attributes.\n * This irons out that kink\n * @param field\n * @returns\n */\n private getName(field: PlainFormEles | NanoFormEles) {\n return field.name || field.getAttribute('name');\n }\n\n /** Checks for new `nano-...` fields and adds them to our watch array and value store */\n private setupFields() {\n let nanoFields = Array.from(\n this.host.querySelectorAll<NanoFormEles>(this.nanoFieldSelector)\n );\n\n let plainFields = Array.from(\n this.host.querySelectorAll<PlainFormEles>(this.extraFieldSelector)\n ).filter((e) => !e.closest(this.nanoFieldSelector));\n\n nanoFields = nanoFields.filter(\n (f) => !!this.getName(f) && !!this.getName(f).length\n );\n plainFields = plainFields.filter(\n (f) => !!this.getName(f) && !!this.getName(f).length\n );\n\n // do we have any currently un-watched fields?\n if (\n ![...nanoFields, ...plainFields].filter(\n (f) => !this.allFields.includes(f)\n ).length\n )\n return;\n\n // setup the initial store state / refresh on new fields\n this.nanoFields = nanoFields;\n this.plainFields = plainFields;\n this.allFields = [...nanoFields, ...plainFields];\n\n this.storeToFields(this.allFields);\n\n this.validateOnChange();\n this.fieldsToStore(this.allFields);\n this.nanoPayloadChange.emit(this._store.state);\n }\n\n private storeToFields(fields: Array<NanoFormEles | PlainFormEles>) {\n fields.forEach((field) => {\n const fieldName = this.getName(field);\n if (\n !fieldName.length ||\n typeof this._store.state[fieldName] === 'undefined'\n )\n return;\n\n if (\n field.tagName === 'NANO-CHECKBOX' ||\n ['radio', 'checkbox'].includes((field as HTMLInputElement).type)\n ) {\n let cb = field as HTMLNanoCheckboxElement;\n if (\n cb.type === 'radio' ||\n cb.type === 'segment' ||\n cb.type === 'segment-pill'\n ) {\n // single radio type control\n if (this._store.state[fieldName] === cb.value) cb.checked = true;\n else cb.checked = false;\n } else if (Array.isArray(this._store.state[fieldName])) {\n // multiple checkbox like controls\n if (this._store.state[fieldName].includes(cb.value))\n cb.checked = true;\n else cb.checked = false;\n } else {\n // single checkbox like control\n if (this._store.state[fieldName] === cb.value) cb.checked = true;\n else cb.checked = false;\n }\n return;\n }\n\n if (field.tagName === 'NANO-FILE-UPLOAD') {\n const ff = field as HTMLNanoFileUploadElement;\n // this can only work if the field is empty rn... a one-time deal\n if (!ff.files?.length) ff.files = this._store.state[fieldName];\n return;\n }\n\n // default\n field.value = this._store.state[fieldName];\n });\n }\n\n /** Loops through all `nano-...` fields and extracts their values into our store */\n private fieldsToStore(fields: Array<NanoFormEles | PlainFormEles>) {\n fields.forEach((field) => {\n const fieldName = this.getName(field);\n if (!fieldName.length) return;\n\n if (\n field.tagName === 'NANO-CHECKBOX' ||\n ['radio', 'checkbox'].includes((field as HTMLInputElement).type)\n ) {\n let cb = field as HTMLNanoCheckboxElement;\n\n if (\n cb.type === 'radio' ||\n cb.type === 'segment' ||\n cb.type === 'segment-pill'\n ) {\n // radio type control - only one can be checked\n if (cb.checked) this._store.state[fieldName] = cb.value;\n } else if (\n this.allFields.filter(\n (f) =>\n !!this.getName(field) &&\n (f.tagName === 'NANO-CHECKBOX' ||\n (f as HTMLInputElement).type === 'checkbox')\n ).length > 1\n ) {\n // multiple checkbox type control\n const currentArr = Array.isArray(this._store.state[fieldName])\n ? this._store.state[fieldName]\n : [];\n if (cb.checked) {\n // checked\n if (!this._store.state[fieldName].includes(cb.value)) {\n this._store.state[fieldName] = [...currentArr, cb.value];\n }\n } else {\n // unchecked\n this._store.state[fieldName] = currentArr.filter(\n (v) => v !== cb.value\n );\n }\n } else {\n // single checkbox - on or off\n if (cb.checked) this._store.state[fieldName] = cb.value;\n else this._store.state[fieldName] = '';\n }\n return;\n }\n\n if (field.tagName === 'NANO-FILE-UPLOAD') {\n const ff = field as HTMLNanoFileUploadElement;\n if (!this.fileStateEqual(fieldName, ff))\n this._store.state[fieldName] = ff.files;\n\n return;\n }\n\n // default\n this._store.state[fieldName] = field.value;\n });\n }\n\n /**\n * Tries to ascertain whether the current model\n * value is the same as the `nano-file-upload` value\n * @param fieldName - the key to access from the data store\n * @param field - the nano-file-upload field to assess against\n * @returns true for equal, false for not equal\n */\n private fileStateEqual(\n fieldName: string | number,\n field: HTMLNanoFileUploadElement\n ) {\n return (\n JSON.stringify(this._store.state[fieldName]) ===\n JSON.stringify(field.files) ||\n this._store.state[fieldName] == field.files\n );\n }\n\n /**\n * Checks for user defined validations\n * @param key - current key of the data model to validate\n * @param newVal - the newly set, incoming value to validate\n */\n private async validate(key: string | number, newVal: any) {\n if (!this.validation) return;\n\n const res = this.validation(key as string, newVal, this._store.state);\n\n // no nothing - return\n if (!res) return;\n\n // stencil public methods are async\n // so we must coerce our validation\n // collection loop into a promise\n await Promise.all(\n Object.entries(res).map(async ([key, o]) => {\n // switch on/off validation messages\n const field = this.allFields.find((f) => this.getName(f) === key);\n let validityTarget:\n | PlainFormEles\n | NanoFormEles\n | HTMLNanoCheckboxGroupElement = field;\n\n if (field.tagName === 'NANO-CHECKBOX') {\n // if we have a checkbox-group, set the validation message there\n const cbg = field.closest('nano-checkbox-group');\n validityTarget = cbg || field;\n }\n\n if (\n ((validityTarget as NanoFormEles).validityMessage ||\n (validityTarget as PlainFormEles).validationMessage) === o.msg &&\n o.valid\n ) {\n // status is now valid - clear the error\n await this.setFieldError(validityTarget, '');\n } else if (!o.valid) {\n // status is invalid. Set the error\n await this.setFieldError(validityTarget, o.msg);\n }\n })\n );\n }\n\n /** Loops through all store entries and checks custom validation */\n private async validateAllFields() {\n // This forces our loop to `await` and finish sequentially ... silly async stencil methods\n await Object.entries(this._store.state).reduce(\n async (memo, [key, value]) => {\n await memo;\n await this.validate(key, value);\n },\n undefined as any\n );\n }\n\n /**\n * Utility to smooth out setting error messages\n * (it's a different method on `nano-checkbox` 'cos they don't show errors themselves)\n * @param field\n * @param msg\n */\n private async setFieldError(\n field: NanoFormEles | HTMLNanoCheckboxGroupElement | PlainFormEles,\n msg: string\n ) {\n if (field['showError']) {\n await (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).showError(\n msg\n );\n } else if (field['setError'])\n await (field as HTMLNanoCheckboxElement).setError(msg);\n else (field as PlainFormEles).setCustomValidity(msg);\n }\n\n private scrollToFirstInvalid() {\n if (!this.scrollToInvalid) return;\n\n setTimeout(() => {\n const invalidField = this.validationState.find((f) => !f.valid);\n if (!invalidField) return;\n invalidField.fields[0].scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }, 200);\n }\n\n private submitForm() {\n const nanoSubmit = this.nanoSubmit.emit();\n if (nanoSubmit.defaultPrevented) return;\n this.activeForm.submit();\n }\n\n // Event handlers\n\n /**\n * Fired whenever store values change and potentially checks validity\n * @param key - the key of the store that's just changed\n * @param newVal - the incoming, new value\n */\n private handleStoreChange = async (key: string | number, newVal: any) => {\n const found = this.allFields.find((field) => this.getName(field) === key);\n\n // field update has come programmatically (not from ui),\n // so let's update the underlying ui field\n if (\n (found &&\n found.tagName === 'NANO-FILE-UPLOAD' &&\n !this.fileStateEqual(key, found as HTMLNanoFileUploadElement)) ||\n (found.tagName !== 'NANO-FILE-UPLOAD' && found.value !== newVal)\n ) {\n this.storeToFields([found]);\n }\n\n if (this.validateOn === 'dirty' && this.dirty) {\n this.internalValidate = true;\n await this.validateAllFields();\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n }\n this.nanoPayloadChange.emit(this._store.state);\n };\n\n /**\n * Handles nano field value changes and passes to store\n * @param ev - the incoming change event\n */\n private handleFieldChange = (ev: NanoFormEvent) => {\n if (!this.nanoFields.includes(ev.target)) return;\n this._dirty = true;\n this.fieldsToStore([ev.target]);\n };\n\n /**\n * Handles non-nano field value changes and passes to store\n * @param ev - the incoming change event\n */\n private handlePlainFieldChange = (ev: PlainFormEvent) => {\n if (!this.plainFields.includes(ev.target)) return;\n this.fieldsToStore([ev.target]);\n };\n\n /**\n * Handles default field validation events\n * @param ev - the invalid event\n */\n private handleFormInvalid = async (ev: Event & { target: PlainFormEles }) => {\n // if it's a non-nano field, we'll let default html5 validation do it's thing\n if (!this.plainFields.includes(ev.target)) {\n ev.preventDefault();\n }\n\n this._valid = false;\n\n // whenever `checkValidity` is called, this handler is in-turn called.\n // this flag is used to stop infinite loops\n if (this.internalValidate) return;\n\n // a submit must have happened to if 'submitThenDirty' turn on 'dirty' checking now\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n\n await this.validateAllFields();\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n // kinda insane...but if we're only validating on submit, then if the form is currently\n // in an invalid state, when submitting, it will fire an invalid event and not\n // submit the form. So let's test to make sure it is really invalid, and submit if not\n if (this.validateOn === 'submit') {\n if (this._valid) {\n this.submitForm();\n return;\n }\n }\n\n this.scrollToFirstInvalid();\n this.nanoInvalid.emit();\n };\n\n /**\n * stops default form submission, checks if valid, then submits manually\n * @param e - a submit event from the nested form element\n */\n private handleSubmit = async (e: Event) => {\n e.preventDefault();\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n await this.validateAllFields();\n\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n if (!this._valid) {\n this.scrollToFirstInvalid();\n return;\n }\n this.submitForm();\n };\n\n connectedCallback(): void {\n this.userForm = this.host.querySelector('form');\n this._store = createStore<ValidatorValueStore>({});\n }\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.setupFields();\n this.attachSlotObserver();\n\n this.host.addEventListener('nanoChange', this.handleFieldChange);\n this.host.addEventListener('input', this.handlePlainFieldChange);\n this.host.addEventListener('change', this.handlePlainFieldChange);\n this.host.addEventListener('submit', this.handleSubmit);\n this._store.on('set', this.handleStoreChange);\n });\n }\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n\n this.host.removeEventListener('nanoChange', this.handleFieldChange);\n this.host.removeEventListener('input', this.handlePlainFieldChange);\n this.host.removeEventListener('change', this.handlePlainFieldChange);\n this.host.removeEventListener('submit', this.handleSubmit);\n this._store.reset();\n\n if (this.activeForm)\n this.activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n }\n\n render() {\n return (\n <Host>\n {this.userForm && <slot />}\n {!this.userForm && (\n <form ref={(f) => (this.activeForm = f)}>\n <slot />\n </form>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["node_modules/@stencil/store/dist/index.mjs","src/components/field-validator/field-validator.tsx"],"names":["appendToMap","map","propName","value","items","get","set","includes","push","debounce","fn","ms","timeoutId","args","_i","arguments","length","clearTimeout","setTimeout","apply","isConnected","maybeElement","cleanupElements","_b","keys","key","filter","stencilSubscription","getRenderingRef","elmsToUpdate","Map","dispose","clear","elm","elements","forceUpdate","reset","forEach","elms","createObservableMap","defaultState","shouldUpdate","a","b","states","Object","entries","handlers","cb","oldValue","state","Proxy","_","ownKeys","Array","from","getOwnPropertyDescriptor","enumerable","configurable","has","on","eventName","callback","removeFromArray","onChange","unSet","newValue","unReset","use","subscriptions","unsubs","reduce","subscription","unsub","array","item","index","indexOf","createStore","FieldValidator","class_1","hostRef","_this","this","submitted","allFields","nanoFieldSelector","internalValidate","validateOn","scrollToInvalid","_dirty","extraFieldSelector","handleStoreChange","newVal","__awaiter","found","find","field","getName","tagName","fileStateEqual","storeToFields","dirty","validateAllFields","sent","_valid","activeForm","checkValidity","nanoPayloadChange","emit","_store","handleFieldChange","ev","nanoFields","target","fieldsToStore","handlePlainFieldChange","plainFields","handleFormInvalid","preventDefault","submitForm","scrollToFirstInvalid","nanoInvalid","handleSubmit","e","prototype","userFormChange","userForm","defineProperty","_activeForm","form","removeEventListener","addEventListener","validateOnChange","cbg","closest","validationState","v","name","validationMessage","pf","validityMessage","valid","nf","invalid","fields","f","setStore","val","store","setCustomValidity","validity","Promise","all","err","setFieldError","_c","resetValidity","__generator","attachSlotObserver","mo","MutationObserver","_entries","host","querySelector","setupFields","observe","childList","attributes","attributeFilter","subtree","getAttribute","querySelectorAll","__spreadArray","fieldName","type","checked","isArray","ff","_a","files","cb_1","currentArr","JSON","stringify","validate","validation","res","o","validityTarget","msg","memo","undefined","showError","setError","invalidField","scrollIntoView","behavior","block","nanoSubmit","defaultPrevented","submit","connectedCallback","componentDidLoad","requestAnimationFrame","disconnectedCallback","disconnect","render","h","Host","ref"],"mappings":"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","sourcesContent":["import { getRenderingRef, forceUpdate } from '@stencil/core';\n\nconst appendToMap = (map, propName, value) => {\n const items = map.get(propName);\n if (!items) {\n map.set(propName, [value]);\n }\n else if (!items.includes(value)) {\n items.push(value);\n }\n};\nconst debounce = (fn, ms) => {\n let timeoutId;\n return (...args) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n timeoutId = 0;\n fn(...args);\n }, ms);\n };\n};\n\n/**\n * Check if a possible element isConnected.\n * The property might not be there, so we check for it.\n *\n * We want it to return true if isConnected is not a property,\n * otherwise we would remove these elements and would not update.\n *\n * Better leak in Edge than to be useless.\n */\nconst isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;\nconst cleanupElements = debounce((map) => {\n for (let key of map.keys()) {\n map.set(key, map.get(key).filter(isConnected));\n }\n}, 2000);\nconst stencilSubscription = () => {\n if (typeof getRenderingRef !== 'function') {\n // If we are not in a stencil project, we do nothing.\n // This function is not really exported by @stencil/core.\n return {};\n }\n const elmsToUpdate = new Map();\n return {\n dispose: () => elmsToUpdate.clear(),\n get: (propName) => {\n const elm = getRenderingRef();\n if (elm) {\n appendToMap(elmsToUpdate, propName, elm);\n }\n },\n set: (propName) => {\n const elements = elmsToUpdate.get(propName);\n if (elements) {\n elmsToUpdate.set(propName, elements.filter(forceUpdate));\n }\n cleanupElements(elmsToUpdate);\n },\n reset: () => {\n elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));\n cleanupElements(elmsToUpdate);\n },\n };\n};\n\nconst createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {\n let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n const handlers = {\n dispose: [],\n get: [],\n set: [],\n reset: [],\n };\n const reset = () => {\n states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));\n handlers.reset.forEach((cb) => cb());\n };\n const dispose = () => {\n // Call first dispose as resetting the state would\n // cause less updates ;)\n handlers.dispose.forEach((cb) => cb());\n reset();\n };\n const get = (propName) => {\n handlers.get.forEach((cb) => cb(propName));\n return states.get(propName);\n };\n const set = (propName, value) => {\n const oldValue = states.get(propName);\n if (shouldUpdate(value, oldValue, propName)) {\n states.set(propName, value);\n handlers.set.forEach((cb) => cb(propName, value, oldValue));\n }\n };\n const state = (typeof Proxy === 'undefined'\n ? {}\n : new Proxy(defaultState, {\n get(_, propName) {\n return get(propName);\n },\n ownKeys(_) {\n return Array.from(states.keys());\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n has(_, propName) {\n return states.has(propName);\n },\n set(_, propName, value) {\n set(propName, value);\n return true;\n },\n }));\n const on = (eventName, callback) => {\n handlers[eventName].push(callback);\n return () => {\n removeFromArray(handlers[eventName], callback);\n };\n };\n const onChange = (propName, cb) => {\n const unSet = on('set', (key, newValue) => {\n if (key === propName) {\n cb(newValue);\n }\n });\n const unReset = on('reset', () => cb(defaultState[propName]));\n return () => {\n unSet();\n unReset();\n };\n };\n const use = (...subscriptions) => {\n const unsubs = subscriptions.reduce((unsubs, subscription) => {\n if (subscription.set) {\n unsubs.push(on('set', subscription.set));\n }\n if (subscription.get) {\n unsubs.push(on('get', subscription.get));\n }\n if (subscription.reset) {\n unsubs.push(on('reset', subscription.reset));\n }\n if (subscription.dispose) {\n unsubs.push(on('dispose', subscription.dispose));\n }\n return unsubs;\n }, []);\n return () => unsubs.forEach((unsub) => unsub());\n };\n const forceUpdate = (key) => {\n const oldValue = states.get(key);\n handlers.set.forEach((cb) => cb(key, oldValue, oldValue));\n };\n return {\n state,\n get,\n set,\n on,\n onChange,\n use,\n dispose,\n reset,\n forceUpdate,\n };\n};\nconst removeFromArray = (array, item) => {\n const index = array.indexOf(item);\n if (index >= 0) {\n array[index] = array[array.length - 1];\n array.length--;\n }\n};\n\nconst createStore = (defaultState, shouldUpdate) => {\n const map = createObservableMap(defaultState, shouldUpdate);\n map.use(stencilSubscription());\n return map;\n};\n\nexport { createObservableMap, createStore };\n","import {\n Component,\n Prop,\n h,\n Host,\n Element,\n ComponentInterface,\n State,\n Watch,\n Event,\n EventEmitter,\n Method,\n} from '@stencil/core';\nimport { createStore, ObservableMap } from '@stencil/store';\nimport {\n NanoFormEles,\n PlainFormEles,\n NanoFormEvent,\n ValidationState,\n ValidatorValueStore,\n PlainFormEvent,\n} from '../../interface';\n\n/**\n * A toolbox for `nano-...` form fields and form validation.\n * - Easy to add validation accross field dependencies - e.g. \"When Field1 contains '123' Field2 must contain '456'\"\n * - Easy access to whole form and individual field validity states\n * - Easy access to form data payload\n * = Access to 2-way, data bound reactive store\n * - Scroll to invalid field on submit\n */\n@Component({\n tag: 'nano-field-validator',\n})\nexport class FieldValidator implements ComponentInterface {\n // Internal State\n\n @Element() host: HTMLNanoFieldValidatorElement;\n @State() submitted = false;\n @State() userForm: HTMLFormElement;\n @Watch('userForm')\n userFormChange() {\n if (!!this.userForm) this.activeForm = this.userForm;\n }\n\n private get activeForm() {\n return this._activeForm;\n }\n private set activeForm(form: HTMLFormElement) {\n // manages event listners on whatever form is used (slotted on created here)\n if (!form) return;\n\n if (this._activeForm) {\n this._activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n }\n form.addEventListener('invalid', this.handleFormInvalid, true);\n this._activeForm = form;\n }\n private _activeForm: HTMLFormElement;\n private mo: MutationObserver;\n private allFields: Array<NanoFormEles | PlainFormEles> = [];\n private nanoFields: NanoFormEles[];\n private plainFields: PlainFormEles[];\n private nanoFieldSelector = `\n nano-input,\n nano-select,\n nano-file-upload,\n nano-date-input,\n nano-checkbox\n `;\n\n // annoyingly, whenever we attempt to `checkValidty()` it fires `invalid` events.\n // this is used to prevent infinite loops / multiple calls\n private internalValidate = false;\n\n // Public API\n\n /** When should the fields perform validation. Will override / sync all nested `nano-...` controls */\n @Prop({ mutable: true }) validateOn?: 'dirty' | 'submit' | 'submitThenDirty' =\n 'submitThenDirty';\n\n /** Sync up validateOn with all fields */\n @Watch('validateOn')\n validateOnChange() {\n this.nanoFields.forEach((field) => {\n if (field.tagName === 'NANO-CHECKBOX') {\n const cbg = field.closest('nano-checkbox-group');\n if (cbg) cbg.validateOn = this.validateOn;\n } else {\n (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).validateOn =\n this.validateOn;\n }\n });\n }\n\n /** Tries to scroll to the first invalid field on submit */\n @Prop() scrollToInvalid = true;\n\n /** Returns true if any nested fields have been changed @readonly */\n @Prop({ reflect: true })\n get dirty() {\n return this._dirty;\n }\n @State() _dirty = false;\n\n /** Returns true if all the nested fields are currently valid @readonly */\n @Prop({ reflect: true })\n get valid() {\n return this._valid;\n }\n @State() _valid: boolean;\n\n /** The current form state as a stencil store. */\n @Prop() get store() {\n return this._store;\n }\n @State() _store: ObservableMap<ValidatorValueStore>;\n\n /** The current form payload as a reactive proxy. @readonly */\n @Prop()\n get payload() {\n return this._store.state;\n }\n\n /** Returns true if validation errors will be displayed to the user. @readonly */\n @Prop()\n get showValidation() {\n return (this.validateOn === 'dirty' && this.dirty) || this.submitted;\n }\n\n /** Get the current validation state of all form fields. @readonly\n * ```\n {\n fields: NanoFormEles[];\n valid: boolean;\n validityMessage: string;\n dirty: boolean;\n name: string | number;\n value: any;\n }[]\n ```\n */\n @Prop()\n get validationState(): ValidationState[] {\n // TODO - migrate nano-fields away from using proprietary methods in a bid to be closer to the spec\n\n // this is big and ugly.\n // why? Cos' it must unify checking validity state for both\n // `nano-...` and plain form fields.\n const validationState: ValidationState[] = [];\n\n this.allFields.forEach(async (field) => {\n const found = validationState.find((v) => v.name === this.getName(field));\n let pf: PlainFormEles;\n let nf: NanoFormEles;\n\n if (found) {\n if ((field as PlainFormEles).validationMessage) {\n pf = field as PlainFormEles;\n found.validityMessage = pf.validationMessage.length\n ? pf.validationMessage\n : found.validityMessage;\n this.internalValidate = true;\n if (found.valid && !pf.checkValidity()) found.valid = false;\n this.internalValidate = false;\n } else if ((field as NanoFormEles).validityMessage) {\n nf = field as NanoFormEles;\n found.validityMessage = nf.validityMessage.length\n ? nf.validityMessage\n : nf.validityMessage;\n if (found.valid && nf.invalid) found.valid = false;\n }\n if (!found.fields.find((f) => f === field)) found.fields.push(field);\n }\n\n let valid: boolean;\n let validityMessage: string;\n\n if ((field as PlainFormEles).checkValidity) {\n pf = field as PlainFormEles;\n this.internalValidate = true;\n valid = pf.checkValidity();\n this.internalValidate = false;\n validityMessage = pf.validationMessage;\n } else {\n nf = field as NanoFormEles;\n valid = !nf.invalid;\n validityMessage = nf.validityMessage;\n }\n\n validationState.push({\n fields: [field],\n name: this.getName(field),\n value: this._store.state[this.getName(field)],\n dirty: false,\n valid,\n validityMessage,\n });\n });\n\n return validationState;\n }\n\n /** By default, `nano-field-validator` will also track all native form field elements.\n * You can add extra web-component form fields to listen to\n * (as long as they match the standard form field spec) by using the `fieldSelector` prop.\n */\n @Prop() extraFieldSelector: string = 'input, select, textarea';\n\n /** A validation callback method.\n * @param field - The field name currently being evaluated\n * @param value - The value of the field currently being evaluated\n * @param fields - an array of all currently observered form fields and values\n * @returns field names mapped to an object of status message and validity e.g.\n * ```js\n * {field1: {msg: `This is invalid!`}, field2: {msg: `This is valid!`, valid: true}}\n * ```\n */\n @Prop() validation: (\n field: string,\n value: string,\n fields: ValidatorValueStore\n ) => { [key: string]: { msg: string; valid?: boolean } };\n\n /**\n * Sets the state of the form using an object of key / value pairs.\n * @param state - the state to load in the store\n */\n @Method()\n async setStore(state: ValidatorValueStore) {\n Object.entries(state).forEach(([key, val]) => {\n const found = this.allFields.find((field) => this.getName(field) === key);\n if (found) this.store.state[key] = val;\n });\n }\n\n /**\n * Sets custom validity for all / some form fields.\n * @param validity - a validity object of `{fieldName: errorString}` pairs. Set as an empty string to clear the error.\n */\n @Method()\n async setCustomValidity(validity: { [key: string]: string }) {\n return await Promise.all(\n Object.entries(validity).map(async ([key, err]) => {\n const field = this.allFields.find((f) => this.getName(f) === key);\n if (!!field) await this.setFieldError(field, err);\n })\n );\n }\n\n /**\n * Clear all custom validation.\n * @param validity\n */\n @Method()\n async resetValidity() {\n return await Promise.all(\n this.allFields.map(async (field) => await this.setFieldError(field, ''))\n );\n }\n\n /** Fired whenever the payload changes */\n @Event() nanoPayloadChange: EventEmitter<ValidatorValueStore>;\n\n /**\n * Fired on valid form submission.\n * Note: if you wish to prevent a form from submitting, instead\n * of using / preventing the native `submit` event, use this event\n * ```js\n * ele.addEventListener('nanoSubmit', (e) => {\n * e.preventDefault()\n * })\n * ```\n */\n @Event() nanoSubmit: EventEmitter;\n\n /** Fire on invalid form submission attempt */\n @Event() nanoInvalid: EventEmitter;\n\n // private methods\n\n @Watch('extraFieldSelector')\n attachSlotObserver() {\n if (!!this.mo) return;\n const mo = (this.mo = new MutationObserver((_entries) => {\n const form = this.host.querySelector('form');\n if (form && form !== this.activeForm) this.activeForm = form;\n this.setupFields();\n }));\n mo.observe(this.host, {\n childList: true,\n attributes: true,\n attributeFilter: ['name'],\n subtree: true,\n });\n }\n\n /**\n * During spec tests, mockelement props aren't set - only attributes.\n * This irons out that kink\n * @param field\n * @returns\n */\n private getName(field: PlainFormEles | NanoFormEles) {\n return field.name || field.getAttribute('name');\n }\n\n /** Checks for new `nano-...` fields and adds them to our watch array and value store */\n private setupFields() {\n let nanoFields = Array.from(\n this.host.querySelectorAll<NanoFormEles>(this.nanoFieldSelector)\n );\n\n let plainFields = Array.from(\n this.host.querySelectorAll<PlainFormEles>(this.extraFieldSelector)\n ).filter((e) => !e.closest(this.nanoFieldSelector));\n\n nanoFields = nanoFields.filter(\n (f) => !!this.getName(f) && !!this.getName(f).length\n );\n plainFields = plainFields.filter(\n (f) => !!this.getName(f) && !!this.getName(f).length\n );\n\n // do we have any currently un-watched fields?\n if (\n ![...nanoFields, ...plainFields].filter(\n (f) => !this.allFields.includes(f)\n ).length\n )\n return;\n\n // setup the initial store state / refresh on new fields\n this.nanoFields = nanoFields;\n this.plainFields = plainFields;\n this.allFields = [...nanoFields, ...plainFields];\n\n this.storeToFields(this.allFields);\n\n this.validateOnChange();\n this.fieldsToStore(this.allFields);\n this.nanoPayloadChange.emit(this._store.state);\n }\n\n private storeToFields(fields: Array<NanoFormEles | PlainFormEles>) {\n fields.forEach((field) => {\n const fieldName = this.getName(field);\n if (\n !fieldName.length ||\n typeof this._store.state[fieldName] === 'undefined'\n )\n return;\n\n if (\n field.tagName === 'NANO-CHECKBOX' ||\n ['radio', 'checkbox'].includes((field as HTMLInputElement).type)\n ) {\n let cb = field as HTMLNanoCheckboxElement;\n if (\n cb.type === 'radio' ||\n cb.type === 'segment' ||\n cb.type === 'segment-pill'\n ) {\n // single radio type control\n if (this._store.state[fieldName] === cb.value) cb.checked = true;\n else cb.checked = false;\n } else if (Array.isArray(this._store.state[fieldName])) {\n // multiple checkbox like controls\n if (this._store.state[fieldName].includes(cb.value))\n cb.checked = true;\n else cb.checked = false;\n } else {\n // single checkbox like control\n if (this._store.state[fieldName] === cb.value) cb.checked = true;\n else cb.checked = false;\n }\n return;\n }\n\n if (field.tagName === 'NANO-FILE-UPLOAD') {\n const ff = field as HTMLNanoFileUploadElement;\n // this can only work if the field is empty rn... a one-time deal\n if (!ff.files?.length) ff.files = this._store.state[fieldName];\n return;\n }\n\n // default\n field.value = this._store.state[fieldName];\n });\n }\n\n /** Loops through all `nano-...` fields and extracts their values into our store */\n private fieldsToStore(fields: Array<NanoFormEles | PlainFormEles>) {\n fields.forEach((field) => {\n const fieldName = this.getName(field);\n if (!fieldName.length) return;\n\n if (\n field.tagName === 'NANO-CHECKBOX' ||\n ['radio', 'checkbox'].includes((field as HTMLInputElement).type)\n ) {\n let cb = field as HTMLNanoCheckboxElement;\n\n if (\n cb.type === 'radio' ||\n cb.type === 'segment' ||\n cb.type === 'segment-pill'\n ) {\n // radio type control - only one can be checked\n if (cb.checked) this._store.state[fieldName] = cb.value;\n } else if (\n this.allFields.filter(\n (f) =>\n this.getName(f) === fieldName &&\n (f.tagName === 'NANO-CHECKBOX' ||\n (f as HTMLInputElement).type === 'checkbox')\n ).length > 1\n ) {\n // multiple checkbox type control\n const currentArr = Array.isArray(this._store.state[fieldName])\n ? this._store.state[fieldName]\n : [];\n if (cb.checked) {\n // checked\n if (!this._store.state[fieldName].includes(cb.value)) {\n this._store.state[fieldName] = [...currentArr, cb.value];\n }\n } else {\n // unchecked\n this._store.state[fieldName] = currentArr.filter(\n (v) => v !== cb.value\n );\n }\n } else {\n // single checkbox - on or off\n if (cb.checked) this._store.state[fieldName] = cb.value;\n else this._store.state[fieldName] = '';\n }\n return;\n }\n\n if (field.tagName === 'NANO-FILE-UPLOAD') {\n const ff = field as HTMLNanoFileUploadElement;\n if (!this.fileStateEqual(fieldName, ff))\n this._store.state[fieldName] = ff.files;\n\n return;\n }\n\n // default\n this._store.state[fieldName] = field.value;\n });\n }\n\n /**\n * Tries to ascertain whether the current model\n * value is the same as the `nano-file-upload` value\n * @param fieldName - the key to access from the data store\n * @param field - the nano-file-upload field to assess against\n * @returns true for equal, false for not equal\n */\n private fileStateEqual(\n fieldName: string | number,\n field: HTMLNanoFileUploadElement\n ) {\n return (\n JSON.stringify(this._store.state[fieldName]) ===\n JSON.stringify(field.files) ||\n this._store.state[fieldName] == field.files\n );\n }\n\n /**\n * Checks for user defined validations\n * @param key - current key of the data model to validate\n * @param newVal - the newly set, incoming value to validate\n */\n private async validate(key: string | number, newVal: any) {\n if (!this.validation) return;\n\n const res = this.validation(key as string, newVal, this._store.state);\n\n // no nothing - return\n if (!res) return;\n\n // stencil public methods are async\n // so we must coerce our validation\n // collection loop into a promise\n await Promise.all(\n Object.entries(res).map(async ([key, o]) => {\n // switch on/off validation messages\n const field = this.allFields.find((f) => this.getName(f) === key);\n let validityTarget:\n | PlainFormEles\n | NanoFormEles\n | HTMLNanoCheckboxGroupElement = field;\n\n if (field.tagName === 'NANO-CHECKBOX') {\n // if we have a checkbox-group, set the validation message there\n const cbg = field.closest('nano-checkbox-group');\n validityTarget = cbg || field;\n }\n\n if (\n ((validityTarget as NanoFormEles).validityMessage ||\n (validityTarget as PlainFormEles).validationMessage) === o.msg &&\n o.valid\n ) {\n // status is now valid - clear the error\n await this.setFieldError(validityTarget, '');\n } else if (!o.valid) {\n // status is invalid. Set the error\n await this.setFieldError(validityTarget, o.msg);\n }\n })\n );\n }\n\n /** Loops through all store entries and checks custom validation */\n private async validateAllFields() {\n // This forces our loop to `await` and finish sequentially ... silly async stencil methods\n await Object.entries(this._store.state).reduce(\n async (memo, [key, value]) => {\n await memo;\n await this.validate(key, value);\n },\n undefined as any\n );\n }\n\n /**\n * Utility to smooth out setting error messages\n * (it's a different method on `nano-checkbox` 'cos they don't show errors themselves)\n * @param field\n * @param msg\n */\n private async setFieldError(\n field: NanoFormEles | HTMLNanoCheckboxGroupElement | PlainFormEles,\n msg: string\n ) {\n if (field['showError']) {\n await (field as Exclude<NanoFormEles, HTMLNanoCheckboxElement>).showError(\n msg\n );\n } else if (field['setError'])\n await (field as HTMLNanoCheckboxElement).setError(msg);\n else (field as PlainFormEles).setCustomValidity(msg);\n }\n\n private scrollToFirstInvalid() {\n if (!this.scrollToInvalid) return;\n\n setTimeout(() => {\n const invalidField = this.validationState.find((f) => !f.valid);\n if (!invalidField) return;\n invalidField.fields[0].scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }, 200);\n }\n\n private submitForm() {\n const nanoSubmit = this.nanoSubmit.emit();\n if (nanoSubmit.defaultPrevented) return;\n this.activeForm.submit();\n }\n\n // Event handlers\n\n /**\n * Fired whenever store values change and potentially checks validity\n * @param key - the key of the store that's just changed\n * @param newVal - the incoming, new value\n */\n private handleStoreChange = async (key: string | number, newVal: any) => {\n const found = this.allFields.find((field) => this.getName(field) === key);\n\n // field update has come programmatically (not from ui),\n // so let's update the underlying ui field\n if (\n found &&\n ((found.tagName === 'NANO-FILE-UPLOAD' &&\n !this.fileStateEqual(key, found as HTMLNanoFileUploadElement)) ||\n (found.tagName !== 'NANO-FILE-UPLOAD' && found.value !== newVal))\n ) {\n this.storeToFields([found]);\n }\n\n if (this.validateOn === 'dirty' && this.dirty) {\n this.internalValidate = true;\n await this.validateAllFields();\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n }\n this.nanoPayloadChange.emit(this._store.state);\n };\n\n /**\n * Handles nano field value changes and passes to store\n * @param ev - the incoming change event\n */\n private handleFieldChange = (ev: NanoFormEvent) => {\n if (!this.nanoFields.includes(ev.target)) return;\n this._dirty = true;\n this.fieldsToStore([ev.target]);\n };\n\n /**\n * Handles non-nano field value changes and passes to store\n * @param ev - the incoming change event\n */\n private handlePlainFieldChange = (ev: PlainFormEvent) => {\n if (!this.plainFields.includes(ev.target)) return;\n this.fieldsToStore([ev.target]);\n };\n\n /**\n * Handles default field validation events\n * @param ev - the invalid event\n */\n private handleFormInvalid = async (ev: Event & { target: PlainFormEles }) => {\n // if it's a non-nano field, we'll let default html5 validation do it's thing\n if (!this.plainFields.includes(ev.target)) {\n ev.preventDefault();\n }\n\n this._valid = false;\n\n // whenever `checkValidity` is called, this handler is in-turn called.\n // this flag is used to stop infinite loops\n if (this.internalValidate) return;\n\n // a submit must have happened to if 'submitThenDirty' turn on 'dirty' checking now\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n\n await this.validateAllFields();\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n // kinda insane...but if we're only validating on submit, then if the form is currently\n // in an invalid state, when submitting, it will fire an invalid event and not\n // submit the form. So let's test to make sure it is really invalid, and submit if not\n if (this.validateOn === 'submit') {\n if (this._valid) {\n this.submitForm();\n return;\n }\n }\n\n this.scrollToFirstInvalid();\n this.nanoInvalid.emit();\n };\n\n /**\n * stops default form submission, checks if valid, then submits manually\n * @param e - a submit event from the nested form element\n */\n private handleSubmit = async (e: Event) => {\n e.preventDefault();\n if (this.validateOn === 'submitThenDirty') this.validateOn = 'dirty';\n this.submitted = true;\n await this.validateAllFields();\n\n this.internalValidate = true;\n this._valid = this.activeForm.checkValidity();\n this.internalValidate = false;\n\n if (!this._valid) {\n this.scrollToFirstInvalid();\n return;\n }\n this.submitForm();\n };\n\n connectedCallback(): void {\n this.userForm = this.host.querySelector('form');\n this._store = createStore<ValidatorValueStore>({});\n }\n\n componentDidLoad() {\n requestAnimationFrame(() => {\n this.setupFields();\n this.attachSlotObserver();\n\n this.host.addEventListener('nanoChange', this.handleFieldChange);\n this.host.addEventListener('input', this.handlePlainFieldChange);\n this.host.addEventListener('change', this.handlePlainFieldChange);\n this.host.addEventListener('submit', this.handleSubmit);\n this._store.on('set', this.handleStoreChange);\n });\n }\n\n disconnectedCallback() {\n if (this.mo) this.mo.disconnect();\n\n this.host.removeEventListener('nanoChange', this.handleFieldChange);\n this.host.removeEventListener('input', this.handlePlainFieldChange);\n this.host.removeEventListener('change', this.handlePlainFieldChange);\n this.host.removeEventListener('submit', this.handleSubmit);\n this._store.reset();\n\n if (this.activeForm)\n this.activeForm.removeEventListener(\n 'invalid',\n this.handleFormInvalid,\n true\n );\n }\n\n render() {\n return (\n <Host>\n {this.userForm && <slot />}\n {!this.userForm && (\n <form ref={(f) => (this.activeForm = f)}>\n <slot />\n </form>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  var __awaiter=this&&this.__awaiter||function(t,e,n,a){function i(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,o){function r(t){try{l(a.next(t))}catch(e){o(e)}}function s(t){try{l(a["throw"](t))}catch(e){o(e)}}function l(t){t.done?n(t.value):i(t.value).then(r,s)}l((a=a.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},a,i,o,r;return r={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function s(t){return function(e){return l([t,e])}}function l(r){if(a)throw new TypeError("Generator is already executing.");while(n)try{if(a=1,i&&(o=r[0]&2?i["return"]:r[0]?i["throw"]||((o=i["return"])&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;if(i=0,o)r=[r[0]&2,o.value];switch(r[0]){case 0:case 1:o=r;break;case 4:n.label++;return{value:r[1],done:false};case 5:n.label++;i=r[1];r=[0];continue;case 7:r=n.ops.pop();n.trys.pop();continue;default:if(!(o=n.trys,o=o.length>0&&o[o.length-1])&&(r[0]===6||r[0]===2)){n=0;continue}if(r[0]===3&&(!o||r[1]>o[0]&&r[1]<o[3])){n.label=r[1];break}if(r[0]===6&&n.label<o[1]){n.label=o[1];o=r;break}if(o&&n.label<o[2]){n.label=o[2];n.ops.push(r);break}if(o[2])n.ops.pop();n.trys.pop();continue}r=e.call(t,n)}catch(s){r=[6,s];i=0}finally{a=o=0}if(r[0]&5)throw r[1];return{value:r[0]?r[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(t,e){for(var n=0,a=e.length,i=t.length;n<a;n++,i++)t[i]=e[n];return t};
2
2
  /*!
3
3
  * Web Components for Nanopore digital Web Apps
4
- */import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-c42becad.js";import{d as displayTransition,r as raf}from"./index-bf53664b.js";import{b as getSiblings,g as getDirectChildren,c as closestElement}from"./dom-faa69d29.js";import{F as FormControlWrap,a as FormControl}from"./form-control-ad05507c.js";import{d as debounce,a as debounceEvent}from"./throttle-d3d933cd.js";import{c as createColorClasses}from"./theme-1d4c8719.js";import{g as getActiveElement}from"./active-element-75b7c8a0.js";var navItemCss=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{opacity:inherit;display:block;color:var(--color) !important;margin:var(--margin)}:host ::slotted(*),:host *{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::slotted(button),:host button{background:none;border:none;margin:0}:host ::slotted(button),:host ::slotted(a),:host ::slotted(a:visited),:host button,:host a,:host a:visited{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:var(--display, block);white-space:nowrap;color:var(--color) !important;background-color:var(--bg-color)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(button),:host ::slotted(a),:host ::slotted(a:visited),:host button,:host a,:host a:visited{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host ::slotted(nano-icon[slot=icon-start]){padding-right:var(--padding-end)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(nano-icon[slot=icon-start]){padding-right:unset;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host ::slotted(nano-icon[slot=icon-end]){padding-left:var(--padding-start)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(nano-icon[slot=icon-end]){padding-left:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);}}:host .link::slotted(nano-icon[slot=icon-start]),:host .link ::slotted(nano-icon[slot=icon-start]){padding-left:var(--padding-start);padding-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .link::slotted(nano-icon[slot=icon-start]),:host .link ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:0;padding-inline-end:0}}:host .link::slotted(nano-icon[slot=icon-end]),:host .link ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .link::slotted(nano-icon[slot=icon-end]),:host .link ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host .link,:host button,:host a{border-bottom:var(--border-bottom);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host .secondary-menu{display:none}:host ::slotted(a:hover),:host ::slotted(button:hover),:host .link:hover,:host button:hover,:host a:hover{text-decoration:inherit !important}:host button:focus,:host a:focus{color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:var(--focus-outline, none)}:host ::slotted(a:focus),:host ::slotted(button:focus){color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:none}.nav-item.selected .link,.nav-item.selected button,.nav-item.selected a{color:var(--color-selected, var(--color-open, var(--color))) !important;background-color:var(--bg-color-selected, var(--bg-color-open, var(--bg-color)))}.nav-item.secondary-open button,.nav-item.secondary-open a{color:var(--color-open, var(--color-selected, var(--color))) !important;background-color:var(--bg-color-open, var(--secondary-bg-color, var(--bg-color-selected, var(--bg-color))))}.nav-item.disabled{opacity:0.6}.nav-item.disabled button,.nav-item.disabled a{color:var(--color-disabled, var(--color)) !important}.nav-item:not(.nano-menu) ::slotted(a:hover),.nav-item:not(.nano-menu) ::slotted(button:hover),.nav-item:not(.nano-menu) .link:hover,.nav-item:not(.nano-menu) button:hover,.nav-item:not(.nano-menu) a:hover{color:var(--color-hover, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-hover, var(--bg-color-focus, var(--bg-color)))}:host(.has-focus) .link{color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:var(--focus-outline, 5px auto -webkit-focus-ring-color)}:host(.nano-global-nav-menu) a,:host(.nano-global-nav-menu) a:visited,:host(.nano-global-nav-menu) button,:host(.nano-global-nav-menu) .link,:host(.nano-menu) a,:host(.nano-menu) a:visited,:host(.nano-menu) button,:host(.nano-menu) .link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:"currentColor";text-decoration:inherit;white-space:normal;cursor:pointer;line-height:1.2;width:100%}:host(.nano-global-nav-menu) .text,:host(.nano-menu) .text{padding-left:0;padding-right:var(--padding-end);-webkit-box-flex:1;-ms-flex:1;flex:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) .text,:host(.nano-menu) .text{padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) ::slotted(a),:host(.nano-global-nav-menu) ::slotted(button),:host(.nano-menu) ::slotted(a),:host(.nano-menu) ::slotted(button){-webkit-box-flex:1;-ms-flex:1;flex:1}:host(.nano-global-nav-menu) ::slotted(a:focus),:host(.nano-global-nav-menu) ::slotted(button:focus),:host(.nano-menu) ::slotted(a:focus),:host(.nano-menu) ::slotted(button:focus){-webkit-box-shadow:none;box-shadow:none}:host(.nano-global-nav-menu) .secondary-menu,:host(.nano-menu) .secondary-menu{display:none;position:absolute;color:var(--secondary-color, "currentColor");min-height:100%;top:0;left:0;width:100%;z-index:1;opacity:0;-webkit-transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, transform 0.3s ease;transition:opacity 0.2s ease, transform 0.3s ease, -webkit-transform 0.3s ease;background-color:var(--secondary-bg-color, white);-webkit-transform:translateX(100%);transform:translateX(100%)}:host(.nano-global-nav-menu) .secondary-menu:focus,:host(.nano-menu) .secondary-menu:focus{outline:none}:host(.nano-global-nav-menu) .secondary-menu.open,:host(.nano-menu) .secondary-menu.open{opacity:1;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity 0.3s ease, -webkit-transform 0.2s ease;transition:opacity 0.3s ease, -webkit-transform 0.2s ease;transition:opacity 0.3s ease, transform 0.2s ease;transition:opacity 0.3s ease, transform 0.2s ease, -webkit-transform 0.2s ease}:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-start]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 10px;flex:0 0 10px;pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) button ::slotted(nano-icon[slot=icon-end]),:host(.nano-global-nav-menu) a ::slotted(nano-icon[slot=icon-end]){padding:0}:host(.nano-global-nav-menu[dir=rtl]) .secondary-menu,:host(.nano-menu[dir=rtl]) .secondary-menu{left:auto;right:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}:host(.nano-global-nav-menu[dir=rtl]) .secondary-menu.open,:host(.nano-menu[dir=rtl]) .secondary-menu.open{-webkit-transform:translateX(0);transform:translateX(0)}:host(.nano-menu) .secondary-menu-content{padding-left:var(--secondary-padding-start);padding-right:var(--secondary-padding-end);padding-top:var(--secondary-padding-top);padding-bottom:var(--secondary-padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu) .secondary-menu-content{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--secondary-padding-start);padding-inline-start:var(--secondary-padding-start);-webkit-padding-end:var(--secondary-padding-end);padding-inline-end:var(--secondary-padding-end)}}:host(.nano-global-nav-bar.legacy){margin:0 11px}:host(.nano-global-nav-bar.legacy) ::slotted(a){padding-left:6px;padding-right:6px;padding-top:7px;padding-bottom:7px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar.legacy) ::slotted(a){padding-left:unset;padding-right:unset;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-padding-end:6px;padding-inline-end:6px}}:host(.nano-global-nav-menu.legacy) ::slotted(a){padding-left:12px;padding-right:12px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu.legacy) ::slotted(a){padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host(.nano-global-nav-bar) .link,:host(.nano-global-nav-bar) a,:host(.nano-global-nav-bar) button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;font-stretch:expanded}:host(.nano-global-nav-bar) .text{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-end]){margin-left:var(--padding-end);margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-end]){margin-left:unset;margin-right:unset;-webkit-margin-start:var(--padding-end);margin-inline-start:var(--padding-end);-webkit-margin-end:0;margin-inline-end:0}}:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-start]){margin-left:0;margin-right:var(--padding-start);margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--padding-start);margin-inline-end:var(--padding-start)}}:host(.nano-global-nav-bar.has-secondary) button{position:relative;font-stretch:expanded}:host(.nano-global-nav-bar.has-secondary) button::before{content:"";background:#86bee2;height:3px;left:0;bottom:-14px;right:5px;position:absolute;-webkit-transform:translateZ(0) scaleX(0);transform:translateZ(0) scaleX(0);-webkit-transform-origin:0;transform-origin:0;-webkit-transition:0.2s ease transform;transition:0.2s ease transform}:host(.nano-global-nav-bar.has-secondary) .selected button::before,:host(.nano-global-nav-bar.has-secondary) .secondary-open button::before{-webkit-transform:translateZ(0) scaleX(1);transform:translateZ(0) scaleX(1)}:host(.nano-global-nav-bar.has-secondary) .secondary-open button::before{opacity:0.5}:host(.nano-global-nav-bar.has-secondary) .secondary-menu{display:none;-webkit-transition:-webkit-transform 0.3s ease;transition:-webkit-transform 0.3s ease;transition:transform 0.3s ease;transition:transform 0.3s ease, -webkit-transform 0.3s ease;-webkit-transform:translateY(-100%) translateZ(0);transform:translateY(-100%) translateZ(0);background-color:var(--secondary-bg-color, #196c82);color:var(--secondary-color);position:absolute;-webkit-box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15);box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15);left:0;right:0;z-index:-2;outline:none}:host(.nano-global-nav-bar.has-secondary) .secondary-menu.open{-webkit-transform:translateY(12px) translateZ(0);transform:translateY(12px) translateZ(0)}:host(.nano-menu-drawer) .link,:host(.nano-menu-drawer) a,:host(.nano-menu-drawer) button{padding-left:var(--padding-start);padding-right:0;padding-top:calc(var(--padding-top) / 2);padding-bottom:calc(var(--padding-bottom) / 2);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:currentColor;text-decoration:inherit;white-space:normal;border:none;cursor:pointer;line-height:1.2;width:100%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .link,:host(.nano-menu-drawer) a,:host(.nano-menu-drawer) button{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:0;padding-inline-end:0}}:host(.nano-menu-drawer) .text{padding-left:0;padding-right:var(--padding-end);text-align:left;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;min-width:130px;width:130px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .text{padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-start]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:var(--icon-size);width:var(--icon-size);-webkit-box-flex:0;-ms-flex:0 0 var(--icon-size);flex:0 0 var(--icon-size)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 20px;flex:0 0 20px;min-width:20px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) .secondary-menu{display:none;position:absolute;background-color:var(--secondary-bg-color);color:var(--secondary-color);height:100vh;top:0;right:0;left:auto;bottom:0;-webkit-transform:translateX(0);transform:translateX(0);z-index:-1;-webkit-transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:transform 0.3s ease, opacity 0.2s ease;transition:transform 0.3s ease, opacity 0.2s ease, -webkit-transform 0.3s ease;overflow-y:auto;width:var(--secondary-width, 400px);max-width:62vw;opacity:1;padding-left:var(--secondary-padding-start, var(--padding-start));padding-right:var(--secondary-padding-end, var(--padding-end));padding-top:var(--secondary-padding-top, var(--padding-top));padding-bottom:var(--secondary-padding-bottom, var(--padding-bottom))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .secondary-menu{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--secondary-padding-start, var(--padding-start));padding-inline-start:var(--secondary-padding-start, var(--padding-start));-webkit-padding-end:var(--secondary-padding-end, var(--padding-end));padding-inline-end:var(--secondary-padding-end, var(--padding-end))}}:host(.nano-menu-drawer) .secondary-menu:focus{outline:none}:host(.nano-menu-drawer) .secondary-menu.open{-webkit-transform:translateX(100%);transform:translateX(100%)}:host(.nano-menu-drawer) .notification{position:relative}:host(.nano-menu-drawer) .notification::after{content:"";display:block;position:absolute;width:6px;height:6px;background-color:#ef4135;inset-inline-start:10px;top:7px;border-radius:50%}@media (min-width: 52em){:host(.nano-menu-drawer) .notification::after{width:7px;height:7px;inset-inline-start:8px;top:5px}}:host(.nano-menu-drawer.legacy) .link,:host(.nano-menu-drawer.legacy) a,:host(.nano-menu-drawer.legacy) button{width:auto}:host(.nano-menu-drawer.legacy) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:calc(var(--padding-end) * 2);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 20px;flex:0 0 20px;min-width:20px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer.legacy) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:calc(var(--padding-end) * 2);padding-inline-end:calc(var(--padding-end) * 2)}}:host(.nano-menu-drawer[dir=rtl]) .text{text-align:right}:host(.nano-menu-drawer[dir=rtl]) .secondary-menu{right:auto;left:0;-webkit-transform:translateX(0%);transform:translateX(0%)}:host(.nano-menu-drawer[dir=rtl]) .secondary-menu.open{-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:1}';var NavItem=function(){function t(t){var e=this;registerInstance(this,t);this.nanoClose=createEvent(this,"nanoClose",7);this.nanoOpen=createEvent(this,"nanoOpen",7);this.nanoOpening=createEvent(this,"nanoOpening",7);this.nanoClosing=createEvent(this,"nanoClosing",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoFocus=createEvent(this,"nanoFocus",7);this.hasSecondarySlot=false;this.hasAnchorEle=false;this.didBlur=false;this.animating=false;this.didOpen=false;this.isInGlobalNav=false;this.isInMenuDrawer=false;this.isInMenu=false;this.isLegacy=!document.head.attachShadow;this.hasFocus=false;this.href=null;this.target="_self";this.disabled=false;this.open=false;this.selected=false;this.secondaryActiveWidth=0;this.secondaryFallback=function(){};this.closeOnBlur=true;this.notification=false;this.closeSecondary=function(){return __awaiter(e,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:this.open=false;if(!this.hasSecondarySlot||!this.didOpen)return[2];this.nanoClosing.emit({secondaryMenu:this.secondaryDiv});return[4,displayTransition(this.secondaryDiv,"open",false)];case 1:t=e.sent();this.didOpen=t!=="hidden";return[2]}}))}))};this.openSecondary=function(){return __awaiter(e,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:if(window.innerWidth<this.secondaryActiveWidth){this.secondaryFallback.call(this);return[2]}this.open=true;if(!this.hasSecondarySlot||this.didOpen)return[2];this.nanoOpening.emit({secondaryMenu:this.secondaryDiv});return[4,displayTransition(this.secondaryDiv,"open",true)];case 1:t=e.sent();this.didOpen=t==="shown";return[2]}}))}))};this.toggleSecondary=function(){if(!e.hasSecondarySlot)return;if(e.didOpen)e.closeSecondary();else e.openSecondary()};this.handleFocus=function(){e.hasFocus=true;if(e.href&&!e.animating&&e.hasSecondarySlot)e.openSecondary();e.nanoFocus.emit()};this.handleHostBlur=function(){if(e.animating)return;e.el.removeAttribute("tabindex");e.hasFocus=false;e.nanoBlur.emit()};this.handleHostClick=function(t){if(!e.hasAnchorEle)return;var n=t.target.closest("a, button");if(!n)e.btn.click()};this.handleMouseEnter=function(){return __awaiter(e,void 0,void 0,(function(){var t;var e=this;return __generator(this,(function(n){if(!this.href||this.animating||!this.hasSecondarySlot||this.globalNavEle&&!this.globalNavEle.classList.contains("ready"))return[2];t=0;if(getSiblings(this.el,".secondary-open.has-secondary").length)t=300;clearTimeout(this.waitHide);this.fromHover=true;this.animating=true;this.waitShow=window.setTimeout((function(){return __awaiter(e,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.openSecondary()];case 1:return[2,t.sent()]}}))}))}),t);this.animating=false;return[2]}))}))};this.handleMouseLeave=function(){if(!e.href)return;clearTimeout(e.waitShow);e.fromHover=true;e.animating=true;e.waitHide=window.setTimeout((function(){return __awaiter(e,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.closeSecondary()];case 1:return[2,t.sent()]}}))}))}),300);e.animating=false};this.handleClick=function(){var t;e.fromHover=false;if(e.hasSecondarySlot)e.toggleSecondary();else(t=e.el.querySelector("*"))===null||t===void 0?void 0:t.click()};this.blur=function(t){if(!e.didOpen||e.animating)return;if(!e.closeOnBlur)return;if(t&&t.relatedTarget){if(t.relatedTarget===e.el||t.relatedTarget===e.btn||e.foundThisNavEle(t.relatedTarget)){e.secondaryDiv.focus({preventScroll:true});return}}e.btn.removeEventListener("focusout",e.blur);e.secondaryDiv.removeEventListener("focusout",e.blur);window.removeEventListener("blur",e.blur);e.didBlur=true;e.open=false;if(!t.relatedTarget)setTimeout((function(){e.el.focus({preventScroll:true})}),50)}}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.btn)return[2];this.btn.focus();return[2]}))}))};t.prototype.openChange=function(){this.open?this.openSecondary():this.closeSecondary()};t.prototype.didOpenChange=function(){var t=this;if(!this.hasSecondarySlot)return;if(!this.didOpen){if(!this.fromHover){this.btn.removeEventListener("focusout",this.blur);this.secondaryDiv.removeEventListener("focusout",this.blur)}setTimeout((function(){if(!t.fromHover&&!t.didBlur)t.btn.focus({preventScroll:true});t.nanoClose.emit({secondaryMenu:t.secondaryDiv})}),50)}else{this.didBlur=false;if(!this.fromHover){var e=new window.IntersectionObserver((function(n){if(n[0].boundingClientRect.top<0){t.secondaryDiv.scrollIntoView({behavior:"smooth"})}e.disconnect()}),{threshold:1});e.observe(this.secondaryDiv);this.secondaryDiv.focus({preventScroll:true});this.btn.addEventListener("focusout",this.blur);this.secondaryDiv.addEventListener("focusout",this.blur);window.addEventListener("blur",this.blur);this.el.tabIndex=-1;this.nanoOpen.emit({secondaryMenu:this.secondaryDiv})}}};t.prototype.foundThisNavEle=function(t){var e=t.closest("nano-nav-item");e=e===t?t.parentElement.closest("nano-nav-item"):e;if(!e)return false;if(e===this.el)return true;return this.foundThisNavEle(e)};t.prototype.componentWillLoad=function(){var t=this.el.querySelector('[slot="secondary"]');this.hasSecondarySlot=!!t;var e=getDirectChildren(this.el,"a, button")[0];this.hasAnchorEle=!!e;if(e){this.href=e.href?e.href:null;this.btn=e;if(this.hasSecondarySlot)this.btn.addEventListener("click",this.toggleSecondary);this.btn.addEventListener("focus",this.handleFocus);this.btn.addEventListener("blur",this.handleHostBlur)}};t.prototype.connectedCallback=function(){this.isInGlobalNav=false;this.isInMenuDrawer=false;this.globalNavEle=this.el.closest("nano-global-nav");this.isInMenuDrawer=!!this.el.closest("nano-menu-drawer");this.isInMenu=!!this.el.closest("nano-menu");this.isInGlobalNav=this.el.parentElement===this.globalNavEle||!!this.el.closest(".global-nav")};t.prototype.render=function(){var t=this;return h(Host,{class:{"has-secondary":this.hasSecondarySlot,"secondary-open":this.open,selected:this.selected,"has-focus":this.hasFocus,disabled:this.disabled,"nano-global-nav":this.isInGlobalNav,"nano-menu-drawer":this.isInMenuDrawer,"nano-menu":this.isInMenu,legacy:this.isLegacy},onBlur:this.handleHostBlur,dir:this.el.ownerDocument.dir==="rtl"?"rtl":null,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onClick:this.handleHostClick,role:"menuitem"},h("div",{class:{"nav-item":true,"secondary-open":this.open,selected:this.selected}},this.href&&!this.hasAnchorEle&&!this.disabled&&h("a",{target:this.target,ref:function(e){return t.btn=e},href:this.href,onFocus:this.handleFocus,class:{notification:this.notification}},h("slot",{name:"icon-start"}),h("span",{class:"text"},h("slot",null)),h("slot",{name:"icon-end"})),(!this.hasAnchorEle&&!this.href||this.disabled)&&h("button",{ref:function(e){return t.btn=e},onClick:this.handleClick,onFocus:this.handleFocus,disabled:this.disabled,class:{notification:this.notification}},h("slot",{name:"icon-start"}),h("span",{class:"text"},h("slot",null)),h("slot",{name:"icon-end"})),this.hasAnchorEle&&!this.disabled&&h("div",{class:"link"},h("slot",{name:"icon-start"}),h("slot",null),h("slot",{name:"icon-end"})),this.hasSecondarySlot&&!this.disabled&&h("div",{class:"secondary-menu",ref:function(e){return t.secondaryDiv=e},tabindex:"-1"},h("div",{class:"secondary-menu-content"},h("slot",{name:"secondary"})),h("div",{class:"secondary-menu-mask",onClick:this.closeSecondary}))))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{open:["openChange"],didOpen:["didOpenChange"]}},enumerable:false,configurable:true});return t}();NavItem.style=navItemCss;var selectCss='.sc-nano-select-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-select,*.sc-nano-select::before,*.sc-nano-select::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-select{display:none !important}[disabled].sc-nano-select-h:not([disabled=false]){opacity:0.5}.form-ctrl.sc-nano-select{min-width:100%;display:block}.form-ctrl.has-helper-end.sc-nano-select{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1rem;opacity:0}.form-ctrl.has-helper-end.is-ready.sc-nano-select{opacity:1}.form-ctrl.has-helper-end.sc-nano-select .form-ctrl__wrapper.sc-nano-select{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.form-ctrl.has-helper-end.sc-nano-select .form-ctrl__helper-end.sc-nano-select{display:none}.form-ctrl.has-helper-end.has-enough-width.sc-nano-select .form-ctrl__helper-end.sc-nano-select{display:block}.form-ctrl.has-helper-end.has-enough-width.sc-nano-select .form-ctrl__helper.sc-nano-select{display:none}.form-ctrl__wrapper.sc-nano-select{display:block}label.sc-nano-select,.form-ctrl__more.sc-nano-select,.form-ctrl__error.sc-nano-select,.form-ctrl__helper.sc-nano-select{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}label.visually-hide.sc-nano-select,.form-ctrl__more.visually-hide.sc-nano-select,.form-ctrl__error.visually-hide.sc-nano-select,.form-ctrl__helper.visually-hide.sc-nano-select{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.form-ctrl__float-label.sc-nano-select{padding-top:0;padding-bottom:0;-webkit-padding-end:0;padding-inline-end:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);color:var(--label-color);position:absolute;font-size:1.15em;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform-origin:top left;transform-origin:top left;top:50%;-webkit-transition:0.125s ease-in;transition:0.125s ease-in;opacity:1}.has-focus.sc-nano-select-h .form-ctrl__float-label.sc-nano-select,.has-value.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(-110%);transform:translateY(-110%);font-size:0.8em;opacity:0.7}.form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{opacity:0;-webkit-transition:opacity 0.125s ease-in;transition:opacity 0.125s ease-in}.has-focus.sc-nano-select-h .form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select,.has-value.sc-nano-select-h .form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{opacity:1}.form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:50%}.has-focus.sc-nano-select-h .form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:0;-webkit-transform:translateY(38%);transform:translateY(38%)}.has-value.sc-nano-select-h .form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:0;-webkit-transform:translateY(38%);transform:translateY(38%)}.form-ctrl__label.sc-nano-select{color:var(--label-color);font-size:var(--label-font-size);padding-bottom:var(--padding-bottom);line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex}.form-ctrl__label.sc-nano-select .form-ctrl__label-wrap.sc-nano-select{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.form-ctrl__label.sc-nano-select .form-ctrl__label-placeholder.sc-nano-select{margin-left:unset;margin-right:unset;margin-top:0;-webkit-margin-end:5px;margin-inline-end:5px;margin-bottom:0;-webkit-margin-start:0;margin-inline-start:0;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-transition:0.3s ease opacity;transition:0.3s ease opacity;font-size:0.9em}.form-ctrl__label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{margin-left:unset;margin-right:unset;margin-top:0;-webkit-margin-end:0;margin-inline-end:0;margin-bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;font-size:0.9em;opacity:0.5}.has-value.sc-nano-select-h .form-ctrl__label.sc-nano-select .form-ctrl__label-placeholder.sc-nano-select{opacity:0.5}.has-focus.sc-nano-select-h .form-ctrl__label.sc-nano-select{color:var(--label-color--focus)}.is-invalid.sc-nano-select-h .form-ctrl__label.sc-nano-select{color:var(--label-color--invalid)}.has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select{opacity:0;-webkit-transition:opacity 0.125s ease-in;transition:opacity 0.125s ease-in}.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select{opacity:1}.form-ctrl__more.sc-nano-select{height:1em;position:relative;margin-left:unset;margin-right:unset;margin-top:4px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:3px;margin-inline-start:3px;margin-bottom:var(--padding-bottom)}.form-ctrl__helper.sc-nano-select,.form-ctrl__error.sc-nano-select{top:0;left:0;position:absolute;font-size:var(--invalid-msg-font-size);line-height:1.2;-webkit-transition:0.3s ease-out opacity;transition:0.3s ease-out opacity}.form-ctrl__helper.sc-nano-select{font-style:italic;color:var(--help-msg-color)}[show-inline-error].sc-nano-select-h:not([show-inline-error=false]).is-invalid .form-ctrl__helper.sc-nano-select{opacity:0}.form-ctrl__helper-end.sc-nano-select{-webkit-box-flex:1;-ms-flex:1 1 30%;flex:1 1 30%;min-width:150px;font-size:var(--invalid-msg-font-size);color:var(--help-msg-color);font-style:italic}.form-ctrl__error.sc-nano-select{opacity:0;color:var(--invalid-msg-color);font-stretch:condensed}.is-invalid.sc-nano-select-h .form-ctrl__error.sc-nano-select{opacity:1}.form-ctrl__input.sc-nano-select{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--input-border-radius);width:100%;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important;position:relative;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--input-bg-color);border:var(--input-border-style);border-width:var(--input-border-width);font-size:var(--input-font-size);-webkit-padding-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important;padding-inline-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important}.has-focus.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--focus);border:var(--input-border-style--focus);border-width:var(--input-border-width);-webkit-padding-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important;padding-inline-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important}.is-invalid.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--invalid);border:var(--input-border-style--invalid);border-width:var(--input-border-width);-webkit-border-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);border-inline-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);-webkit-padding-start:0 !important;padding-inline-start:0 !important}.is-invalid.has-focus.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--invalid);border:var(--input-border-style--invalid-focus);border-width:var(--input-border-width);-webkit-border-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);border-inline-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);-webkit-padding-start:0 !important;padding-inline-start:0 !important}.form-ctrl__input-wrap.sc-nano-select{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%}.form-ctrl__clear-btn.sc-nano-select,.form-ctrl__slot-end.sc-nano-select,.form-ctrl__slot-start.sc-nano-select,.form-ctrl__slot-value-end.sc-nano-select{--nano-icon-size:1.4em;margin-top:0;margin-bottom:0;margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;font-size:1em;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:auto}.has-float-label.sc-nano-select .form-ctrl__slot-start.sc-nano-select{display:none}.form-ctrl__slot-start.sc-nano-select-s>*,.form-ctrl__slot-start .sc-nano-select-s>*,.form-ctrl__slot-end.sc-nano-select-s>*,.form-ctrl__slot-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select-s>*,.form-ctrl__slot-value-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{--nano-icon-size:1.4em;padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);font-size:1em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;z-index:1}.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-start.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-start .sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-end.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-end .sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end .sc-nano-select-s>*,[disabled].sc-nano-select-h:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{pointer-events:none}.form-ctrl__slot-value-end.sc-nano-select-s>*,.form-ctrl__slot-value-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{pointer-events:none}.form-ctrl__clear-btn.sc-nano-select{color:var(--clear-btn-color);padding:0;opacity:0;width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden}.is-invalid.sc-nano-select-h .form-ctrl__clear-btn.sc-nano-select{color:var(--clear-btn-color--invalid)}.has-value.sc-nano-select-h .form-ctrl__clear-btn.sc-nano-select{padding-top:0;padding-bottom:0;padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);opacity:1;width:auto}.form-ctrl__clear-btn.sc-nano-select:hover{color:var(--clear-btn-color--hover)}.sc-nano-select-h{--placeholder-color:var(--nano-input-placeholder-color, initial);--placeholder-font-style:var(--nano-input-placeholder-style, initial);--placeholder-font-weight:var(--nano-input-placeholder-weight, initial);--placeholder-opacity:var(--nano-input-placeholder-opacity, 0.5);--padding-top:var(--nano-input-padding-top, var(--nano-input-padding, 8px));--padding-end:var(--nano-input-padding-end, var(--nano-input-padding, 8px));--padding-bottom:var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));--padding-start:var(--nano-input-padding-start, var(--nano-input-padding, 8px));--color-invalid:var(--nano-color-danger-rgb, 239, 65, 53);--color--focus-rgb:var(\n --nano-color-base-rgb,\n var(--nano-color-primary-rgb, 0, 116, 149)\n );--input-font-size:var(--nano-input-font-size, 0.87em);--input-text-color:var(--nano-input-text-color, #4a4a4a);--input-border-width:var(--nano-input-border-width, 1px);--input-border-hint-width:3px;--input-border-color:var(--nano-input-border-color, #e4e6e8);--input-border-radius:var(--nano-input-border-radius, 0);--input-border-style:var(--nano-input-border-style, solid) var(--nano-input-border-color, #e4e6e8);--input-border-style--focus:var(--nano-input-border-style, solid) var(--nano-input-border-color--focus, #90c6e7);--input-border-style--invalid:var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #e4e6e8);--input-border-style--invalid-focus:var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #ef4135);--input-bg-color:var(--nano-input-background-color, #fff);--input-bg-color--focus:var(--input-bg-color);--input-bg-color--invalid:var(--nano-input-background-color, white);--invalid-msg-color:rgba(var(--color-invalid), 1);--invalid-msg-font-size:var(--nano-input-help-font-size, 0.75em);--help-msg-color:var(--nano-input-help-color, #616d6e);--clear-btn-color:var(--nano-clear-btn-color, rgba(0, 0, 0, 0.3));--clear-btn-color--hover:rgba(var(--color--focus-rgb), 1);--clear-btn-color--invalid:rgba(var(--color-invalid), 1);--label-color:var(--nano-input-label-color, "currentColor");--label-color--focus:var(--label-color);--label-color--invalid:var(--nano-input-label-color-invalid, "currentColor");--label-font-size:var(--nano-input-label-color, 1em);--multi-input-value-bg:var(--nano-input-tag-bg, 186, 220, 240);--multi-input-value-text-color:var(--nano-input-tag-color, #455556);--multi-input-value-border:var(--nano-input-tag-color, #badcf0);position:relative;width:100%;padding:0 !important;font-family:var(--nano-font-family, inherit);display:block}.nano-color.sc-nano-select-h{--input-border-style--focus:var(--nano-input-border-style, solid) var(--nano-color-tint, var(--nano-color-primary-tint, #2689a5));--multi-input-value-bg:var(--nano-color-tint-rgb);--multi-input-value-border:var(--nano-color-shade);--multi-input-value-text-color:var(--nano-color-contrast);color:var(--nano-color-base)}nano-item.sc-nano-select-h:not(.item-label),nano-item:not(.item-label) .sc-nano-select-h{--padding-start:0}[disabled].sc-nano-select-h:not([disabled=false]) *.sc-nano-select{pointer-events:none !important}select.sc-nano-select{display:none}.select__native-input.sc-nano-select{border-radius:var(--input-border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;text-overflow:ellipsis;color:var(--input-text-color);display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;overflow:hidden;cursor:default;line-height:2.5em;min-height:2.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__native-input.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.has-float-label.sc-nano-select .select__native-input.sc-nano-select{line-height:2.1em;min-height:2.1em;padding-top:1.4em}.select__native-input.sc-nano-select::-moz-selection{background:transparent}.select__native-input.sc-nano-select::selection{background:transparent}.select__native-input.sc-nano-select::-moz-selection{background:transparent}.select__native-input.sc-nano-select::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-moz-placeholder{line-height:2.8em;text-overflow:ellipsis}.select__native-input.sc-nano-select:-webkit-autofill{background-color:transparent}.select__native-input.sc-nano-select::-webkit-search-decoration,.select__native-input.sc-nano-select::-webkit-search-cancel-button,.select__native-input.sc-nano-select::-webkit-search-results-button,.select__native-input.sc-nano-select::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.select__native-input.sc-nano-select:invalid{-webkit-box-shadow:none;box-shadow:none}.select__native-input.sc-nano-select::-ms-clear,.select__native-input.sc-nano-select::-ms-reveal{display:none}.select__native-input.resizable.sc-nano-select{resize:vertical;overflow:auto}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select{line-height:1.5em;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);white-space:pre-wrap}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-webkit-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-moz-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select:-ms-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-ms-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::placeholder{line-height:1.5em}.has-float-label.textarea.sc-nano-select .select__native-input.sc-nano-select{padding-top:1.8em}.masked.sc-nano-select-h .select__native-input.sc-nano-select{opacity:0;position:absolute;left:0;top:0}.select__mask.sc-nano-select{border-radius:var(--input-border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;pointer-events:none;line-height:2.5em;min-height:2.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__mask.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.select__multi-wrap.sc-nano-select{padding-left:0;padding-right:0;padding-top:0;padding-bottom:calc(var(--padding-bottom) / 2);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden}.has-float-label.sc-nano-select-h .select__multi-wrap.sc-nano-select{padding-top:1.3em}.select__multi-input.sc-nano-select{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) / 2);padding-bottom:0;min-width:50px;width:100%;max-height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;outline:none;display:inline-block;background:transparent;-webkit-box-flex:0;-ms-flex:0;flex:0;position:relative;min-height:calc(2.5em - var(--padding-top));-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__multi-input.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.legacy.sc-nano-select-h .select__multi-input.sc-nano-select{-webkit-box-sizing:content-box;box-sizing:content-box}.select__multi-input.sc-nano-select:last-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.select__multi-value.sc-nano-select{margin-top:5px;-webkit-margin-start:var(--padding-start);margin-inline-start:var(--padding-start);-webkit-margin-end:-3px;margin-inline-end:-3px;background:rgba(var(--multi-input-value-bg), 0.8);color:var(--multi-input-value-text-color);border:1px solid;border-color:var(--multi-input-value-border);padding:0.2em 0.5em;line-height:1;max-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--input-font-size);letter-spacing:1px}.select__multi-value.sc-nano-select span.sc-nano-select{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden;line-height:1.2}.select__multi-value-remove.sc-nano-select{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;background-position:center;padding-left:0.5em;padding-right:0;padding-top:0;padding-bottom:0;color:inherit;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;top:0;font-size:1em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__multi-value-remove.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:0.5em;padding-inline-start:0.5em;-webkit-padding-end:0;padding-inline-end:0}}.select__multi-value-remove.sc-nano-select nano-icon.sc-nano-select{--color:var(--multi-input-value-text-color)}.form-ctrl__float-label.sc-nano-select{width:calc(100% - (1em + (var(--padding-start) * 2)))}.has-focus.has-multiple.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(-110%);transform:translateY(-110%);font-size:0.8em}.has-value.has-multiple.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(38%);transform:translateY(38%);top:0}.has-focus.sc-nano-select-h select.sc-nano-select,.has-focus.sc-nano-select-h a.sc-nano-select,.has-focus.sc-nano-select-h button.sc-nano-select{pointer-events:auto}';var selectIds=0;var Select=function(){function t(t){var e=this;registerInstance(this,t);this.nanoChange=createEvent(this,"nanoChange",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoFocus=createEvent(this,"nanoFocus",7);this.nanoDidLoad=createEvent(this,"nanoDidLoad",7);this.nanoDidUnload=createEvent(this,"nanoDidUnload",7);this.nanoSearchChange=createEvent(this,"nanoSearchChange",7);this.nanoValidate=createEvent(this,"nanoValidate",7);this.valueItems=[];this.selectId="nano-select-"+selectIds++;this.rtl=false;this.onInit=true;this.currInsertIndex=-1;this.showErrorMsg=false;this.errorMessage="";this.hasFocus=false;this.hasLabelSlot=false;this.hasHelperSlot=false;this.hasHelperEndSlot=false;this.inputSearchVal="";this._invalid=false;this.autofocus=false;this.disabled=false;this.validateOn="submitThenDirty";this.showInlineError=true;this.hideLabel=false;this.floatLabel=false;this.multiple=false;this.name=this.selectId+"-name";this.readonly=false;this.required=false;this.allowCustomValues=false;this._value=this.multiple?[]:"";this._options=[];this._eOptions=[];this.clearSelect=false;this.mask=false;this.debounce=0;this.dropDownConfig={};this.customValidate=function(){e.nativeSelect.setCustomValidity("");if(e.required&&!e.valArray.length){e.nativeSelect.setCustomValidity("Please fill in this field.");return true}if(e.valArray.length&&!e.allowCustomValues&&!e.isValidValues()){e.nativeSelect.setCustomValidity("Please choose an item from this field.");return true}if(e.max&&e.valArray.length>e.max){e.nativeSelect.setCustomValidity("Only up to "+e.max+" values are allowed.");return true}if(e.min&&e.valArray.length<e.min){e.nativeSelect.setCustomValidity("You must select a minimum of "+e.min+" values.");return true}return false};this.showInlineValidation=function(t){if(e.validateOn==="submitThenDirty")e.validateOn="dirty";e._invalid=false;e.showErrorMsg=false;e.errorMessage="";if(!e.nativeSelect.validity.valid){e.errorMessage=e.nativeSelect.validationMessage;e._invalid=true;e.showErrorMsg=true}e.nanoValidate.emit({isValid:!e.invalid,errorMessage:e.errorMessage,originalEvent:t})};this.handleInvalid=function(t){e._invalid=true;if(e.validateOn==="submit"){e._invalid=e.showErrorMsg=e.customValidate()}if(e.showInlineError)t.preventDefault();requestAnimationFrame((function(){return e.showInlineValidation(t)}))};this.setValue=function(t){t.preventDefault();if(!e.multiple){e.value=t.detail.value;e.inputCtrl.focus();return}if(e.value&&e.value.length&&e.value.includes(t.detail.value))return;if(e.max&&e.value.length===e.max)return;e.currInsertIndex++;e.value=__spreadArray(__spreadArray(__spreadArray([],e.value.slice(0,e.currInsertIndex)),[t.detail.value]),e.value.slice(e.currInsertIndex));e.inputSearchVal=""};this.removeValue=function(t){if(!e.multiple||!e.value.length)return;if(!t)t=e.value[e.value.length-1];e.value=e.value.filter((function(e){return e!==t}));e.currInsertIndex--;e.setFocus()};this.setOptions=function(){if(!e.datalist||!e.datalist.activeOptions||!e.datalist.activeOptions.length)return;e._eOptions=e.datalist.activeOptions.map((function(t){var e=t.value,n=t.selected,a=t.label,i=t.filterMeta;return{value:e,selected:n,label:a,filterMeta:i}}));e.customValidate()};this.handleDocumentKeyDown=function(t){if(!e.multiple||!e.hasFocus)return;if(!e.inputSearchVal){var n=void 0;switch(t.key){case"Backspace":if(e.inputCtrl.previousElementSibling)n=e.inputCtrl.previousElementSibling;else break;e.removeValue(n.dataset.value||null);break;case"Delete":if(e.inputCtrl.nextElementSibling)n=e.inputCtrl.nextElementSibling;else break;e.removeValue(n.dataset.value||null);break;case"ArrowLeft":case"ArrowRight":if(!e.value.length)break;if(t.key==="ArrowLeft"&&e.inputCtrl.previousSibling)e.currInsertIndex--;if(t.key==="ArrowRight"&&e.inputCtrl.nextSibling)e.currInsertIndex++;setTimeout((function(){e.inputCtrl.focus()}),20);t.preventDefault();break}}};this.onBlur=function(){e.hasFocus=false;requestAnimationFrame((function(){if(e.validateOn==="dirty"&&!e.hasFocus)e.showInlineValidation()}));e.nanoBlur.emit();if(!e.allowCustomValues&&e.multiple){e.inputSearchVal="";var t=new window.Event("change");e.inputCtrl.dispatchEvent(t)}};this.onFocus=function(){e.hasFocus=true;e.nanoFocus.emit()};this.clearSelectValue=function(t){if(e.clearSelect&&!e.readonly&&!e.disabled&&t){t.preventDefault();t.stopPropagation()}if(e.multiple){e.value=[];e.currInsertIndex=-1}else e.value="";e.inputCtrl.value="";var n=new window.Event("change");e.inputCtrl.dispatchEvent(n)};this.onClick=function(){e.setFocus()};this.onDragStart=function(t){var n=t.target;e.dragVal=n.dataset.value};this.onDragEnd=function(t){e.dragVal=null;t.preventDefault()};this.onDragLeave=function(t){var n=t.target;var a=n.dataset&&n.dataset.value?n.dataset.value:null;if(!a||e.dragVal===a||!e.value.includes(e.dragVal)){t.preventDefault();return}var i=e.value.indexOf(a);var o=e.value.indexOf(e.dragVal);var r=e.value;var s=r[i];r[i]=r[o];r[o]=s;e.value=__spreadArray([],r)};this.onMultiInput=function(t){e.inputSearchVal=t.target.value.trim();e.nanoSearchChange.emit({value:t.target.value.trim()})};this.showInlineValidation=debounce(this.showInlineValidation,50)}Object.defineProperty(t.prototype,"inputCtrl",{get:function(){return this._inputCtrl},set:function(t){if(t===this._inputCtrl)return;this._inputCtrl=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"selectWrap",{get:function(){return this._selectWrap},set:function(t){if(this._selectWrap===t)return;this._selectWrap=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"datalist",{get:function(){return this._datalist},set:function(t){if(this._datalist===t)return;this._datalist=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"invalid",{get:function(){return this._invalid},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"validityMessage",{get:function(){if(!this.nativeSelect)return"";return this.nativeSelect.validationMessage},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){if(typeof t==="string"){if(this.multiple)this._value=t.split(",");else this._value=t}else if(Array.isArray(t)){if(this.multiple)this._value=t;else this._value=t[0]}},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"options",{get:function(){if(this._options.length)return this._options;if(!this.datalist||!this.datalist.activeOptions)return[];return this._eOptions.map((function(t){var e=t.value,n=t.selected,a=t.label,i=t.filterMeta;return{value:e,selected:n,label:a,filterMeta:i}}))},set:function(t){this._options=t.map((function(t){if(typeof t==="string")return{value:t,label:t};else return t}))},enumerable:false,configurable:true});t.prototype.debounceChanged=function(){this.nanoSearchChange=debounceEvent(this.nanoSearchChange,this.debounce)};t.prototype.shouldValidate=function(){if(this.onInit)return;if(this.invalid)this.showErrorMsg=this._invalid=false;this.customValidate();if(this.validateOn!=="dirty")return;this.showInlineValidation()};t.prototype.valueChanged=function(){var t=this;this.customValidate();if(this.onInit){if(this.multiple)this.currInsertIndex=this.value.length-1;return}requestAnimationFrame((function(){t.shouldValidate();t.nanoChange.emit({value:t.value})}))};t.prototype.setDataListOpts=function(){if(!this.datalist||!this.selectWrap)return;this.datalist.input=this.inputCtrl;var t=this.datalist.dropDownConfig||{};this.datalist.dropDownConfig=Object.assign(Object.assign(Object.assign({},t),this.dropDownConfig),{tetherTo:this.selectWrap})};t.prototype.reportValidity=function(t){return __awaiter(this,void 0,void 0,(function(){var e=this;return __generator(this,(function(n){return[2,new Promise((function(n){if(t){e.customValidate();e.showInlineValidation()}setTimeout((function(){n({isValid:!e._invalid,errorMessage:e.nativeSelect.validationMessage})}),50)}))]}))}))};t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(e){if(!this.inputCtrl)return[2];this.inputCtrl.focus();setTimeout((function(){return t.inputCtrl.click()}),50);return[2]}))}))};t.prototype.getSelectElement=function(){return Promise.resolve(this.nativeSelect)};t.prototype.showError=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.nativeSelect){this.nativeSelect.setCustomValidity(t);this.showInlineValidation()}return[2]}))}))};Object.defineProperty(t.prototype,"valArray",{get:function(){return typeof this.value==="string"?this.value.length?[this.value]:[]:this.value},enumerable:false,configurable:true});t.prototype.isValidValues=function(){var t=this;return this.valArray.find((function(e){return t.options.find((function(t){return t.value===e}))}))};t.prototype.slotChangeObserver=function(){var t=this;var e=this.mo=new MutationObserver((function(){return t.processSlottedContent()}));e.observe(this.el,{childList:true,subtree:true})};t.prototype.processSlottedContent=function(){this.hasLabelSlot=!!this.el.querySelectorAll('[slot="label"]').length;this.hasHelperSlot=!!this.el.querySelector('[slot="helper"]');this.hasHelperEndSlot=!!this.el.querySelector('[slot="helper-end"]');if(!!this.el.querySelector('select:not([class*="sc-nano-select"]) option')){console.warn("nesting `<option>` elements was removed in v2. Please update your code to use `<nano-option>` elements instead.",this.el)}if(!!this.el.querySelector('[slot="legacy"]')){console.warn("The `legacy` slot has been removed. Please update your code",this.el)}};t.prototype.getLabel=function(t){var e=this.options.find((function(e){var n;return!e.disabled&&((n=e.value)===null||n===void 0?void 0:n.length)&&e.value===t}));return e&&e.label?e.label:t};t.prototype.onReset=function(t){var e=this.form?document.querySelector("#"+this.form):this.el.closest("form");if(!e||t.target!==this.el.closest("form"))return;this.clearSelectValue()};t.prototype.handleBlur=function(t){var e=this;if(!this.hasFocus)return;var n=t;var a;raf((function(){if(n.key){if(n.key!=="Tab")return;a=getActiveElement()}else a=t.target;if(closestElement(e.el.tagName.toLowerCase(),a)!==e.el){e.onBlur()}}))};t.prototype.connectedCallback=function(){this.debounceChanged();this.el.dispatchEvent(new CustomEvent("nanoDidLoad",{detail:this.el}))};t.prototype.disconnectedCallback=function(){document.dispatchEvent(new CustomEvent("nanoDidUnload",{detail:this.el}));if(this.mo)this.mo.disconnect()};t.prototype.componentDidLoad=function(){var t=this;this.slotChangeObserver();this.customValidate();this.setDataListOpts();raf((function(){return t.onInit=false}))};t.prototype.componentWillLoad=function(){this.processSlottedContent()};t.prototype.render=function(){var t=this;var e=this.selectId+"-lbl";var n=this.showInlineError||this.hasHelperSlot?this.selectId+"-moreId":"";var a=this.hasHelperEndSlot?this.selectId+"-helper":"";this.rtl=this.el.ownerDocument.dir==="rtl";this.valueItems=[];var i=function(t){var e=t.el,n=t.floatLabel,a=t.label,i=t.errorMessage,o=t.showInlineError,r=t.hasHelperSlot,s=t.hasHelperEndSlot,l=t.hasLabelSlot,d=t.hideLabel,c=t.placeholder,h=t.rtl;return{el:e,floatLabel:n,label:a,errorMessage:i,showInlineError:o,hasHelperSlot:r,hasHelperEndSlot:s,hasLabelSlot:l,hideLabel:d,placeholder:c,rtl:h}}(this);var o=Object.assign(Object.assign({},i),{labelId:e,moreId:n,helperEndId:a,hasValue:!!this.value.length||!!this.inputSearchVal.length,controlId:this.selectId});var r=function(e){var n=e.readonly,a=e.disabled;return{readonly:n,disabled:a,clearControl:t.clearSelect}}(this);return h(Host,{type:this.multiple?"select-multiple":"select-one","aria-disabled":this.disabled?"true":null,class:Object.assign(Object.assign({},createColorClasses(this.color)),{"has-value":!!this.value.length||!!this.inputSearchVal.length,"has-focus":this.hasFocus,"is-invalid":this.invalid,"has-label":this.label!==null&&!this.floatLabel,"has-float-label":this.label!==null&&this.floatLabel,rtl:this.rtl,"has-multiple":this.multiple,"has-clr-btn":this.clearSelect,masked:this.mask})},h(FormControlWrap,Object.assign({},o),h(FormControl,Object.assign({},r,{onClearText:this.clearSelectValue,control:this.el,ref:function(e){return t.selectWrap=e},endValueSlot:h("slot",{name:"down-arrow"},h("nano-icon",{slot:"value-end",name:"light/chevron-down"}))}),this.multiple&&h("div",{class:"select__multi-wrap select"},this.multipleValues(e,n,a)),!this.multiple&&[this.mask&&h("div",{class:"select__mask"},this.getLabel(this.value)),h("input",{id:this.selectId,class:"select__native-input",ref:function(e){return t.inputCtrl=e},"aria-labelledby":e+" "+n+" "+a,disabled:this.disabled,form:this.form,placeholder:this.placeholder,readOnly:true,required:this.required,value:this.getLabel(this.value),onFocus:this.onFocus})])),!this.readonly&&!this.disabled&&h("nano-datalist",{onNanoOptionsUpdated:this.setOptions,ref:function(e){return t.datalist=e},selected:this.valArray,type:this.multiple?"selctMulti":"select",onNanoSelect:this.setValue,onNanoDeselect:function(e){e.preventDefault();t.removeValue(e.detail.value)},options:this._options.length?this._options:undefined},this.allowCustomValues&&this.multiple&&!!this.inputSearchVal&&h("nano-option",{slot:"list-top",value:this.inputSearchVal,selected:false,label:this.inputSearchVal,onNanoSelect:function(){return t.inputCtrl.focus()}},h("span",{slot:"check-icon"}),"Add '",this.inputSearchVal,"'"),h("slot",null)),h("select",{id:this.selectId+"-hidden",class:"select__native-ctrl",ref:function(e){return t.nativeSelect=e},"aria-labelledby":e+" "+n+" "+a,disabled:this.disabled,form:this.form,multiple:this.multiple,name:this.name,required:this.required,onInvalid:this.handleInvalid},this.allowCustomValues&&this.valArray.map((function(t){return h("option",{value:t,selected:true},t)})),!this.allowCustomValues&&this.options.map((function(e){return h("option",{value:e.value,selected:t.valArray.includes(e.value),disabled:e.disabled,label:e.label},t.valArray.includes(e.value))}))))};t.prototype.multipleValues=function(t,e,n){var a=this;var i=h("input",{class:"select__multi-input",id:this.selectId,ref:function(t){return a.inputCtrl=t},readOnly:this.readonly,disabled:this.disabled,autoFocus:this.autofocus,autocomplete:"off",onKeyDown:this.handleDocumentKeyDown,onInput:this.onMultiInput,value:this.inputSearchVal,onTouchStart:this.onClick,onMouseDown:this.onClick,onFocus:this.onFocus,placeholder:this.placeholder&&!this.value.length?this.placeholder:"","aria-labelledby":t+" "+e+" "+n});if(!this.value.length)return i;return this.value.map((function(t,e){var n=h("span",{onDragStart:a.onDragStart,onDragLeave:a.onDragLeave,onDragEnd:a.onDragEnd,onDragOver:function(t){return t.preventDefault()},draggable:true,"data-value":t,ref:function(t){return a.valueItems.push(t)},class:"select__multi-value"},h("span",null,a.getLabel(t)),h("button",{class:"select__multi-value-remove",type:"button",tabindex:"-1",onTouchEnd:function(){a.removeValue(t)},onMouseUp:function(){a.removeValue(t)}},h("nano-icon",{name:"light/times"})));if(e===0&&a.currInsertIndex<0)n=[i,n];else if(e===a.currInsertIndex)n=[n,i];return n}))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{debounce:["debounceChanged"],required:["shouldValidate"],disabled:["shouldValidate"],min:["shouldValidate"],max:["shouldValidate"],readonly:["shouldValidate"],value:["valueChanged"],dropDownConfig:["setDataListOpts"]}},enumerable:false,configurable:true});return t}();Select.style=selectCss;export{NavItem as nano_nav_item,Select as nano_select};
4
+ */import{r as registerInstance,c as createEvent,h,e as Host,g as getElement}from"./index-c42becad.js";import{d as displayTransition,r as raf}from"./index-bf53664b.js";import{b as getSiblings,g as getDirectChildren,c as closestElement}from"./dom-faa69d29.js";import{F as FormControlWrap,a as FormControl}from"./form-control-ad05507c.js";import{d as debounce,a as debounceEvent}from"./throttle-d3d933cd.js";import{c as createColorClasses}from"./theme-1d4c8719.js";import{g as getActiveElement}from"./active-element-75b7c8a0.js";var navItemCss=':host{-webkit-box-sizing:border-box;box-sizing:border-box}*,*::before,*::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden]{display:none !important}:host{opacity:inherit;display:block;color:var(--color) !important;margin:var(--margin)}:host ::slotted(*),:host *{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::slotted(button),:host button{background:none;border:none;margin:0}:host ::slotted(button),:host ::slotted(a),:host ::slotted(a:visited),:host button,:host a,:host a:visited{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:var(--display, block);white-space:nowrap;color:var(--color) !important;background-color:var(--bg-color)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(button),:host ::slotted(a),:host ::slotted(a:visited),:host button,:host a,:host a:visited{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host ::slotted(nano-icon[slot=icon-start]){padding-right:var(--padding-end)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(nano-icon[slot=icon-start]){padding-right:unset;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host ::slotted(nano-icon[slot=icon-end]){padding-left:var(--padding-start)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host ::slotted(nano-icon[slot=icon-end]){padding-left:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);}}:host .link::slotted(nano-icon[slot=icon-start]),:host .link ::slotted(nano-icon[slot=icon-start]){padding-left:var(--padding-start);padding-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .link::slotted(nano-icon[slot=icon-start]),:host .link ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:0;padding-inline-end:0}}:host .link::slotted(nano-icon[slot=icon-end]),:host .link ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .link::slotted(nano-icon[slot=icon-end]),:host .link ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host .link,:host button,:host a{border-bottom:var(--border-bottom);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}:host .secondary-menu{display:none}:host ::slotted(a:hover),:host ::slotted(button:hover),:host .link:hover,:host button:hover,:host a:hover{text-decoration:inherit !important}:host button:focus,:host a:focus{color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:var(--focus-outline, none)}:host ::slotted(a:focus),:host ::slotted(button:focus){color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:none}.nav-item.selected .link,.nav-item.selected button,.nav-item.selected a{color:var(--color-selected, var(--color-open, var(--color))) !important;background-color:var(--bg-color-selected, var(--bg-color-open, var(--bg-color)))}.nav-item.secondary-open button,.nav-item.secondary-open a{color:var(--color-open, var(--color-selected, var(--color))) !important;background-color:var(--bg-color-open, var(--secondary-bg-color, var(--bg-color-selected, var(--bg-color))))}.nav-item.disabled{opacity:0.6}.nav-item.disabled button,.nav-item.disabled a{color:var(--color-disabled, var(--color)) !important}.nav-item:not(.nano-menu) ::slotted(a:hover),.nav-item:not(.nano-menu) ::slotted(button:hover),.nav-item:not(.nano-menu) .link:hover,.nav-item:not(.nano-menu) button:hover,.nav-item:not(.nano-menu) a:hover{color:var(--color-hover, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-hover, var(--bg-color-focus, var(--bg-color)))}:host(.has-focus) .link{color:var(--color-focus, var(--color-hover, var(--color))) !important;background-color:var(--bg-color-focus, var(--bg-color-hover, var(--bg-color)));outline:var(--focus-outline, 5px auto -webkit-focus-ring-color)}:host(.nano-global-nav-menu) a,:host(.nano-global-nav-menu) a:visited,:host(.nano-global-nav-menu) button,:host(.nano-global-nav-menu) .link,:host(.nano-menu) a,:host(.nano-menu) a:visited,:host(.nano-menu) button,:host(.nano-menu) .link{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:"currentColor";text-decoration:inherit;white-space:normal;cursor:pointer;line-height:1.2;width:100%}:host(.nano-global-nav-menu) .text,:host(.nano-menu) .text{padding-left:0;padding-right:var(--padding-end);-webkit-box-flex:1;-ms-flex:1;flex:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) .text,:host(.nano-menu) .text{padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) ::slotted(a),:host(.nano-global-nav-menu) ::slotted(button),:host(.nano-menu) ::slotted(a),:host(.nano-menu) ::slotted(button){-webkit-box-flex:1;-ms-flex:1;flex:1}:host(.nano-global-nav-menu) ::slotted(a:focus),:host(.nano-global-nav-menu) ::slotted(button:focus),:host(.nano-menu) ::slotted(a:focus),:host(.nano-menu) ::slotted(button:focus){-webkit-box-shadow:none;box-shadow:none}:host(.nano-global-nav-menu) .secondary-menu,:host(.nano-menu) .secondary-menu{display:none;position:absolute;color:var(--secondary-color, "currentColor");min-height:100%;top:0;left:0;width:100%;z-index:1;opacity:0;-webkit-transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, transform 0.3s ease;transition:opacity 0.2s ease, transform 0.3s ease, -webkit-transform 0.3s ease;background-color:var(--secondary-bg-color, white);-webkit-transform:translateX(100%);transform:translateX(100%)}:host(.nano-global-nav-menu) .secondary-menu:focus,:host(.nano-menu) .secondary-menu:focus{outline:none}:host(.nano-global-nav-menu) .secondary-menu.open,:host(.nano-menu) .secondary-menu.open{opacity:1;-webkit-transform:translateX(0);transform:translateX(0);-webkit-transition:opacity 0.3s ease, -webkit-transform 0.2s ease;transition:opacity 0.3s ease, -webkit-transform 0.2s ease;transition:opacity 0.3s ease, transform 0.2s ease;transition:opacity 0.3s ease, transform 0.2s ease, -webkit-transform 0.2s ease}:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-start]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 10px;flex:0 0 10px;pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-global-nav-menu) button ::slotted(nano-icon[slot=icon-end]),:host(.nano-global-nav-menu) a ::slotted(nano-icon[slot=icon-end]){padding:0}:host(.nano-global-nav-menu[dir=rtl]) .secondary-menu,:host(.nano-menu[dir=rtl]) .secondary-menu{left:auto;right:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}:host(.nano-global-nav-menu[dir=rtl]) .secondary-menu.open,:host(.nano-menu[dir=rtl]) .secondary-menu.open{-webkit-transform:translateX(0);transform:translateX(0)}:host(.nano-menu) .secondary-menu-content{padding-left:var(--secondary-padding-start);padding-right:var(--secondary-padding-end);padding-top:var(--secondary-padding-top);padding-bottom:var(--secondary-padding-bottom)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu) .secondary-menu-content{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--secondary-padding-start);padding-inline-start:var(--secondary-padding-start);-webkit-padding-end:var(--secondary-padding-end);padding-inline-end:var(--secondary-padding-end)}}:host(.nano-global-nav-bar.legacy){margin:0 11px}:host(.nano-global-nav-bar.legacy) ::slotted(a){padding-left:6px;padding-right:6px;padding-top:7px;padding-bottom:7px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar.legacy) ::slotted(a){padding-left:unset;padding-right:unset;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-padding-end:6px;padding-inline-end:6px}}:host(.nano-global-nav-menu.legacy) ::slotted(a){padding-left:12px;padding-right:12px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-menu.legacy) ::slotted(a){padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host(.nano-global-nav-bar) .link,:host(.nano-global-nav-bar) a,:host(.nano-global-nav-bar) button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;font-stretch:expanded}:host(.nano-global-nav-bar) .text{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto}:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-end]){margin-left:var(--padding-end);margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-end]){margin-left:unset;margin-right:unset;-webkit-margin-start:var(--padding-end);margin-inline-start:var(--padding-end);-webkit-margin-end:0;margin-inline-end:0}}:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-start]){margin-left:0;margin-right:var(--padding-start);margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-global-nav-bar) ::slotted(nano-icon[slot=icon-start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--padding-start);margin-inline-end:var(--padding-start)}}:host(.nano-global-nav-bar.has-secondary) button{position:relative;font-stretch:expanded}:host(.nano-global-nav-bar.has-secondary) button::before{content:"";background:#86bee2;height:3px;left:0;bottom:-14px;right:5px;position:absolute;-webkit-transform:translateZ(0) scaleX(0);transform:translateZ(0) scaleX(0);-webkit-transform-origin:0;transform-origin:0;-webkit-transition:0.2s ease transform;transition:0.2s ease transform}:host(.nano-global-nav-bar.has-secondary) .selected button::before,:host(.nano-global-nav-bar.has-secondary) .secondary-open button::before{-webkit-transform:translateZ(0) scaleX(1);transform:translateZ(0) scaleX(1)}:host(.nano-global-nav-bar.has-secondary) .secondary-open button::before{opacity:0.5}:host(.nano-global-nav-bar.has-secondary) .secondary-menu{display:none;-webkit-transition:-webkit-transform 0.3s ease;transition:-webkit-transform 0.3s ease;transition:transform 0.3s ease;transition:transform 0.3s ease, -webkit-transform 0.3s ease;-webkit-transform:translateY(-100%) translateZ(0);transform:translateY(-100%) translateZ(0);background-color:var(--secondary-bg-color, #196c82);color:var(--secondary-color);position:absolute;-webkit-box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15);box-shadow:0 1px 25px 0 rgba(0, 0, 0, 0.15);left:0;right:0;z-index:-2;outline:none}:host(.nano-global-nav-bar.has-secondary) .secondary-menu.open{-webkit-transform:translateY(12px) translateZ(0);transform:translateY(12px) translateZ(0)}:host(.nano-menu-drawer) .link,:host(.nano-menu-drawer) a,:host(.nano-menu-drawer) button{padding-left:var(--padding-start);padding-right:0;padding-top:calc(var(--padding-top) / 2);padding-bottom:calc(var(--padding-bottom) / 2);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:currentColor;text-decoration:inherit;white-space:normal;border:none;cursor:pointer;line-height:1.2;width:100%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .link,:host(.nano-menu-drawer) a,:host(.nano-menu-drawer) button{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:0;padding-inline-end:0}}:host(.nano-menu-drawer) .text{padding-left:0;padding-right:var(--padding-end);text-align:left;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;min-width:130px;width:130px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .text{padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-start]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:var(--icon-size);width:var(--icon-size);-webkit-box-flex:0;-ms-flex:0 0 var(--icon-size);flex:0 0 var(--icon-size)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-start]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 20px;flex:0 0 20px;min-width:20px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.nano-menu-drawer) .secondary-menu{display:none;position:absolute;background-color:var(--secondary-bg-color);color:var(--secondary-color);height:100vh;top:0;right:0;left:auto;bottom:0;-webkit-transform:translateX(0);transform:translateX(0);z-index:-1;-webkit-transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:opacity 0.2s ease, -webkit-transform 0.3s ease;transition:transform 0.3s ease, opacity 0.2s ease;transition:transform 0.3s ease, opacity 0.2s ease, -webkit-transform 0.3s ease;overflow-y:auto;width:var(--secondary-width, 400px);max-width:62vw;opacity:1;padding-left:var(--secondary-padding-start, var(--padding-start));padding-right:var(--secondary-padding-end, var(--padding-end));padding-top:var(--secondary-padding-top, var(--padding-top));padding-bottom:var(--secondary-padding-bottom, var(--padding-bottom))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer) .secondary-menu{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--secondary-padding-start, var(--padding-start));padding-inline-start:var(--secondary-padding-start, var(--padding-start));-webkit-padding-end:var(--secondary-padding-end, var(--padding-end));padding-inline-end:var(--secondary-padding-end, var(--padding-end))}}:host(.nano-menu-drawer) .secondary-menu:focus{outline:none}:host(.nano-menu-drawer) .secondary-menu.open{-webkit-transform:translateX(100%);transform:translateX(100%)}:host(.nano-menu-drawer) .notification{position:relative}:host(.nano-menu-drawer) .notification::after{content:"";display:block;position:absolute;width:6px;height:6px;background-color:#ef4135;inset-inline-start:10px;top:7px;border-radius:50%}@media (min-width: 52em){:host(.nano-menu-drawer) .notification::after{width:7px;height:7px;inset-inline-start:8px;top:5px}}:host(.nano-menu-drawer.legacy) .link,:host(.nano-menu-drawer.legacy) a,:host(.nano-menu-drawer.legacy) button{width:auto}:host(.nano-menu-drawer.legacy) ::slotted(nano-icon[slot=icon-end]){padding-left:0;padding-right:calc(var(--padding-end) * 2);padding-top:0;padding-bottom:0;font-size:10px;-webkit-box-flex:0;-ms-flex:0 0 20px;flex:0 0 20px;min-width:20px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.nano-menu-drawer.legacy) ::slotted(nano-icon[slot=icon-end]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:calc(var(--padding-end) * 2);padding-inline-end:calc(var(--padding-end) * 2)}}:host(.nano-menu-drawer[dir=rtl]) .text{text-align:right}:host(.nano-menu-drawer[dir=rtl]) .secondary-menu{right:auto;left:0;-webkit-transform:translateX(0%);transform:translateX(0%)}:host(.nano-menu-drawer[dir=rtl]) .secondary-menu.open{-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:1}';var NavItem=function(){function t(t){var e=this;registerInstance(this,t);this.nanoClose=createEvent(this,"nanoClose",7);this.nanoOpen=createEvent(this,"nanoOpen",7);this.nanoOpening=createEvent(this,"nanoOpening",7);this.nanoClosing=createEvent(this,"nanoClosing",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoFocus=createEvent(this,"nanoFocus",7);this.hasSecondarySlot=false;this.hasAnchorEle=false;this.didBlur=false;this.animating=false;this.didOpen=false;this.isInGlobalNav=false;this.isInMenuDrawer=false;this.isInMenu=false;this.isLegacy=!document.head.attachShadow;this.hasFocus=false;this.href=null;this.target="_self";this.disabled=false;this.open=false;this.selected=false;this.secondaryActiveWidth=0;this.secondaryFallback=function(){};this.closeOnBlur=true;this.notification=false;this.closeSecondary=function(){return __awaiter(e,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:this.open=false;if(!this.hasSecondarySlot||!this.didOpen)return[2];this.nanoClosing.emit({secondaryMenu:this.secondaryDiv});return[4,displayTransition(this.secondaryDiv,"open",false)];case 1:t=e.sent();this.didOpen=t!=="hidden";return[2]}}))}))};this.openSecondary=function(){return __awaiter(e,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:if(window.innerWidth<this.secondaryActiveWidth){this.secondaryFallback.call(this);return[2]}this.open=true;if(!this.hasSecondarySlot||this.didOpen)return[2];this.nanoOpening.emit({secondaryMenu:this.secondaryDiv});return[4,displayTransition(this.secondaryDiv,"open",true)];case 1:t=e.sent();this.didOpen=t==="shown";return[2]}}))}))};this.toggleSecondary=function(){if(!e.hasSecondarySlot)return;if(e.didOpen)e.closeSecondary();else e.openSecondary()};this.handleFocus=function(){e.hasFocus=true;if(e.href&&!e.animating&&e.hasSecondarySlot)e.openSecondary();e.nanoFocus.emit()};this.handleHostBlur=function(){if(e.animating)return;e.el.removeAttribute("tabindex");e.hasFocus=false;e.nanoBlur.emit()};this.handleHostClick=function(t){if(!e.hasAnchorEle)return;var n=t.target.closest("a, button");if(!n)e.btn.click()};this.handleMouseEnter=function(){return __awaiter(e,void 0,void 0,(function(){var t;var e=this;return __generator(this,(function(n){if(!this.href||this.animating||!this.hasSecondarySlot||this.globalNavEle&&!this.globalNavEle.classList.contains("ready"))return[2];t=0;if(getSiblings(this.el,".secondary-open.has-secondary").length)t=300;clearTimeout(this.waitHide);this.fromHover=true;this.animating=true;this.waitShow=window.setTimeout((function(){return __awaiter(e,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.openSecondary()];case 1:return[2,t.sent()]}}))}))}),t);this.animating=false;return[2]}))}))};this.handleMouseLeave=function(){if(!e.href)return;clearTimeout(e.waitShow);e.fromHover=true;e.animating=true;e.waitHide=window.setTimeout((function(){return __awaiter(e,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:return[4,this.closeSecondary()];case 1:return[2,t.sent()]}}))}))}),300);e.animating=false};this.handleClick=function(){var t;e.fromHover=false;if(e.hasSecondarySlot)e.toggleSecondary();else(t=e.el.querySelector("*"))===null||t===void 0?void 0:t.click()};this.blur=function(t){if(!e.didOpen||e.animating)return;if(!e.closeOnBlur)return;if(t&&t.relatedTarget){if(t.relatedTarget===e.el||t.relatedTarget===e.btn||e.foundThisNavEle(t.relatedTarget)){e.secondaryDiv.focus({preventScroll:true});return}}e.btn.removeEventListener("focusout",e.blur);e.secondaryDiv.removeEventListener("focusout",e.blur);window.removeEventListener("blur",e.blur);e.didBlur=true;e.open=false;if(!t.relatedTarget)setTimeout((function(){e.el.focus({preventScroll:true})}),50)}}t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(t){if(!this.btn)return[2];this.btn.focus();return[2]}))}))};t.prototype.openChange=function(){this.open?this.openSecondary():this.closeSecondary()};t.prototype.didOpenChange=function(){var t=this;if(!this.hasSecondarySlot)return;if(!this.didOpen){if(!this.fromHover){this.btn.removeEventListener("focusout",this.blur);this.secondaryDiv.removeEventListener("focusout",this.blur)}setTimeout((function(){if(!t.fromHover&&!t.didBlur)t.btn.focus({preventScroll:true});t.nanoClose.emit({secondaryMenu:t.secondaryDiv})}),50)}else{this.didBlur=false;if(!this.fromHover){var e=new window.IntersectionObserver((function(n){if(n[0].boundingClientRect.top<0){t.secondaryDiv.scrollIntoView({behavior:"smooth"})}e.disconnect()}),{threshold:1});e.observe(this.secondaryDiv);this.secondaryDiv.focus({preventScroll:true});this.btn.addEventListener("focusout",this.blur);this.secondaryDiv.addEventListener("focusout",this.blur);window.addEventListener("blur",this.blur);this.el.tabIndex=-1;this.nanoOpen.emit({secondaryMenu:this.secondaryDiv})}}};t.prototype.foundThisNavEle=function(t){var e=t.closest("nano-nav-item");e=e===t?t.parentElement.closest("nano-nav-item"):e;if(!e)return false;if(e===this.el)return true;return this.foundThisNavEle(e)};t.prototype.componentWillLoad=function(){var t=this.el.querySelector('[slot="secondary"]');this.hasSecondarySlot=!!t;var e=getDirectChildren(this.el,"a, button")[0];this.hasAnchorEle=!!e;if(e){this.href=e.href?e.href:null;this.btn=e;if(this.hasSecondarySlot)this.btn.addEventListener("click",this.toggleSecondary);this.btn.addEventListener("focus",this.handleFocus);this.btn.addEventListener("blur",this.handleHostBlur)}};t.prototype.connectedCallback=function(){this.isInGlobalNav=false;this.isInMenuDrawer=false;this.globalNavEle=this.el.closest("nano-global-nav");this.isInMenuDrawer=!!this.el.closest("nano-menu-drawer");this.isInMenu=!!this.el.closest("nano-menu");this.isInGlobalNav=this.el.parentElement===this.globalNavEle||!!this.el.closest(".global-nav")};t.prototype.render=function(){var t=this;return h(Host,{class:{"has-secondary":this.hasSecondarySlot,"secondary-open":this.open,selected:this.selected,"has-focus":this.hasFocus,disabled:this.disabled,"nano-global-nav":this.isInGlobalNav,"nano-menu-drawer":this.isInMenuDrawer,"nano-menu":this.isInMenu,legacy:this.isLegacy},onBlur:this.handleHostBlur,dir:this.el.ownerDocument.dir==="rtl"?"rtl":null,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onClick:this.handleHostClick,role:"menuitem"},h("div",{class:{"nav-item":true,"secondary-open":this.open,selected:this.selected}},this.href&&!this.hasAnchorEle&&!this.disabled&&h("a",{target:this.target,ref:function(e){return t.btn=e},href:this.href,onFocus:this.handleFocus,class:{notification:this.notification}},h("slot",{name:"icon-start"}),h("span",{class:"text"},h("slot",null)),h("slot",{name:"icon-end"})),(!this.hasAnchorEle&&!this.href||this.disabled)&&h("button",{ref:function(e){return t.btn=e},onClick:this.handleClick,onFocus:this.handleFocus,disabled:this.disabled,class:{notification:this.notification}},h("slot",{name:"icon-start"}),h("span",{class:"text"},h("slot",null)),h("slot",{name:"icon-end"})),this.hasAnchorEle&&!this.disabled&&h("div",{class:"link"},h("slot",{name:"icon-start"}),h("slot",null),h("slot",{name:"icon-end"})),this.hasSecondarySlot&&!this.disabled&&h("div",{class:"secondary-menu",ref:function(e){return t.secondaryDiv=e},tabindex:"-1"},h("div",{class:"secondary-menu-content"},h("slot",{name:"secondary"})),h("div",{class:"secondary-menu-mask",onClick:this.closeSecondary}))))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{open:["openChange"],didOpen:["didOpenChange"]}},enumerable:false,configurable:true});return t}();NavItem.style=navItemCss;var selectCss='.sc-nano-select-h{-webkit-box-sizing:border-box;box-sizing:border-box}*.sc-nano-select,*.sc-nano-select::before,*.sc-nano-select::after{-webkit-box-sizing:border-box;box-sizing:border-box}[hidden].sc-nano-select{display:none !important}[disabled].sc-nano-select-h:not([disabled=false]){opacity:0.5}.form-ctrl.sc-nano-select{min-width:100%;display:block}.form-ctrl.has-helper-end.sc-nano-select{display:-webkit-box;display:-ms-flexbox;display:flex;gap:1rem;opacity:0}.form-ctrl.has-helper-end.is-ready.sc-nano-select{opacity:1}.form-ctrl.has-helper-end.sc-nano-select .form-ctrl__wrapper.sc-nano-select{-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%}.form-ctrl.has-helper-end.sc-nano-select .form-ctrl__helper-end.sc-nano-select{display:none}.form-ctrl.has-helper-end.has-enough-width.sc-nano-select .form-ctrl__helper-end.sc-nano-select{display:block}.form-ctrl.has-helper-end.has-enough-width.sc-nano-select .form-ctrl__helper.sc-nano-select{display:none}.form-ctrl__wrapper.sc-nano-select{display:block}label.sc-nano-select,.form-ctrl__more.sc-nano-select,.form-ctrl__error.sc-nano-select,.form-ctrl__helper.sc-nano-select{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}label.visually-hide.sc-nano-select,.form-ctrl__more.visually-hide.sc-nano-select,.form-ctrl__error.visually-hide.sc-nano-select,.form-ctrl__helper.visually-hide.sc-nano-select{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.form-ctrl__float-label.sc-nano-select{padding-top:0;padding-bottom:0;-webkit-padding-end:0;padding-inline-end:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);color:var(--label-color);position:absolute;font-size:1.15em;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transform-origin:top left;transform-origin:top left;top:50%;-webkit-transition:0.125s ease-in;transition:0.125s ease-in;opacity:1}.has-focus.sc-nano-select-h .form-ctrl__float-label.sc-nano-select,.has-value.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(-110%);transform:translateY(-110%);font-size:0.8em;opacity:0.7}.form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{opacity:0;-webkit-transition:opacity 0.125s ease-in;transition:opacity 0.125s ease-in}.has-focus.sc-nano-select-h .form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select,.has-value.sc-nano-select-h .form-ctrl__float-label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{opacity:1}.form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:50%}.has-focus.sc-nano-select-h .form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:0;-webkit-transform:translateY(38%);transform:translateY(38%)}.has-value.sc-nano-select-h .form-ctrl__textarea.sc-nano-select .form-ctrl__float-label.sc-nano-select{top:0;-webkit-transform:translateY(38%);transform:translateY(38%)}.form-ctrl__label.sc-nano-select{color:var(--label-color);font-size:var(--label-font-size);padding-bottom:var(--padding-bottom);line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex}.form-ctrl__label.sc-nano-select .form-ctrl__label-wrap.sc-nano-select{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.form-ctrl__label.sc-nano-select .form-ctrl__label-placeholder.sc-nano-select{margin-left:unset;margin-right:unset;margin-top:0;-webkit-margin-end:5px;margin-inline-end:5px;margin-bottom:0;-webkit-margin-start:0;margin-inline-start:0;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-transition:0.3s ease opacity;transition:0.3s ease opacity;font-size:0.9em}.form-ctrl__label.sc-nano-select .form-ctrl__label-charcount.sc-nano-select{margin-left:unset;margin-right:unset;margin-top:0;-webkit-margin-end:0;margin-inline-end:0;margin-bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;font-size:0.9em;opacity:0.5}.has-value.sc-nano-select-h .form-ctrl__label.sc-nano-select .form-ctrl__label-placeholder.sc-nano-select{opacity:0.5}.has-focus.sc-nano-select-h .form-ctrl__label.sc-nano-select{color:var(--label-color--focus)}.is-invalid.sc-nano-select-h .form-ctrl__label.sc-nano-select{color:var(--label-color--invalid)}.has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select{opacity:0;-webkit-transition:opacity 0.125s ease-in;transition:opacity 0.125s ease-in}.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .select__multi-input.sc-nano-select,.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .select__native-input.sc-nano-select,.has-focus.sc-nano-select-h .has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select,.has-value.sc-nano-select-h .has-float-label.sc-nano-select .input__native-ctrl.sc-nano-select{opacity:1}.form-ctrl__more.sc-nano-select{height:1em;position:relative;margin-left:unset;margin-right:unset;margin-top:4px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:3px;margin-inline-start:3px;margin-bottom:var(--padding-bottom)}.form-ctrl__helper.sc-nano-select,.form-ctrl__error.sc-nano-select{top:0;left:0;position:absolute;font-size:var(--invalid-msg-font-size);line-height:1.2;-webkit-transition:0.3s ease-out opacity;transition:0.3s ease-out opacity}.form-ctrl__helper.sc-nano-select{font-style:italic;color:var(--help-msg-color)}[show-inline-error].sc-nano-select-h:not([show-inline-error=false]).is-invalid .form-ctrl__helper.sc-nano-select{opacity:0}.form-ctrl__helper-end.sc-nano-select{-webkit-box-flex:1;-ms-flex:1 1 30%;flex:1 1 30%;min-width:150px;font-size:var(--invalid-msg-font-size);color:var(--help-msg-color);font-style:italic}.form-ctrl__error.sc-nano-select{opacity:0;color:var(--invalid-msg-color);font-stretch:condensed}.is-invalid.sc-nano-select-h .form-ctrl__error.sc-nano-select{opacity:1}.form-ctrl__input.sc-nano-select{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--input-border-radius);width:100%;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important;position:relative;-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;background:var(--input-bg-color);border:var(--input-border-style);border-width:var(--input-border-width);font-size:var(--input-font-size);-webkit-padding-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important;padding-inline-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important}.has-focus.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--focus);border:var(--input-border-style--focus);border-width:var(--input-border-width);-webkit-padding-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important;padding-inline-start:calc(var(--input-border-hint-width) - var(--input-border-width)) !important}.is-invalid.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--invalid);border:var(--input-border-style--invalid);border-width:var(--input-border-width);-webkit-border-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);border-inline-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);-webkit-padding-start:0 !important;padding-inline-start:0 !important}.is-invalid.has-focus.sc-nano-select-h .form-ctrl__input.sc-nano-select{background:var(--input-bg-color--invalid);border:var(--input-border-style--invalid-focus);border-width:var(--input-border-width);-webkit-border-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);border-inline-start:var(--input-border-style--invalid-focus) var(--input-border-hint-width);-webkit-padding-start:0 !important;padding-inline-start:0 !important}.form-ctrl__input-wrap.sc-nano-select{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%}.form-ctrl__clear-btn.sc-nano-select,.form-ctrl__slot-end.sc-nano-select,.form-ctrl__slot-start.sc-nano-select,.form-ctrl__slot-value-end.sc-nano-select{--nano-icon-size:1.4em;margin-top:0;margin-bottom:0;margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:0;margin-inline-end:0;font-size:1em;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:auto}.has-float-label.sc-nano-select .form-ctrl__slot-start.sc-nano-select{display:none}.form-ctrl__slot-start.sc-nano-select-s>*,.form-ctrl__slot-start .sc-nano-select-s>*,.form-ctrl__slot-end.sc-nano-select-s>*,.form-ctrl__slot-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select-s>*,.form-ctrl__slot-value-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{--nano-icon-size:1.4em;padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);font-size:1em;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;z-index:1}.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-start.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-start .sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-end.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-end .sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-select-s>*,.sc-nano-select-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end .sc-nano-select-s>*,[disabled].sc-nano-select-h:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{pointer-events:none}.form-ctrl__slot-value-end.sc-nano-select-s>*,.form-ctrl__slot-value-end .sc-nano-select-s>*,.form-ctrl__slot-value-end.sc-nano-select *.sc-nano-select{pointer-events:none}.form-ctrl__clear-btn.sc-nano-select{color:var(--clear-btn-color);padding:0;opacity:0;width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden}.is-invalid.sc-nano-select-h .form-ctrl__clear-btn.sc-nano-select{color:var(--clear-btn-color--invalid)}.has-value.sc-nano-select-h .form-ctrl__clear-btn.sc-nano-select{padding-top:0;padding-bottom:0;padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);opacity:1;width:auto}.form-ctrl__clear-btn.sc-nano-select:hover{color:var(--clear-btn-color--hover)}.sc-nano-select-h{--placeholder-color:var(--nano-input-placeholder-color, initial);--placeholder-font-style:var(--nano-input-placeholder-style, initial);--placeholder-font-weight:var(--nano-input-placeholder-weight, initial);--placeholder-opacity:var(--nano-input-placeholder-opacity, 0.5);--padding-top:var(--nano-input-padding-top, var(--nano-input-padding, 8px));--padding-end:var(--nano-input-padding-end, var(--nano-input-padding, 8px));--padding-bottom:var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));--padding-start:var(--nano-input-padding-start, var(--nano-input-padding, 8px));--color-invalid:var(--nano-color-danger-rgb, 239, 65, 53);--color--focus-rgb:var(\n --nano-color-base-rgb,\n var(--nano-color-primary-rgb, 0, 116, 149)\n );--input-font-size:var(--nano-input-font-size, 0.87em);--input-text-color:var(--nano-input-text-color, #4a4a4a);--input-border-width:var(--nano-input-border-width, 1px);--input-border-hint-width:3px;--input-border-color:var(--nano-input-border-color, #e4e6e8);--input-border-radius:var(--nano-input-border-radius, 0);--input-border-style:var(--nano-input-border-style, solid) var(--nano-input-border-color, #e4e6e8);--input-border-style--focus:var(--nano-input-border-style, solid) var(--nano-input-border-color--focus, #90c6e7);--input-border-style--invalid:var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #e4e6e8);--input-border-style--invalid-focus:var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #ef4135);--input-bg-color:var(--nano-input-background-color, #fff);--input-bg-color--focus:var(--input-bg-color);--input-bg-color--invalid:var(--nano-input-background-color, white);--invalid-msg-color:rgba(var(--color-invalid), 1);--invalid-msg-font-size:var(--nano-input-help-font-size, 0.75em);--help-msg-color:var(--nano-input-help-color, #616d6e);--clear-btn-color:var(--nano-clear-btn-color, rgba(0, 0, 0, 0.3));--clear-btn-color--hover:rgba(var(--color--focus-rgb), 1);--clear-btn-color--invalid:rgba(var(--color-invalid), 1);--label-color:var(--nano-input-label-color, "currentColor");--label-color--focus:var(--label-color);--label-color--invalid:var(--nano-input-label-color-invalid, "currentColor");--label-font-size:var(--nano-input-label-color, 1em);--multi-input-value-bg:var(--nano-input-tag-bg, 186, 220, 240);--multi-input-value-text-color:var(--nano-input-tag-color, #455556);--multi-input-value-border:var(--nano-input-tag-color, #badcf0);position:relative;width:100%;padding:0 !important;font-family:var(--nano-font-family, inherit);display:block}.nano-color.sc-nano-select-h{--input-border-style--focus:var(--nano-input-border-style, solid) var(--nano-color-tint, var(--nano-color-primary-tint, #2689a5));--multi-input-value-bg:var(--nano-color-tint-rgb);--multi-input-value-border:var(--nano-color-shade);--multi-input-value-text-color:var(--nano-color-contrast);color:var(--nano-color-base)}nano-item.sc-nano-select-h:not(.item-label),nano-item:not(.item-label) .sc-nano-select-h{--padding-start:0}[disabled].sc-nano-select-h:not([disabled=false]) *.sc-nano-select{pointer-events:none !important}select.sc-nano-select{display:none}.select__native-input.sc-nano-select{border-radius:var(--input-border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;text-overflow:ellipsis;color:var(--input-text-color);display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;overflow:hidden;cursor:default;line-height:2.5em;min-height:2.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__native-input.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.has-float-label.sc-nano-select .select__native-input.sc-nano-select{line-height:2.1em;min-height:2.1em;padding-top:1.4em}.select__native-input.sc-nano-select::-moz-selection{background:transparent}.select__native-input.sc-nano-select::selection{background:transparent}.select__native-input.sc-nano-select::-moz-selection{background:transparent}.select__native-input.sc-nano-select::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity);line-height:inherit;min-height:inherit}.select__native-input.sc-nano-select::-moz-placeholder{line-height:2.8em;text-overflow:ellipsis}.select__native-input.sc-nano-select:-webkit-autofill{background-color:transparent}.select__native-input.sc-nano-select::-webkit-search-decoration,.select__native-input.sc-nano-select::-webkit-search-cancel-button,.select__native-input.sc-nano-select::-webkit-search-results-button,.select__native-input.sc-nano-select::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.select__native-input.sc-nano-select:invalid{-webkit-box-shadow:none;box-shadow:none}.select__native-input.sc-nano-select::-ms-clear,.select__native-input.sc-nano-select::-ms-reveal{display:none}.select__native-input.resizable.sc-nano-select{resize:vertical;overflow:auto}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select{line-height:1.5em;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);white-space:pre-wrap}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-webkit-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-moz-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select:-ms-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::-ms-input-placeholder{line-height:1.5em}.form-ctrl__textarea.sc-nano-select .select__native-input.sc-nano-select::placeholder{line-height:1.5em}.has-float-label.textarea.sc-nano-select .select__native-input.sc-nano-select{padding-top:1.8em}.masked.sc-nano-select-h .select__native-input.sc-nano-select{opacity:0;position:absolute;left:0;top:0}.select__mask.sc-nano-select{border-radius:var(--input-border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:0;padding-bottom:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;pointer-events:none;line-height:2.5em;min-height:2.5em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__mask.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.select__multi-wrap.sc-nano-select{padding-left:0;padding-right:0;padding-top:0;padding-bottom:calc(var(--padding-bottom) / 2);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:hidden}.has-float-label.sc-nano-select-h .select__multi-wrap.sc-nano-select{padding-top:1.3em}.select__multi-input.sc-nano-select{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) / 2);padding-bottom:0;min-width:50px;width:100%;max-height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;outline:none;display:inline-block;background:transparent;-webkit-box-flex:0;-ms-flex:0;flex:0;position:relative;min-height:calc(2.5em - var(--padding-top));-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__multi-input.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.legacy.sc-nano-select-h .select__multi-input.sc-nano-select{-webkit-box-sizing:content-box;box-sizing:content-box}.select__multi-input.sc-nano-select:last-child{-webkit-box-flex:1;-ms-flex:1;flex:1}.select__multi-value.sc-nano-select{margin-top:5px;-webkit-margin-start:var(--padding-start);margin-inline-start:var(--padding-start);-webkit-margin-end:-3px;margin-inline-end:-3px;background:rgba(var(--multi-input-value-bg), 0.8);color:var(--multi-input-value-text-color);border:1px solid;border-color:var(--multi-input-value-border);padding:0.2em 0.5em;line-height:1;max-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:var(--input-font-size);letter-spacing:1px}.select__multi-value.sc-nano-select span.sc-nano-select{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden;line-height:1.2}.select__multi-value-remove.sc-nano-select{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;background-position:center;padding-left:0.5em;padding-right:0;padding-top:0;padding-bottom:0;color:inherit;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;top:0;font-size:1em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.select__multi-value-remove.sc-nano-select{padding-left:unset;padding-right:unset;-webkit-padding-start:0.5em;padding-inline-start:0.5em;-webkit-padding-end:0;padding-inline-end:0}}.select__multi-value-remove.sc-nano-select nano-icon.sc-nano-select{--color:var(--multi-input-value-text-color)}.form-ctrl__float-label.sc-nano-select{width:calc(100% - (1em + (var(--padding-start) * 2)))}.has-focus.has-multiple.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(-110%);transform:translateY(-110%);font-size:0.8em}.has-value.has-multiple.sc-nano-select-h .form-ctrl__float-label.sc-nano-select{-webkit-transform:translateY(38%);transform:translateY(38%);top:0}.has-focus.sc-nano-select-h select.sc-nano-select,.has-focus.sc-nano-select-h a.sc-nano-select,.has-focus.sc-nano-select-h button.sc-nano-select{pointer-events:auto}';var selectIds=0;var Select=function(){function t(t){var e=this;registerInstance(this,t);this.nanoChange=createEvent(this,"nanoChange",7);this.nanoBlur=createEvent(this,"nanoBlur",7);this.nanoFocus=createEvent(this,"nanoFocus",7);this.nanoDidLoad=createEvent(this,"nanoDidLoad",7);this.nanoDidUnload=createEvent(this,"nanoDidUnload",7);this.nanoSearchChange=createEvent(this,"nanoSearchChange",7);this.nanoValidate=createEvent(this,"nanoValidate",7);this.valueItems=[];this.selectId="nano-select-"+selectIds++;this.rtl=false;this.onInit=true;this.currInsertIndex=-1;this.showErrorMsg=false;this.errorMessage="";this.hasFocus=false;this.hasLabelSlot=false;this.hasHelperSlot=false;this.hasHelperEndSlot=false;this.inputSearchVal="";this._invalid=false;this.autofocus=false;this.disabled=false;this.validateOn="submitThenDirty";this.showInlineError=true;this.hideLabel=false;this.floatLabel=false;this.multiple=false;this.name=this.selectId+"-name";this.readonly=false;this.required=false;this.allowCustomValues=false;this._value=this.multiple?[]:"";this._options=[];this._eOptions=[];this.clearSelect=false;this.mask=false;this.debounce=0;this.dropDownConfig={};this.customValidate=function(){e.nativeSelect.setCustomValidity("");if(e.required&&!e.valArray.length){e.nativeSelect.setCustomValidity("Please fill in this field.");return true}if(e.valArray.length&&!e.allowCustomValues&&!e.isValidValues()){e.nativeSelect.setCustomValidity("Please choose an item from this field.");return true}if(e.max&&e.valArray.length>e.max){e.nativeSelect.setCustomValidity("Only up to "+e.max+" values are allowed.");return true}if(e.min&&e.valArray.length<e.min){e.nativeSelect.setCustomValidity("You must select a minimum of "+e.min+" values.");return true}return false};this.showInlineValidation=function(t){if(e.validateOn==="submitThenDirty")e.validateOn="dirty";e._invalid=false;e.showErrorMsg=false;e.errorMessage="";if(!e.nativeSelect.validity.valid){e.errorMessage=e.nativeSelect.validationMessage;e._invalid=true;e.showErrorMsg=true}e.nanoValidate.emit({isValid:!e.invalid,errorMessage:e.errorMessage,originalEvent:t})};this.handleInvalid=function(t){e._invalid=true;if(e.validateOn==="submit"){e._invalid=e.showErrorMsg=e.customValidate()}if(e.showInlineError)t.preventDefault();requestAnimationFrame((function(){return e.showInlineValidation(t)}))};this.setValue=function(t){t.preventDefault();if(!e.multiple){e.value=t.detail.value;return}if(e.value&&e.value.length&&e.value.includes(t.detail.value))return;if(e.max&&e.value.length===e.max)return;e.currInsertIndex++;e.value=__spreadArray(__spreadArray(__spreadArray([],e.value.slice(0,e.currInsertIndex)),[t.detail.value]),e.value.slice(e.currInsertIndex));e.inputSearchVal=""};this.removeValue=function(t){if(!e.multiple||!e.value.length)return;if(!t)t=e.value[e.value.length-1];e.value=e.value.filter((function(e){return e!==t}));e.currInsertIndex--;e.setFocus()};this.setOptions=function(){if(!e.datalist||!e.datalist.activeOptions||!e.datalist.activeOptions.length)return;e._eOptions=e.datalist.activeOptions.map((function(t){var e=t.value,n=t.selected,a=t.label,i=t.filterMeta;return{value:e,selected:n,label:a,filterMeta:i}}));e.customValidate()};this.handleDocumentKeyDown=function(t){if(!e.multiple||!e.hasFocus)return;if(!e.inputSearchVal){var n=void 0;switch(t.key){case"Backspace":if(e.inputCtrl.previousElementSibling)n=e.inputCtrl.previousElementSibling;else break;e.removeValue(n.dataset.value||null);break;case"Delete":if(e.inputCtrl.nextElementSibling)n=e.inputCtrl.nextElementSibling;else break;e.removeValue(n.dataset.value||null);break;case"ArrowLeft":case"ArrowRight":if(!e.value.length)break;if(t.key==="ArrowLeft"&&e.inputCtrl.previousSibling)e.currInsertIndex--;if(t.key==="ArrowRight"&&e.inputCtrl.nextSibling)e.currInsertIndex++;setTimeout((function(){e.inputCtrl.focus()}),20);t.preventDefault();break}}};this.onBlur=function(){e.hasFocus=false;requestAnimationFrame((function(){if(e.validateOn==="dirty"&&!e.hasFocus)e.showInlineValidation()}));e.nanoBlur.emit();if(!e.allowCustomValues&&e.multiple){e.inputSearchVal="";var t=new window.Event("change");e.inputCtrl.dispatchEvent(t)}};this.onFocus=function(){e.hasFocus=true;e.nanoFocus.emit()};this.clearSelectValue=function(t){if(e.clearSelect&&!e.readonly&&!e.disabled&&t){t.preventDefault();t.stopPropagation()}if(e.multiple){e.value=[];e.currInsertIndex=-1}else e.value="";e.inputCtrl.value="";var n=new window.Event("change");e.inputCtrl.dispatchEvent(n)};this.onClick=function(){e.setFocus()};this.onDragStart=function(t){var n=t.target;e.dragVal=n.dataset.value};this.onDragEnd=function(t){e.dragVal=null;t.preventDefault()};this.onDragLeave=function(t){var n=t.target;var a=n.dataset&&n.dataset.value?n.dataset.value:null;if(!a||e.dragVal===a||!e.value.includes(e.dragVal)){t.preventDefault();return}var i=e.value.indexOf(a);var o=e.value.indexOf(e.dragVal);var r=e.value;var s=r[i];r[i]=r[o];r[o]=s;e.value=__spreadArray([],r)};this.onMultiInput=function(t){e.inputSearchVal=t.target.value.trim();e.nanoSearchChange.emit({value:t.target.value.trim()})};this.showInlineValidation=debounce(this.showInlineValidation,50)}Object.defineProperty(t.prototype,"inputCtrl",{get:function(){return this._inputCtrl},set:function(t){if(t===this._inputCtrl)return;this._inputCtrl=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"selectWrap",{get:function(){return this._selectWrap},set:function(t){if(this._selectWrap===t)return;this._selectWrap=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"datalist",{get:function(){return this._datalist},set:function(t){if(this._datalist===t)return;this._datalist=t;this.setDataListOpts()},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"invalid",{get:function(){return this._invalid},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"validityMessage",{get:function(){if(!this.nativeSelect)return"";return this.nativeSelect.validationMessage},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){if(typeof t==="string"){if(this.multiple)this._value=t.split(",");else this._value=t}else if(Array.isArray(t)){if(this.multiple)this._value=t;else this._value=t[0]}},enumerable:false,configurable:true});Object.defineProperty(t.prototype,"options",{get:function(){if(this._options.length)return this._options;if(!this.datalist||!this.datalist.activeOptions)return[];return this._eOptions.map((function(t){var e=t.value,n=t.selected,a=t.label,i=t.filterMeta;return{value:e,selected:n,label:a,filterMeta:i}}))},set:function(t){this._options=t.map((function(t){if(typeof t==="string")return{value:t,label:t};else return t}))},enumerable:false,configurable:true});t.prototype.debounceChanged=function(){this.nanoSearchChange=debounceEvent(this.nanoSearchChange,this.debounce)};t.prototype.shouldValidate=function(){if(this.onInit)return;if(this.invalid)this.showErrorMsg=this._invalid=false;this.customValidate();if(this.validateOn!=="dirty")return;this.showInlineValidation()};t.prototype.valueChanged=function(){var t=this;this.customValidate();if(this.onInit){if(this.multiple)this.currInsertIndex=this.value.length-1;return}requestAnimationFrame((function(){t.shouldValidate();t.nanoChange.emit({value:t.value})}))};t.prototype.setDataListOpts=function(){if(!this.datalist||!this.selectWrap)return;this.datalist.input=this.inputCtrl;var t=this.datalist.dropDownConfig||{};this.datalist.dropDownConfig=Object.assign(Object.assign(Object.assign({},t),this.dropDownConfig),{tetherTo:this.selectWrap})};t.prototype.reportValidity=function(t){return __awaiter(this,void 0,void 0,(function(){var e=this;return __generator(this,(function(n){return[2,new Promise((function(n){if(t){e.customValidate();e.showInlineValidation()}setTimeout((function(){n({isValid:!e._invalid,errorMessage:e.nativeSelect.validationMessage})}),50)}))]}))}))};t.prototype.setFocus=function(){return __awaiter(this,void 0,void 0,(function(){var t=this;return __generator(this,(function(e){if(!this.inputCtrl)return[2];this.inputCtrl.focus();setTimeout((function(){return t.inputCtrl.click()}),50);return[2]}))}))};t.prototype.getSelectElement=function(){return Promise.resolve(this.nativeSelect)};t.prototype.showError=function(t){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){if(this.nativeSelect){this.nativeSelect.setCustomValidity(t);this.showInlineValidation()}return[2]}))}))};Object.defineProperty(t.prototype,"valArray",{get:function(){return typeof this.value==="string"?this.value.length?[this.value]:[]:this.value},enumerable:false,configurable:true});t.prototype.isValidValues=function(){var t=this;return this.valArray.find((function(e){return t.options.find((function(t){return t.value===e}))}))};t.prototype.slotChangeObserver=function(){var t=this;var e=this.mo=new MutationObserver((function(){return t.processSlottedContent()}));e.observe(this.el,{childList:true,subtree:true})};t.prototype.processSlottedContent=function(){this.hasLabelSlot=!!this.el.querySelectorAll('[slot="label"]').length;this.hasHelperSlot=!!this.el.querySelector('[slot="helper"]');this.hasHelperEndSlot=!!this.el.querySelector('[slot="helper-end"]');if(!!this.el.querySelector('select:not([class*="sc-nano-select"]) option')){console.warn("nesting `<option>` elements was removed in v2. Please update your code to use `<nano-option>` elements instead.",this.el)}if(!!this.el.querySelector('[slot="legacy"]')){console.warn("The `legacy` slot has been removed. Please update your code",this.el)}};t.prototype.getLabel=function(t){var e=this.options.find((function(e){var n;return!e.disabled&&((n=e.value)===null||n===void 0?void 0:n.length)&&e.value===t}));return e&&e.label?e.label:t};t.prototype.onReset=function(t){var e=this.form?document.querySelector("#"+this.form):this.el.closest("form");if(!e||t.target!==this.el.closest("form"))return;this.clearSelectValue()};t.prototype.handleBlur=function(t){var e=this;if(!this.hasFocus)return;var n=t;var a;raf((function(){if(n.key){if(n.key!=="Tab")return;a=getActiveElement()}else a=t.target;if(closestElement(e.el.tagName.toLowerCase(),a)!==e.el){e.onBlur()}}))};t.prototype.connectedCallback=function(){this.debounceChanged();this.el.dispatchEvent(new CustomEvent("nanoDidLoad",{detail:this.el}))};t.prototype.disconnectedCallback=function(){document.dispatchEvent(new CustomEvent("nanoDidUnload",{detail:this.el}));if(this.mo)this.mo.disconnect()};t.prototype.componentDidLoad=function(){var t=this;this.slotChangeObserver();this.customValidate();this.setDataListOpts();raf((function(){return t.onInit=false}))};t.prototype.componentWillLoad=function(){this.processSlottedContent()};t.prototype.render=function(){var t=this;var e=this.selectId+"-lbl";var n=this.showInlineError||this.hasHelperSlot?this.selectId+"-moreId":"";var a=this.hasHelperEndSlot?this.selectId+"-helper":"";this.rtl=this.el.ownerDocument.dir==="rtl";this.valueItems=[];var i=function(t){var e=t.el,n=t.floatLabel,a=t.label,i=t.errorMessage,o=t.showInlineError,r=t.hasHelperSlot,s=t.hasHelperEndSlot,l=t.hasLabelSlot,d=t.hideLabel,c=t.placeholder,h=t.rtl;return{el:e,floatLabel:n,label:a,errorMessage:i,showInlineError:o,hasHelperSlot:r,hasHelperEndSlot:s,hasLabelSlot:l,hideLabel:d,placeholder:c,rtl:h}}(this);var o=Object.assign(Object.assign({},i),{labelId:e,moreId:n,helperEndId:a,hasValue:!!this.value.length||!!this.inputSearchVal.length,controlId:this.selectId});var r=function(e){var n=e.readonly,a=e.disabled;return{readonly:n,disabled:a,clearControl:t.clearSelect}}(this);return h(Host,{type:this.multiple?"select-multiple":"select-one","aria-disabled":this.disabled?"true":null,class:Object.assign(Object.assign({},createColorClasses(this.color)),{"has-value":!!this.value.length||!!this.inputSearchVal.length,"has-focus":this.hasFocus,"is-invalid":this.invalid,"has-label":this.label!==null&&!this.floatLabel,"has-float-label":this.label!==null&&this.floatLabel,rtl:this.rtl,"has-multiple":this.multiple,"has-clr-btn":this.clearSelect,masked:this.mask})},h(FormControlWrap,Object.assign({},o),h(FormControl,Object.assign({},r,{onClearText:this.clearSelectValue,control:this.el,ref:function(e){return t.selectWrap=e},endValueSlot:h("slot",{name:"down-arrow"},h("nano-icon",{slot:"value-end",name:"light/chevron-down"}))}),this.multiple&&h("div",{class:"select__multi-wrap select"},this.multipleValues(e,n,a)),!this.multiple&&[this.mask&&h("div",{class:"select__mask"},this.getLabel(this.value)),h("input",{id:this.selectId,class:"select__native-input",ref:function(e){return t.inputCtrl=e},"aria-labelledby":e+" "+n+" "+a,disabled:this.disabled,form:this.form,placeholder:this.placeholder,readOnly:true,required:this.required,value:this.getLabel(this.value),onFocus:this.onFocus})])),!this.readonly&&!this.disabled&&h("nano-datalist",{onNanoOptionsUpdated:this.setOptions,ref:function(e){return t.datalist=e},selected:this.valArray,type:this.multiple?"selctMulti":"select",onNanoSelect:this.setValue,onNanoDeselect:function(e){e.preventDefault();t.removeValue(e.detail.value)},options:this._options.length?this._options:undefined},this.allowCustomValues&&this.multiple&&!!this.inputSearchVal&&h("nano-option",{slot:"list-top",value:this.inputSearchVal,selected:false,label:this.inputSearchVal,onNanoSelect:function(){return t.inputCtrl.focus()}},h("span",{slot:"check-icon"}),"Add '",this.inputSearchVal,"'"),h("slot",null)),h("select",{id:this.selectId+"-hidden",class:"select__native-ctrl",ref:function(e){return t.nativeSelect=e},"aria-labelledby":e+" "+n+" "+a,disabled:this.disabled,form:this.form,multiple:this.multiple,name:this.name,required:this.required,onInvalid:this.handleInvalid},this.allowCustomValues&&this.valArray.map((function(t){return h("option",{value:t,selected:true},t)})),!this.allowCustomValues&&this.options.map((function(e){return h("option",{value:e.value,selected:t.valArray.includes(e.value),disabled:e.disabled,label:e.label},t.valArray.includes(e.value))}))))};t.prototype.multipleValues=function(t,e,n){var a=this;var i=h("input",{class:"select__multi-input",id:this.selectId,ref:function(t){return a.inputCtrl=t},readOnly:this.readonly,disabled:this.disabled,autoFocus:this.autofocus,autocomplete:"off",onKeyDown:this.handleDocumentKeyDown,onInput:this.onMultiInput,value:this.inputSearchVal,onTouchStart:this.onClick,onMouseDown:this.onClick,onFocus:this.onFocus,placeholder:this.placeholder&&!this.value.length?this.placeholder:"","aria-labelledby":t+" "+e+" "+n});if(!this.value.length)return i;return this.value.map((function(t,e){var n=h("span",{onDragStart:a.onDragStart,onDragLeave:a.onDragLeave,onDragEnd:a.onDragEnd,onDragOver:function(t){return t.preventDefault()},draggable:true,"data-value":t,ref:function(t){return a.valueItems.push(t)},class:"select__multi-value"},h("span",null,a.getLabel(t)),h("button",{class:"select__multi-value-remove",type:"button",tabindex:"-1",onTouchEnd:function(){a.removeValue(t)},onMouseUp:function(){a.removeValue(t)}},h("nano-icon",{name:"light/times"})));if(e===0&&a.currInsertIndex<0)n=[i,n];else if(e===a.currInsertIndex)n=[n,i];return n}))};Object.defineProperty(t.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{debounce:["debounceChanged"],required:["shouldValidate"],disabled:["shouldValidate"],min:["shouldValidate"],max:["shouldValidate"],readonly:["shouldValidate"],value:["valueChanged"],dropDownConfig:["setDataListOpts"]}},enumerable:false,configurable:true});return t}();Select.style=selectCss;export{NavItem as nano_nav_item,Select as nano_select};
5
5
  //# sourceMappingURL=nano-nav-item_2.entry.js.map