@uxland/primary-shell 1.0.15 → 1.0.16

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 (73) hide show
  1. package/README.md +231 -0
  2. package/dist/UI/components/clinical-monitoring/clinical-monitoring.d.ts +11 -0
  3. package/dist/UI/components/clinical-monitoring/template.d.ts +3 -0
  4. package/dist/UI/components/index.d.ts +1 -0
  5. package/dist/UI/components/primaria-breadcumbs/primaria-breadcumbs.d.ts +8 -0
  6. package/dist/UI/components/primaria-breadcumbs/template.d.ts +3 -0
  7. package/dist/UI/components/primaria-shell/primaria-shell.d.ts +14 -0
  8. package/dist/UI/components/primaria-shell/template.d.ts +3 -0
  9. package/dist/UI/components/title-view/template.d.ts +3 -0
  10. package/dist/UI/components/title-view/title-view.d.ts +9 -0
  11. package/dist/UI/index.d.ts +1 -0
  12. package/dist/UI/styles/theme/apply-theme.d.ts +1 -0
  13. package/dist/{api.d.ts → api/api.d.ts} +9 -16
  14. package/dist/api/broker/factory.d.ts +3 -0
  15. package/dist/api/broker/factory.test.d.ts +1 -0
  16. package/dist/api/broker/primaria-broker.d.ts +5 -0
  17. package/dist/api/global-state/global-state.d.ts +35 -0
  18. package/dist/api/global-state/global-state.test.d.ts +1 -0
  19. package/dist/api/interaction-manager/interaction.d.ts +8 -0
  20. package/dist/api/localization/localization.test.d.ts +1 -0
  21. package/dist/constants.d.ts +2 -0
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.js +16924 -326
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.umd.cjs +8486 -45
  26. package/dist/index.umd.cjs.map +1 -1
  27. package/dist/initializer.d.ts +1 -1
  28. package/dist/locales.d.ts +15 -0
  29. package/dist/plugin.d.ts +3 -3
  30. package/dist/region-manager.d.ts +16 -1
  31. package/dist/regions.d.ts +10 -4
  32. package/dist/style.css +3 -0
  33. package/package.json +10 -6
  34. package/src/UI/components/clinical-monitoring/clinical-monitoring.ts +28 -0
  35. package/src/UI/components/clinical-monitoring/styles.scss +28 -0
  36. package/src/UI/components/clinical-monitoring/template.ts +12 -0
  37. package/src/UI/components/index.ts +5 -0
  38. package/src/UI/components/primaria-breadcumbs/primaria-breadcumbs.ts +23 -0
  39. package/src/UI/components/primaria-breadcumbs/styles.scss +25 -0
  40. package/src/UI/components/primaria-breadcumbs/template.ts +15 -0
  41. package/src/UI/components/primaria-shell/primaria-shell.ts +37 -0
  42. package/src/UI/components/primaria-shell/styles.scss +70 -0
  43. package/src/UI/components/primaria-shell/template.ts +96 -0
  44. package/src/UI/components/title-view/styles.scss +5 -0
  45. package/src/UI/components/title-view/template.ts +6 -0
  46. package/src/UI/components/title-view/title-view.ts +23 -0
  47. package/src/UI/images/Gencat_Logotip.svg +70 -0
  48. package/src/UI/images/Salut_Logotip.svg +8 -0
  49. package/src/UI/index.ts +1 -0
  50. package/src/UI/styles/_flex-layout.scss +203 -0
  51. package/src/UI/styles/_normalize.scss +3 -0
  52. package/src/UI/styles/_variables.scss +40 -0
  53. package/src/UI/styles/styles.scss +3 -0
  54. package/src/UI/styles/theme/apply-theme.ts +11 -0
  55. package/src/api/api.ts +63 -0
  56. package/src/api/broker/factory.test.ts +124 -0
  57. package/src/api/broker/factory.ts +122 -0
  58. package/src/api/broker/primaria-broker.ts +11 -0
  59. package/src/api/global-state/global-state.test.ts +53 -0
  60. package/src/api/global-state/global-state.ts +49 -0
  61. package/src/api/interaction-manager/interaction.ts +21 -0
  62. package/src/api/localization/localization.test.ts +61 -0
  63. package/src/api/localization/localization.ts +54 -0
  64. package/src/constants.ts +2 -0
  65. package/src/index.ts +3 -1
  66. package/src/initializer.ts +36 -2
  67. package/src/locales.ts +24 -0
  68. package/src/plugin.ts +4 -4
  69. package/src/region-manager.ts +120 -3
  70. package/src/regions.ts +14 -5
  71. package/dist/primaria-shell.d.ts +0 -12
  72. package/src/api.ts +0 -102
  73. package/src/primaria-shell.ts +0 -77
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/region-manager.ts","../src/api.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/reactive-element.js","../src/regions.ts","../src/primaria-shell.ts","../src/initializer.ts","../src/plugin.ts"],"sourcesContent":["import { HarmonixRegionManager, IRegionManager, HarmonixViewDefinition } from \"@uxland/fim-core\";\nimport { PluginInfo } from \"./plugin\";\n\nclass RegionaManagerProxy implements HarmonixRegionManager {\n constructor(\n private pluginInfo: PluginInfo,\n private regionManager: IRegionManager,\n ) {}\n /**\n * Register a view in a specific region.\n *\n * @param {string} regionName - The name of the region to register the view with.\n * @param {HarmonixViewDefinition} view - The view definition to be registered.\n * @return {Promise<void>} A promise that resolves when the view is successfully registered.\n */\n registerView(regionName: string, view: HarmonixViewDefinition): Promise<void> {\n this.regionManager.registerViewWithRegion(\n regionName,\n `${this.pluginInfo.pluginId}::${view.id}`,\n view,\n );\n return Promise.resolve();\n }\n removeView(regionName: string, viewId: string): Promise<void> {\n return Promise.resolve();\n }\n activateView(regionName: string, viewId: string): Promise<void> {\n return Promise.resolve();\n }\n deactivateView(regionName: string, viewId: string): Promise<void> {\n return Promise.resolve();\n }\n}\n\nexport const createRegionManagerProxy = (\n pluginInfo: PluginInfo,\n regionManager: IRegionManager,\n): HarmonixRegionManager => new RegionaManagerProxy(pluginInfo, regionManager);\n","import {\n HarmonixApi,\n PluginInfo,\n IRegionManager,\n createRegionManager,\n createRegionHost,\n ApiFactory,\n} from \"@uxland/fim-core\";\nimport { createRegionManagerProxy } from \"./region-manager\";\n\ninterface PrimariaHttpClient {\n get(url: string): Promise<any>;\n post(url: string, data: any): Promise<any>;\n}\n\ninterface NotifyOptions {\n message: string;\n delay: number;\n dissmissible: boolean;\n}\n\ninterface PrimariaInteractionManager {\n notify(options: NotifyOptions): Promise<any>;\n}\n\ninterface PrimariaMediator {\n publish(event: string, data: any): Promise<any>;\n subscribe(event: string, handler: any): Promise<any>;\n sendCommand(command: string, data: any): Promise<any>;\n registerCommand(command: string, handler: any): Promise<any>;\n}\n\nexport interface PrimariaApi extends HarmonixApi {\n httpClient: PrimariaHttpClient;\n interactionManager: PrimariaInteractionManager;\n mediator: PrimariaMediator;\n}\n\nconst regionManager: IRegionManager = createRegionManager(\"primaria\");\nexport const PrimariaRegionHost: any = createRegionHost(regionManager as any);\n\n/**\n * Factory function that creates a Primaria API instance.\n *\n * @param {PluginInfo} pluginInfo - Information about the plugin\n * @return {PrimariaApi} The created Primaria API instance\n */\nexport const primariaApiFactory: ApiFactory<PrimariaApi> = (\n pluginInfo: PluginInfo,\n): PrimariaApi => {\n return {\n pluginInfo: pluginInfo,\n regionManager: createRegionManagerProxy(pluginInfo, regionManager),\n httpClient: {\n get: (url: string) => fetch(url).then((r) => r.json()),\n post: (url: string, data: any) =>\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n }).then((r) => r.json()),\n },\n interactionManager: {\n notify: (options: NotifyOptions) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(null);\n }, options.delay);\n });\n },\n },\n mediator: {\n publish: (event: string, data: any) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(null);\n }, 100);\n });\n },\n subscribe: (event: string, handler: any) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(null);\n }, 100);\n });\n },\n sendCommand: (command: string, data: any) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(null);\n }, 100);\n });\n },\n registerCommand: (command: string, handler: any) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(null);\n }, 100);\n });\n },\n },\n };\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","export const regions = {\n header: \"header-region\",\n actionsToolbar: \"actions-toolbar-region\",\n main: \"main-region\",\n sidebar: \"asidebar-region\",\n footer: \"footer-region\",\n};\n\nexport type PrimariaRegionNames = (typeof regions)[keyof typeof regions];\n","import { IRegion, region } from \"@uxland/regions\";\nimport { LitElement, css, html } from \"lit\";\nimport { PrimariaRegionHost } from \"./api\";\nimport { customElement } from \"lit/decorators.js\";\nimport { regions } from \"./regions\";\nimport \"@uxland/primaria-ui-components\";\n\n//@ts-ignore\n@customElement(\"primaria-shell\")\nexport class PrimariaShell extends PrimariaRegionHost(LitElement) {\n render() {\n return html` <div class=\"container\">\n <div class=\"header\">\n <div id=\"header-region-container\"></div>\n <div id=\"actions-toolbar-region-container\"></div>\n </div>\n\n <div class=\"main-container\">\n <div id=\"sidebar-region-region-container\"></div>\n <div id=\"main-region-region-container\"></div>\n </div>\n </div>`;\n }\n\n static styles = css`\n :host {\n width: 100%;\n overflow: hidden;\n }\n .container {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n background: aliceblue;\n }\n .header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: blue;\n height: 60px;\n background-color: white;\n color: black;\n box-shadow: rgba(0, 0, 0, 0.12) 0px 4px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;\n z-index: 1;\n\n #actions-toolbar-region-container{\n display: flex;\n flex-direction:row;\n }\n }\n .main-container {\n min-height: 1px;\n height: 100%;\n display: flex;\n flex-direction: row;\n #sidebar-region-region-container {\n background: white;\n width: 15vw;\n box-shadow: rgba(0, 0, 0, 0.12) 4px -1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;\n }\n }\n `;\n\n @region({ targetId: \"header-region-container\", name: regions.header })\n headerRegion: IRegion | undefined;\n\n @region({ targetId: \"actions-toolbar-region-container\", name: regions.actionsToolbar })\n actionsToolbarRegion: IRegion | undefined;\n\n @region({ targetId: \"sidebar-region-region-container\", name: regions.sidebar })\n sidebarRegion: IRegion | undefined;\n\n @region({ targetId: \"main-region-region-container\", name: regions.main })\n mainRegion: IRegion | undefined;\n}\n","import { PrimariaShell } from \"./primaria-shell\";\n\nexport const initializeShell = (element: HTMLElement) => {\n const shell = new PrimariaShell();\n element.appendChild(shell as any);\n};\n","import { bootstrapPlugins as pluginBootstrapper } from \"@uxland/fim-core\";\nimport type { PluginDefinition, Plugin as PluginType } from \"@uxland/fim-core\";\nexport type { PluginDefinition, PluginInfo } from \"@uxland/fim-core\";\nimport { PrimariaApi, primariaApiFactory } from \"./api\";\n\nexport const bootstrapPlugins = (plugins: PluginDefinition[]) =>\n pluginBootstrapper(plugins, primariaApiFactory);\n\nexport type Plugin = PluginType<PrimariaApi>;\n"],"names":["RegionaManagerProxy","pluginInfo","regionManager","regionName","view","viewId","createRegionManagerProxy","createRegionManager","PrimariaRegionHost","createRegionHost","primariaApiFactory","url","r","data","options","resolve","event","handler","command","t","o","e","s","n$1","n","S","c","i","h","l","p","d","u","f","y","b","_a","regions","PrimariaShell","LitElement","html","css","__decorateClass","region","customElement","initializeShell","element","shell","bootstrapPlugins","plugins","pluginBootstrapper"],"mappings":"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","x_google_ignoreList":[2,3,4]}
1
+ {"version":3,"file":"index.js","sources":["../../ui-components/src/primaria-menu-item/template.ts","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/decorators/property.js","../../ui-components/src/primaria-menu-item/primaria-menu-item.ts","../src/UI/components/clinical-monitoring/template.ts","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isPlaceholder.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_curry1.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_curry2.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_concat.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_arity.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_curryN.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/curryN.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isArray.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isTransformer.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_dispatchable.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_xfBase.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_map.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isString.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isArrayLike.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_xwrap.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/bind.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_reduce.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_xmap.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_has.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/internal/_isArguments.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/keys.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/map.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/ap.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/isNil.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/liftN.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/lift.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/not.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/src/complement.js","../../../node_modules/.pnpm/@uxland+ramda-extensions@1.0.3/node_modules/@uxland/ramda-extensions/is-not-nil.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_arity.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isPlaceholder.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_curry1.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_curry2.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isArray.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isTransformer.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_dispatchable.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_map.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isString.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isArrayLike.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_xwrap.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/bind.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_reduce.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_xfBase.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_xmap.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_curryN.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/curryN.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_has.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isArguments.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/keys.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/map.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/max.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_curry3.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/reduce.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/cond.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/isNil.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/T.js","../../../node_modules/.pnpm/@uxland+utilities@1.0.5/node_modules/@uxland/utilities/constant-builder.js","../../../node_modules/.pnpm/@uxland+localization@1.0.6/node_modules/@uxland/localization/events.js","../../../node_modules/.pnpm/@uxland+event-aggregator@1.0.1/node_modules/@uxland/event-aggregator/event-aggregator.js","../../../node_modules/.pnpm/@uxland+localization@1.0.6/node_modules/@uxland/localization/language.js","../../../node_modules/.pnpm/intl-messageformat-parser@3.6.4/node_modules/intl-messageformat-parser/dist/types.js","../../../node_modules/.pnpm/intl-messageformat-parser@3.6.4/node_modules/intl-messageformat-parser/dist/parser.js","../../../node_modules/.pnpm/intl-messageformat-parser@3.6.4/node_modules/intl-messageformat-parser/dist/normalize.js","../../../node_modules/.pnpm/intl-messageformat-parser@3.6.4/node_modules/intl-messageformat-parser/dist/skeleton.js","../../../node_modules/.pnpm/intl-messageformat-parser@3.6.4/node_modules/intl-messageformat-parser/dist/index.js","../../../node_modules/.pnpm/intl-format-cache@4.3.1/node_modules/intl-format-cache/index.js","../../../node_modules/.pnpm/intl-messageformat@7.8.4/node_modules/intl-messageformat/dist/formatters.js","../../../node_modules/.pnpm/intl-messageformat@7.8.4/node_modules/intl-messageformat/dist/core.js","../../../node_modules/.pnpm/intl-messageformat@7.8.4/node_modules/intl-messageformat/dist/index.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isInteger.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/assoc.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/assocPath.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/lens.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/nth.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/paths.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/path.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/lensPath.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/view.js","../../../node_modules/.pnpm/@uxland+localization@1.0.6/node_modules/@uxland/localization/localizer-factory.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/internal/_isObject.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/mergeWithKey.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/mergeDeepWithKey.js","../../../node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/mergeDeepRight.js","../../../node_modules/.pnpm/@uxland+localization@1.0.6/node_modules/@uxland/localization/locales.js","../src/api/localization/localization.ts","../src/regions.ts","../src/UI/components/title-view/template.ts","../src/UI/components/title-view/title-view.ts","../src/region-manager.ts","../src/api/interaction-manager/interaction.ts","../src/api/global-state/global-state.ts","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/models/dispatcher/mappings.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/models/dispatcher/index.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/models/handler.instance.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/models/resolver.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/settings.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/attributes/request.attribute.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/attributes/notification.attribute.js","../../../node_modules/.pnpm/mediatr-ts@1.2.1/node_modules/mediatr-ts/lib/esm/models/mediator.js","../src/api/broker/factory.ts","../src/api/api.ts","../src/UI/components/clinical-monitoring/clinical-monitoring.ts","../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/custom-element.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.3/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../dss/design-system-salut/src/components/shared-styles/symbol.style.js","../../../dss/design-system-salut/src/components/avatar.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directive.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directives/class-map.js","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/toDate.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endOfMonth.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/eachDayOfInterval.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/startOfMonth.mjs","../../../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getDay.mjs","../../../dss/design-system-salut/src/components/shared-styles/button.style.js","../../../dss/design-system-salut/src/components/shared-styles/icon-button.style.js","../../../dss/design-system-salut/src/components/calendar.js","../../../node_modules/.pnpm/lit-html@2.8.0/node_modules/lit-html/directives/if-defined.js","../../../dss/design-system-salut/src/components/date-picker.js","../../../dss/design-system-salut/src/components/shared-styles/input.style.js","../../../dss/design-system-salut/src/components/shared-styles/scrollbar.style.js","../../../dss/design-system-salut/src/components/datepicker.js","../../../dss/design-system-salut/src/components/input-field.js","../../../dss/design-system-salut/src/components/pagination.js","../../../dss/design-system-salut/src/components/slider.js","../../../dss/design-system-salut/src/components/spinner.js","../../../dss/design-system-salut/src/components/switch.js","../../../dss/design-system-salut/src/components/selector.js","../../../dss/design-system-salut/src/components/table-pagination.js","../../../dss/design-system-salut/src/components/textarea.js","../../../dss/design-system-salut/src/components/dropdown-list.js","../../../dss/design-system-salut/src/components/tabs-list.js","../../../dss/design-system-salut/src/components/tabs-panel.js","../../../dss/design-system-salut/src/components/timepicker.js","../../../dss/design-system-salut/src/components/input.js","../../../dss/design-system-salut/src/components/input-dropdown.js","../../../dss/design-system-salut/src/components/shared-styles/badge.style.js","../../../dss/design-system-salut/src/components/icon-badge.js","../../../dss/design-system-salut/src/components/badge.js","../../../dss/design-system-salut/src/components/shared-styles/chip.style.js","../../../dss/design-system-salut/src/components/search-bar.js","../../../dss/design-system-salut/src/components/split-button.js","../../../dss/design-system-salut/src/components/accordion.js","../../../dss/design-system-salut/src/components/utils/keyboard-navigation.js","../../../dss/design-system-salut/src/components/shared-styles/checkbox.style.js","../../../dss/design-system-salut/src/components/shared-styles/radio.style.js","../../../dss/design-system-salut/src/components/table.js","../../../dss/design-system-salut/src/components/table-header.js","../../../dss/design-system-salut/src/components/stepper.js","../../../dss/design-system-salut/src/components/tooltip.js","../../../dss/design-system-salut/src/components/shared-styles/decorative-icon.style.js","../../../dss/design-system-salut/src/components/tile.js","../../../dss/design-system-salut/src/components/modal.js","../src/UI/images/Gencat_Logotip.svg","../src/UI/images/Salut_Logotip.svg","../src/UI/components/primaria-shell/template.ts","../src/UI/components/primaria-shell/primaria-shell.ts","../src/UI/styles/theme/apply-theme.ts","../src/constants.ts","../src/locales.ts","../src/initializer.ts","../src/plugin.ts","../../../node_modules/.pnpm/lit-html@3.1.3/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-html@3.1.3/node_modules/lit-html/directive.js","../../../node_modules/.pnpm/lit-html@3.1.3/node_modules/lit-html/directive-helpers.js","../../../node_modules/.pnpm/lit-html@3.1.3/node_modules/lit-html/directives/repeat.js","../src/UI/components/primaria-breadcumbs/template.ts","../src/UI/components/primaria-breadcumbs/primaria-breadcumbs.ts"],"sourcesContent":["import { html } from \"lit\";\nimport { PrimariaMenuItem } from \"./primaria-menu-item\";\n\nexport const template = (props: PrimariaMenuItem) => html`\n<div class=\"item\" @click=${props.callbackFn}>\n <i class=\"dss-icon dss-icon--md\">${props.icon}</i>\n <span>${props.label}</span>\n</div>`;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import { LitElement, html, css, unsafeCSS } from \"lit\";\nimport { template } from \"./template\";\nimport styles from \"./styles.scss?inline\";\nimport { customElement } from \"lit/decorators.js\";\n\n@customElement(\"primaria-menu-item\")\nexport class PrimariaMenuItem extends LitElement {\n constructor(icon: string, label: string, callbackFn: () => void) {\n super();\n this.icon = icon;\n this.label = label;\n this.callbackFn = callbackFn;\n }\n render() {\n return html`${template(this)}`;\n }\n\n static styles = css`\n ${unsafeCSS(styles)}\n `;\n\n icon: string;\n label: string;\n callbackFn: () => void;\n}\n","import { html } from \"lit\";\nimport { ClinicalMonitoring } from \"./clinical-monitoring\";\n\nexport const template = (props: ClinicalMonitoring) => html`\n <div class=\"wrapper\">\n <div class=\"content\">\n <div id=\"header-widgets-region\"></div>\n <div id=\"content-widgets-region\"></div>\n </div>\n <div id=\"widgets-sidebar-region\"></div>\n </div>\n`;\n","function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\n\nmodule.exports = _isPlaceholder;","var _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\nmodule.exports = _curry1;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\nmodule.exports = _curry2;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n idx = 0;\n\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n\n idx = 0;\n\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n\n return result;\n}\n\nmodule.exports = _concat;","function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\n\nmodule.exports = _arity;","var _arity =\n/*#__PURE__*/\nrequire(\"./_arity\");\n\nvar _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}\n\nmodule.exports = _curryN;","var _arity =\n/*#__PURE__*/\nrequire(\"./internal/_arity\");\n\nvar _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _curryN =\n/*#__PURE__*/\nrequire(\"./internal/_curryN\");\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nmodule.exports = curryN;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nmodule.exports = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\n\nmodule.exports = _isTransformer;","var _isArray =\n/*#__PURE__*/\nrequire(\"./_isArray\");\n\nvar _isTransformer =\n/*#__PURE__*/\nrequire(\"./_isTransformer\");\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}\n\nmodule.exports = _dispatchable;","module.exports = {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}\n\nmodule.exports = _map;","function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\n\nmodule.exports = _isString;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isArray =\n/*#__PURE__*/\nrequire(\"./_isArray\");\n\nvar _isString =\n/*#__PURE__*/\nrequire(\"./_isString\");\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nmodule.exports = _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\nmodule.exports = _xwrap;","var _arity =\n/*#__PURE__*/\nrequire(\"./internal/_arity\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nmodule.exports = bind;","var _isArrayLike =\n/*#__PURE__*/\nrequire(\"./_isArrayLike\");\n\nvar _xwrap =\n/*#__PURE__*/\nrequire(\"./_xwrap\");\n\nvar bind =\n/*#__PURE__*/\nrequire(\"../bind\");\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\nmodule.exports = _reduce;","var _curry2 =\n/*#__PURE__*/\nrequire(\"./_curry2\");\n\nvar _xfBase =\n/*#__PURE__*/\nrequire(\"./_xfBase\");\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nmodule.exports = _xmap;","function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = _has;","var _has =\n/*#__PURE__*/\nrequire(\"./_has\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nmodule.exports = _isArguments;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./internal/_has\");\n\nvar _isArguments =\n/*#__PURE__*/\nrequire(\"./internal/_isArguments\"); // cover IE < 9 keys issues\n\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nmodule.exports = keys;","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _dispatchable =\n/*#__PURE__*/\nrequire(\"./internal/_dispatchable\");\n\nvar _map =\n/*#__PURE__*/\nrequire(\"./internal/_map\");\n\nvar _reduce =\n/*#__PURE__*/\nrequire(\"./internal/_reduce\");\n\nvar _xmap =\n/*#__PURE__*/\nrequire(\"./internal/_xmap\");\n\nvar curryN =\n/*#__PURE__*/\nrequire(\"./curryN\");\n\nvar keys =\n/*#__PURE__*/\nrequire(\"./keys\");\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nmodule.exports = map;","var _concat =\n/*#__PURE__*/\nrequire(\"./internal/_concat\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _reduce =\n/*#__PURE__*/\nrequire(\"./internal/_reduce\");\n\nvar map =\n/*#__PURE__*/\nrequire(\"./map\");\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\n\nvar ap =\n/*#__PURE__*/\n_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\n\nmodule.exports = ap;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nmodule.exports = isNil;","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _reduce =\n/*#__PURE__*/\nrequire(\"./internal/_reduce\");\n\nvar ap =\n/*#__PURE__*/\nrequire(\"./ap\");\n\nvar curryN =\n/*#__PURE__*/\nrequire(\"./curryN\");\n\nvar map =\n/*#__PURE__*/\nrequire(\"./map\");\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\n\nvar liftN =\n/*#__PURE__*/\n_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\n\nmodule.exports = liftN;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar liftN =\n/*#__PURE__*/\nrequire(\"./liftN\");\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\n\nvar lift =\n/*#__PURE__*/\n_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\n\nmodule.exports = lift;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nmodule.exports = not;","var lift =\n/*#__PURE__*/\nrequire(\"./lift\");\n\nvar not =\n/*#__PURE__*/\nrequire(\"./not\");\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\n\nvar complement =\n/*#__PURE__*/\nlift(not);\nmodule.exports = complement;","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */import{complement as o,isNil as i}from\"ramda\";const t=o(i);export{t as isNotNil};\n","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from \"./_isArray.js\";\nimport _isTransformer from \"./_isTransformer.js\";\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n\n if (!_isArray(obj)) {\n var idx = 0;\n\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n\n idx += 1;\n }\n\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n\n return fn.apply(this, arguments);\n };\n}","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from \"./_curry1.js\";\nimport _isArray from \"./_isArray.js\";\nimport _isString from \"./_isString.js\";\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nexport default _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from \"./internal/_arity.js\";\nimport _curry2 from \"./internal/_curry2.js\";\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nexport default bind;","import _isArrayLike from \"./_isArrayLike.js\";\nimport _xwrap from \"./_xwrap.js\";\nimport bind from \"../bind.js\";\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from \"./_curry2.js\";\nimport _xfBase from \"./_xfBase.js\";\n\nvar XMap =\n/*#__PURE__*/\nfunction () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap =\n/*#__PURE__*/\n_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\n\nexport default _xmap;","import _arity from \"./_arity.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n\n combined[combinedIdx] = result;\n\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n\n combinedIdx += 1;\n }\n\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport _curry2 from \"./internal/_curry2.js\";\nimport _curryN from \"./internal/_curryN.js\";\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\nvar curryN =\n/*#__PURE__*/\n_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n\n return _arity(length, _curryN(length, [], fn));\n});\n\nexport default curryN;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from \"./_has.js\";\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nexport default _isArguments;","import _curry1 from \"./internal/_curry1.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArguments from \"./internal/_isArguments.js\"; // cover IE < 9 keys issues\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nexport default keys;","import _curry2 from \"./internal/_curry2.js\";\nimport _dispatchable from \"./internal/_dispatchable.js\";\nimport _map from \"./internal/_map.js\";\nimport _reduce from \"./internal/_reduce.js\";\nimport _xmap from \"./internal/_xmap.js\";\nimport curryN from \"./curryN.js\";\nimport keys from \"./keys.js\";\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\nvar map =\n/*#__PURE__*/\n_curry2(\n/*#__PURE__*/\n_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n\n default:\n return _map(fn, functor);\n }\n}));\n\nexport default map;","import _curry2 from \"./internal/_curry2.js\";\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\nvar max =\n/*#__PURE__*/\n_curry2(function max(a, b) {\n return b > a ? b : a;\n});\n\nexport default max;","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _reduce from \"./internal/_reduce.js\";\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nexport default reduce;","import _arity from \"./internal/_arity.js\";\nimport _curry1 from \"./internal/_curry1.js\";\nimport map from \"./map.js\";\nimport max from \"./max.js\";\nimport reduce from \"./reduce.js\";\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\nvar cond =\n/*#__PURE__*/\n_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n\n idx += 1;\n }\n });\n});\n\nexport default cond;","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\n\nexport default T;","import{isNotNil as o}from\"@uxland/ramda-extensions/is-not-nil\";import s from\"ramda/es/cond\";import e from\"ramda/es/isNil\";import d from\"ramda/es/T\";let m=1;m=1;const c=(n,t,r=\":\")=>i=>s([[()=>e(n),()=>{throw new Error(\"prefix is needed\")}],[()=>o(t),()=>`${n}${r}${i}${r}${t}`],[d,()=>`${n}${r}${i}`]])();export{c as constantBuilder};\n","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */import{constantBuilder as A}from\"@uxland/utilities/constant-builder\";const E=A(\"LOCALIZATION\",void 0,\"::\"),T=E(\"LOCALES-RESET\"),o=E(\"LOCALES-UPDATED\"),n=E(\"LANGUAGE-UPDATED\"),e=E(\"LANGUAGE-RESET\"),L=E(\"FORMATERS-UPDATED\"),R=E(\"FORMATERS-RESET\");export{R as FORMATTERS_RESET,L as FORMATTERS_UPDATED,e as LANGUAGE_RESET,n as LANGUAGE_UPDATED,T as LOCALES_RESET,o as LOCALES_UPDATED};\n","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */let l=1;l=1,l=1;class o{constructor(e,t){this.messageType=e,this.callback=t}handle(e){e instanceof this.messageType&&this.callback.call(null,e)}}const c=(r,e,t)=>{try{r(e,t)}catch(s){console.error(s)}},b=(r,e)=>{try{r.handle(e)}catch(t){console.error(t)}};class p{constructor(){this.eventLookup={},this.messageHandlers=[]}publish(e,t){let s,n;if(!e)throw new Error(\"Event channel/type is invalid.\");if(typeof e==\"string\"){if(s=this.eventLookup[e],s)for(s=s.slice(),n=s.length;n--;)c(s[n],t,e)}else for(s=this.messageHandlers.slice(),n=s.length;n--;)b(s[n],e)}subscribe(e,t){let s,n;if(!e)throw new Error(\"Event channel/type is invalid.\");return typeof e==\"string\"?(s=t,n=this.eventLookup[e]||(this.eventLookup[e]=[])):(s=new o(e,t),n=this.messageHandlers),n.push(s),{dispose(){const a=n.indexOf(s);a!==-1&&n.splice(a,1)}}}subscribeOnce(e,t){const s=this.subscribe(e,(n,a)=>(s.dispose(),t(n,a)));return s}}const i=new p,d=i.subscribe.bind(i),h=i.subscribeOnce.bind(i),u=i.publish.bind(i);export{p as EventAggregator,i as eventAggregator,u as publish,d as subscribe,h as subscribeOnce};\n","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */import{publish as o}from\"@uxland/event-aggregator\";import{LANGUAGE_RESET as r,LANGUAGE_UPDATED as g}from\"./events\";const t=\"en\";let e=t;const L=n=>{e=n,o(g,n)},i=()=>t,p=()=>e,u=()=>{e=t,o(r,t)};export{t as DEFAULT_LANGUAGE,i as getDefaultLanguage,p as getLanguage,u as resetLanguage,L as setLanguage};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n})(TYPE = exports.TYPE || (exports.TYPE = {}));\n/**\n * Type Guards\n */\nfunction isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexports.isLiteralElement = isLiteralElement;\nfunction isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexports.isArgumentElement = isArgumentElement;\nfunction isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexports.isNumberElement = isNumberElement;\nfunction isDateElement(el) {\n return el.type === TYPE.date;\n}\nexports.isDateElement = isDateElement;\nfunction isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexports.isTimeElement = isTimeElement;\nfunction isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexports.isSelectElement = isSelectElement;\nfunction isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexports.isPluralElement = isPluralElement;\nfunction isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexports.isPoundElement = isPoundElement;\nfunction isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 0 /* number */);\n}\nexports.isNumberSkeleton = isNumberSkeleton;\nfunction isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === 1 /* dateTime */);\n}\nexports.isDateTimeSkeleton = isDateTimeSkeleton;\nfunction createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexports.createLiteralElement = createLiteralElement;\nfunction createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\nexports.createNumberElement = createNumberElement;\n","\"use strict\";\n// tslint:disable:only-arrow-functions\n// tslint:disable:object-literal-shorthand\n// tslint:disable:trailing-comma\n// tslint:disable:object-literal-sort-keys\n// tslint:disable:one-variable-per-declaration\n// tslint:disable:max-line-length\n// tslint:disable:no-consecutive-blank-lines\n// tslint:disable:align\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Generated by PEG.js v. 0.10.0 (ts-pegjs plugin v. 0.2.6 )\n//\n// https://pegjs.org/ https://github.com/metadevpro/ts-pegjs\nvar types_1 = require(\"./types\");\nvar SyntaxError = /** @class */ (function (_super) {\n __extends(SyntaxError, _super);\n function SyntaxError(message, expected, found, location) {\n var _this = _super.call(this) || this;\n _this.message = message;\n _this.expected = expected;\n _this.found = found;\n _this.location = location;\n _this.name = \"SyntaxError\";\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(_this, SyntaxError);\n }\n return _this;\n }\n SyntaxError.buildMessage = function (expected, found) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n function literalEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\"/g, \"\\\\\\\"\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function classEscape(s) {\n return s\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\]/g, \"\\\\]\")\n .replace(/\\^/g, \"\\\\^\")\n .replace(/-/g, \"\\\\-\")\n .replace(/\\0/g, \"\\\\0\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/[\\x00-\\x0F]/g, function (ch) { return \"\\\\x0\" + hex(ch); })\n .replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function (ch) { return \"\\\\x\" + hex(ch); });\n }\n function describeExpectation(expectation) {\n switch (expectation.type) {\n case \"literal\":\n return \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n case \"class\":\n var escapedParts = expectation.parts.map(function (part) {\n return Array.isArray(part)\n ? classEscape(part[0]) + \"-\" + classEscape(part[1])\n : classEscape(part);\n });\n return \"[\" + (expectation.inverted ? \"^\" : \"\") + escapedParts + \"]\";\n case \"any\":\n return \"any character\";\n case \"end\":\n return \"end of input\";\n case \"other\":\n return expectation.description;\n }\n }\n function describeExpected(expected1) {\n var descriptions = expected1.map(describeExpectation);\n var i;\n var j;\n descriptions.sort();\n if (descriptions.length > 0) {\n for (i = 1, j = 1; i < descriptions.length; i++) {\n if (descriptions[i - 1] !== descriptions[i]) {\n descriptions[j] = descriptions[i];\n j++;\n }\n }\n descriptions.length = j;\n }\n switch (descriptions.length) {\n case 1:\n return descriptions[0];\n case 2:\n return descriptions[0] + \" or \" + descriptions[1];\n default:\n return descriptions.slice(0, -1).join(\", \")\n + \", or \"\n + descriptions[descriptions.length - 1];\n }\n }\n function describeFound(found1) {\n return found1 ? \"\\\"\" + literalEscape(found1) + \"\\\"\" : \"end of input\";\n }\n return \"Expected \" + describeExpected(expected) + \" but \" + describeFound(found) + \" found.\";\n };\n return SyntaxError;\n}(Error));\nexports.SyntaxError = SyntaxError;\nfunction peg$parse(input, options) {\n options = options !== undefined ? options : {};\n var peg$FAILED = {};\n var peg$startRuleFunctions = { start: peg$parsestart };\n var peg$startRuleFunction = peg$parsestart;\n var peg$c0 = function (parts) {\n return parts.join('');\n };\n var peg$c1 = function (messageText) {\n return __assign({ type: types_1.TYPE.literal, value: messageText }, insertLocation());\n };\n var peg$c2 = \"#\";\n var peg$c3 = peg$literalExpectation(\"#\", false);\n var peg$c4 = function () {\n return __assign({ type: types_1.TYPE.pound }, insertLocation());\n };\n var peg$c5 = peg$otherExpectation(\"argumentElement\");\n var peg$c6 = \"{\";\n var peg$c7 = peg$literalExpectation(\"{\", false);\n var peg$c8 = \"}\";\n var peg$c9 = peg$literalExpectation(\"}\", false);\n var peg$c10 = function (value) {\n return __assign({ type: types_1.TYPE.argument, value: value }, insertLocation());\n };\n var peg$c11 = peg$otherExpectation(\"numberSkeletonId\");\n var peg$c12 = /^['\\/{}]/;\n var peg$c13 = peg$classExpectation([\"'\", \"/\", \"{\", \"}\"], false, false);\n var peg$c14 = peg$anyExpectation();\n var peg$c15 = peg$otherExpectation(\"numberSkeletonTokenOption\");\n var peg$c16 = \"/\";\n var peg$c17 = peg$literalExpectation(\"/\", false);\n var peg$c18 = function (option) { return option; };\n var peg$c19 = peg$otherExpectation(\"numberSkeletonToken\");\n var peg$c20 = function (stem, options) {\n return { stem: stem, options: options };\n };\n var peg$c21 = function (tokens) {\n return __assign({ type: 0 /* number */, tokens: tokens }, insertLocation());\n };\n var peg$c22 = \"::\";\n var peg$c23 = peg$literalExpectation(\"::\", false);\n var peg$c24 = function (skeleton) { return skeleton; };\n var peg$c25 = function () { messageCtx.push('numberArgStyle'); return true; };\n var peg$c26 = function (style) {\n messageCtx.pop();\n return style.replace(/\\s*$/, '');\n };\n var peg$c27 = \",\";\n var peg$c28 = peg$literalExpectation(\",\", false);\n var peg$c29 = \"number\";\n var peg$c30 = peg$literalExpectation(\"number\", false);\n var peg$c31 = function (value, type, style) {\n return __assign({ type: type === 'number' ? types_1.TYPE.number : type === 'date' ? types_1.TYPE.date : types_1.TYPE.time, style: style && style[2], value: value }, insertLocation());\n };\n var peg$c32 = \"'\";\n var peg$c33 = peg$literalExpectation(\"'\", false);\n var peg$c34 = /^[^']/;\n var peg$c35 = peg$classExpectation([\"'\"], true, false);\n var peg$c36 = /^[^a-zA-Z'{}]/;\n var peg$c37 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"], \"'\", \"{\", \"}\"], true, false);\n var peg$c38 = /^[a-zA-Z]/;\n var peg$c39 = peg$classExpectation([[\"a\", \"z\"], [\"A\", \"Z\"]], false, false);\n var peg$c40 = function (pattern) {\n return __assign({ type: 1 /* dateTime */, pattern: pattern }, insertLocation());\n };\n var peg$c41 = function () { messageCtx.push('dateOrTimeArgStyle'); return true; };\n var peg$c42 = \"date\";\n var peg$c43 = peg$literalExpectation(\"date\", false);\n var peg$c44 = \"time\";\n var peg$c45 = peg$literalExpectation(\"time\", false);\n var peg$c46 = \"plural\";\n var peg$c47 = peg$literalExpectation(\"plural\", false);\n var peg$c48 = \"selectordinal\";\n var peg$c49 = peg$literalExpectation(\"selectordinal\", false);\n var peg$c50 = \"offset:\";\n var peg$c51 = peg$literalExpectation(\"offset:\", false);\n var peg$c52 = function (value, pluralType, offset, options) {\n return __assign({ type: types_1.TYPE.plural, pluralType: pluralType === 'plural' ? 'cardinal' : 'ordinal', value: value, offset: offset ? offset[2] : 0, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in plural element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c53 = \"select\";\n var peg$c54 = peg$literalExpectation(\"select\", false);\n var peg$c55 = function (value, options) {\n return __assign({ type: types_1.TYPE.select, value: value, options: options.reduce(function (all, _a) {\n var id = _a.id, value = _a.value, optionLocation = _a.location;\n if (id in all) {\n error(\"Duplicate option \\\"\" + id + \"\\\" in select element: \\\"\" + text() + \"\\\"\", location());\n }\n all[id] = {\n value: value,\n location: optionLocation\n };\n return all;\n }, {}) }, insertLocation());\n };\n var peg$c56 = \"=\";\n var peg$c57 = peg$literalExpectation(\"=\", false);\n var peg$c58 = function (id) { messageCtx.push('select'); return true; };\n var peg$c59 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c60 = function (id) { messageCtx.push('plural'); return true; };\n var peg$c61 = function (id, value) {\n messageCtx.pop();\n return __assign({ id: id,\n value: value }, insertLocation());\n };\n var peg$c62 = peg$otherExpectation(\"whitespace\");\n var peg$c63 = /^[\\t-\\r \\x85\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/;\n var peg$c64 = peg$classExpectation([[\"\\t\", \"\\r\"], \" \", \"\\x85\", \"\\xA0\", \"\\u1680\", [\"\\u2000\", \"\\u200A\"], \"\\u2028\", \"\\u2029\", \"\\u202F\", \"\\u205F\", \"\\u3000\"], false, false);\n var peg$c65 = peg$otherExpectation(\"syntax pattern\");\n var peg$c66 = /^[!-\\/:-@[-\\^`{-~\\xA1-\\xA7\\xA9\\xAB\\xAC\\xAE\\xB0\\xB1\\xB6\\xBB\\xBF\\xD7\\xF7\\u2010-\\u2027\\u2030-\\u203E\\u2041-\\u2053\\u2055-\\u205E\\u2190-\\u245F\\u2500-\\u2775\\u2794-\\u2BFF\\u2E00-\\u2E7F\\u3001-\\u3003\\u3008-\\u3020\\u3030\\uFD3E\\uFD3F\\uFE45\\uFE46]/;\n var peg$c67 = peg$classExpectation([[\"!\", \"/\"], [\":\", \"@\"], [\"[\", \"^\"], \"`\", [\"{\", \"~\"], [\"\\xA1\", \"\\xA7\"], \"\\xA9\", \"\\xAB\", \"\\xAC\", \"\\xAE\", \"\\xB0\", \"\\xB1\", \"\\xB6\", \"\\xBB\", \"\\xBF\", \"\\xD7\", \"\\xF7\", [\"\\u2010\", \"\\u2027\"], [\"\\u2030\", \"\\u203E\"], [\"\\u2041\", \"\\u2053\"], [\"\\u2055\", \"\\u205E\"], [\"\\u2190\", \"\\u245F\"], [\"\\u2500\", \"\\u2775\"], [\"\\u2794\", \"\\u2BFF\"], [\"\\u2E00\", \"\\u2E7F\"], [\"\\u3001\", \"\\u3003\"], [\"\\u3008\", \"\\u3020\"], \"\\u3030\", \"\\uFD3E\", \"\\uFD3F\", \"\\uFE45\", \"\\uFE46\"], false, false);\n var peg$c68 = peg$otherExpectation(\"optional whitespace\");\n var peg$c69 = peg$otherExpectation(\"number\");\n var peg$c70 = \"-\";\n var peg$c71 = peg$literalExpectation(\"-\", false);\n var peg$c72 = function (negative, num) {\n return num\n ? negative\n ? -num\n : num\n : 0;\n };\n var peg$c73 = peg$otherExpectation(\"apostrophe\");\n var peg$c74 = peg$otherExpectation(\"double apostrophes\");\n var peg$c75 = \"''\";\n var peg$c76 = peg$literalExpectation(\"''\", false);\n var peg$c77 = function () { return \"'\"; };\n var peg$c78 = function (escapedChar, quotedChars) {\n return escapedChar + quotedChars.replace(\"''\", \"'\");\n };\n var peg$c79 = function (x) {\n return (x !== '{' &&\n !(isInPluralOption() && x === '#') &&\n !(isNestedMessageText() && x === '}'));\n };\n var peg$c80 = \"\\n\";\n var peg$c81 = peg$literalExpectation(\"\\n\", false);\n var peg$c82 = function (x) {\n return x === '{' || x === '}' || (isInPluralOption() && x === '#');\n };\n var peg$c83 = peg$otherExpectation(\"argNameOrNumber\");\n var peg$c84 = peg$otherExpectation(\"argNumber\");\n var peg$c85 = \"0\";\n var peg$c86 = peg$literalExpectation(\"0\", false);\n var peg$c87 = function () { return 0; };\n var peg$c88 = /^[1-9]/;\n var peg$c89 = peg$classExpectation([[\"1\", \"9\"]], false, false);\n var peg$c90 = /^[0-9]/;\n var peg$c91 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n var peg$c92 = function (digits) {\n return parseInt(digits.join(''), 10);\n };\n var peg$c93 = peg$otherExpectation(\"argName\");\n var peg$currPos = 0;\n var peg$savedPos = 0;\n var peg$posDetailsCache = [{ line: 1, column: 1 }];\n var peg$maxFailPos = 0;\n var peg$maxFailExpected = [];\n var peg$silentFails = 0;\n var peg$result;\n if (options.startRule !== undefined) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n function expected(description, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location1);\n }\n function error(message, location1) {\n location1 = location1 !== undefined\n ? location1\n : peg$computeLocation(peg$savedPos, peg$currPos);\n throw peg$buildSimpleError(message, location1);\n }\n function peg$literalExpectation(text1, ignoreCase) {\n return { type: \"literal\", text: text1, ignoreCase: ignoreCase };\n }\n function peg$classExpectation(parts, inverted, ignoreCase) {\n return { type: \"class\", parts: parts, inverted: inverted, ignoreCase: ignoreCase };\n }\n function peg$anyExpectation() {\n return { type: \"any\" };\n }\n function peg$endExpectation() {\n return { type: \"end\" };\n }\n function peg$otherExpectation(description) {\n return { type: \"other\", description: description };\n }\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos];\n var p;\n if (details) {\n return details;\n }\n else {\n p = pos - 1;\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column\n };\n while (p < pos) {\n if (input.charCodeAt(p) === 10) {\n details.line++;\n details.column = 1;\n }\n else {\n details.column++;\n }\n p++;\n }\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos);\n var endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n function peg$fail(expected1) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n peg$maxFailExpected.push(expected1);\n }\n function peg$buildSimpleError(message, location1) {\n return new SyntaxError(message, [], \"\", location1);\n }\n function peg$buildStructuredError(expected1, found, location1) {\n return new SyntaxError(SyntaxError.buildMessage(expected1, found), expected1, found, location1);\n }\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessage();\n return s0;\n }\n function peg$parsemessage() {\n var s0, s1;\n s0 = [];\n s1 = peg$parsemessageElement();\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsemessageElement();\n }\n return s0;\n }\n function peg$parsemessageElement() {\n var s0;\n s0 = peg$parseliteralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsesimpleFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsepoundElement();\n }\n }\n }\n }\n }\n return s0;\n }\n function peg$parsemessageText() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsedoubleApostrophes();\n if (s2 === peg$FAILED) {\n s2 = peg$parsequotedString();\n if (s2 === peg$FAILED) {\n s2 = peg$parseunquotedString();\n }\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parseliteralElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsepoundElement() {\n var s0, s1;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 35) {\n s1 = peg$c2;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c3);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c4();\n }\n s0 = s1;\n return s0;\n }\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s5 = peg$c8;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c10(s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c5);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonId() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n if (peg$c12.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c11);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonTokenOption() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 47) {\n s1 = peg$c16;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeletonToken() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeletonId();\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parsenumberSkeletonTokenOption();\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parsenumberSkeletonTokenOption();\n }\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c20(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c19);\n }\n }\n return s0;\n }\n function peg$parsenumberSkeleton() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsenumberSkeletonToken();\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsenumberSkeletonToken();\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsenumberArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsenumberSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c25();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsenumberFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c29) {\n s7 = peg$c29;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c30);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsenumberArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonLiteral() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = [];\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedoubleApostrophes();\n if (s3 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s3 = peg$c32;\n peg$currPos++;\n }\n else {\n s3 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s3 !== peg$FAILED) {\n s1 = [s1, s2, s3];\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = [];\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n s1 = peg$parsedoubleApostrophes();\n if (s1 === peg$FAILED) {\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateTimeSkeletonPattern() {\n var s0, s1;\n s0 = [];\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n if (peg$c38.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c39);\n }\n }\n }\n }\n else {\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsedateTimeSkeleton() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n s2 = [];\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n if (s3 !== peg$FAILED) {\n while (s3 !== peg$FAILED) {\n s2.push(s3);\n s3 = peg$parsedateTimeSkeletonLiteral();\n if (s3 === peg$FAILED) {\n s3 = peg$parsedateTimeSkeletonPattern();\n }\n }\n }\n else {\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n }\n else {\n s1 = s2;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c40(s1);\n }\n s0 = s1;\n return s0;\n }\n function peg$parsedateOrTimeArgStyle() {\n var s0, s1, s2;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsedateTimeSkeleton();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n peg$savedPos = peg$currPos;\n s1 = peg$c41();\n if (s1) {\n s1 = undefined;\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parsemessageText();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c26(s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n return s0;\n }\n function peg$parsedateOrTimeFormatElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c42) {\n s7 = peg$c42;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c43);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c44) {\n s7 = peg$c44;\n peg$currPos += 4;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c45);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n s9 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 44) {\n s10 = peg$c27;\n peg$currPos++;\n }\n else {\n s10 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s10 !== peg$FAILED) {\n s11 = peg$parse_();\n if (s11 !== peg$FAILED) {\n s12 = peg$parsedateOrTimeArgStyle();\n if (s12 !== peg$FAILED) {\n s10 = [s10, s11, s12];\n s9 = s10;\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s9;\n s9 = peg$FAILED;\n }\n if (s9 === peg$FAILED) {\n s9 = null;\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s11 = peg$c8;\n peg$currPos++;\n }\n else {\n s11 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s11 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c31(s3, s7, s9);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsesimpleFormatElement() {\n var s0;\n s0 = peg$parsenumberFormatElement();\n if (s0 === peg$FAILED) {\n s0 = peg$parsedateOrTimeFormatElement();\n }\n return s0;\n }\n function peg$parsepluralElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c46) {\n s7 = peg$c46;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c47);\n }\n }\n if (s7 === peg$FAILED) {\n if (input.substr(peg$currPos, 13) === peg$c48) {\n s7 = peg$c48;\n peg$currPos += 13;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = peg$currPos;\n if (input.substr(peg$currPos, 7) === peg$c50) {\n s12 = peg$c50;\n peg$currPos += 7;\n }\n else {\n s12 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n if (s12 !== peg$FAILED) {\n s13 = peg$parse_();\n if (s13 !== peg$FAILED) {\n s14 = peg$parsenumber();\n if (s14 !== peg$FAILED) {\n s12 = [s12, s13, s14];\n s11 = s12;\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s11;\n s11 = peg$FAILED;\n }\n if (s11 === peg$FAILED) {\n s11 = null;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n s13 = [];\n s14 = peg$parsepluralOption();\n if (s14 !== peg$FAILED) {\n while (s14 !== peg$FAILED) {\n s13.push(s14);\n s14 = peg$parsepluralOption();\n }\n }\n else {\n s13 = peg$FAILED;\n }\n if (s13 !== peg$FAILED) {\n s14 = peg$parse_();\n if (s14 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s15 = peg$c8;\n peg$currPos++;\n }\n else {\n s15 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s15 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52(s3, s7, s11, s13);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseselectElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c6;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargNameOrNumber();\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n if (s4 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s5 = peg$c27;\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n if (s6 !== peg$FAILED) {\n if (input.substr(peg$currPos, 6) === peg$c53) {\n s7 = peg$c53;\n peg$currPos += 6;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n if (s7 !== peg$FAILED) {\n s8 = peg$parse_();\n if (s8 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s9 = peg$c27;\n peg$currPos++;\n }\n else {\n s9 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c28);\n }\n }\n if (s9 !== peg$FAILED) {\n s10 = peg$parse_();\n if (s10 !== peg$FAILED) {\n s11 = [];\n s12 = peg$parseselectOption();\n if (s12 !== peg$FAILED) {\n while (s12 !== peg$FAILED) {\n s11.push(s12);\n s12 = peg$parseselectOption();\n }\n }\n else {\n s11 = peg$FAILED;\n }\n if (s11 !== peg$FAILED) {\n s12 = peg$parse_();\n if (s12 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s13 = peg$c8;\n peg$currPos++;\n }\n else {\n s13 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s13 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55(s3, s11);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralRuleSelectValue() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c56;\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n if (s0 === peg$FAILED) {\n s0 = peg$parseargName();\n }\n return s0;\n }\n function peg$parseselectOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargName();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c58(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c59(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsepluralOption() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n s0 = peg$currPos;\n s1 = peg$parse_();\n if (s1 !== peg$FAILED) {\n s2 = peg$parsepluralRuleSelectValue();\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c6;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c7);\n }\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s5 = peg$c60(s2);\n if (s5) {\n s5 = undefined;\n }\n else {\n s5 = peg$FAILED;\n }\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessage();\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c8;\n peg$currPos++;\n }\n else {\n s7 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c9);\n }\n }\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61(s2, s6);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parsewhiteSpace() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c63.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c64);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c62);\n }\n }\n return s0;\n }\n function peg$parsepatternSyntax() {\n var s0, s1;\n peg$silentFails++;\n if (peg$c66.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c67);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c65);\n }\n }\n return s0;\n }\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsewhiteSpace();\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsewhiteSpace();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c68);\n }\n }\n return s0;\n }\n function peg$parsenumber() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 45) {\n s1 = peg$c70;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c71);\n }\n }\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseargNumber();\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c72(s1, s2);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c69);\n }\n }\n return s0;\n }\n function peg$parseapostrophe() {\n var s0, s1;\n peg$silentFails++;\n if (input.charCodeAt(peg$currPos) === 39) {\n s0 = peg$c32;\n peg$currPos++;\n }\n else {\n s0 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c73);\n }\n }\n return s0;\n }\n function peg$parsedoubleApostrophes() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s1 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c77();\n }\n s0 = s1;\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c74);\n }\n }\n return s0;\n }\n function peg$parsequotedString() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 39) {\n s1 = peg$c32;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s1 !== peg$FAILED) {\n s2 = peg$parseescapedChar();\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n s4 = [];\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n if (input.substr(peg$currPos, 2) === peg$c75) {\n s5 = peg$c75;\n peg$currPos += 2;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c76);\n }\n }\n if (s5 === peg$FAILED) {\n if (peg$c34.test(input.charAt(peg$currPos))) {\n s5 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s5 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = input.substring(s3, peg$currPos);\n }\n else {\n s3 = s4;\n }\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 39) {\n s4 = peg$c32;\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c33);\n }\n }\n if (s4 === peg$FAILED) {\n s4 = null;\n }\n if (s4 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c78(s2, s3);\n s0 = s1;\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n return s0;\n }\n function peg$parseunquotedString() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c79(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 === peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 10) {\n s1 = peg$c80;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c81);\n }\n }\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseescapedChar() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (input.length > peg$currPos) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s2 !== peg$FAILED) {\n peg$savedPos = peg$currPos;\n s3 = peg$c82(s2);\n if (s3) {\n s3 = undefined;\n }\n else {\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n return s0;\n }\n function peg$parseargNameOrNumber() {\n var s0, s1;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = peg$parseargNumber();\n if (s1 === peg$FAILED) {\n s1 = peg$parseargName();\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c83);\n }\n }\n return s0;\n }\n function peg$parseargNumber() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c85;\n peg$currPos++;\n }\n else {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c86);\n }\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c87();\n }\n s0 = s1;\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$currPos;\n if (peg$c88.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s2 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c89);\n }\n }\n if (s2 !== peg$FAILED) {\n s3 = [];\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n if (peg$c90.test(input.charAt(peg$currPos))) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c91);\n }\n }\n }\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c92(s1);\n }\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c84);\n }\n }\n return s0;\n }\n function peg$parseargName() {\n var s0, s1, s2, s3, s4;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$currPos;\n peg$silentFails++;\n s4 = peg$parsewhiteSpace();\n if (s4 === peg$FAILED) {\n s4 = peg$parsepatternSyntax();\n }\n peg$silentFails--;\n if (s4 === peg$FAILED) {\n s3 = undefined;\n }\n else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n if (s3 !== peg$FAILED) {\n if (input.length > peg$currPos) {\n s4 = input.charAt(peg$currPos);\n peg$currPos++;\n }\n else {\n s4 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c14);\n }\n }\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n }\n else {\n s1 = peg$FAILED;\n }\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n }\n else {\n s0 = s1;\n }\n peg$silentFails--;\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n if (peg$silentFails === 0) {\n peg$fail(peg$c93);\n }\n }\n return s0;\n }\n var messageCtx = ['root'];\n function isNestedMessageText() {\n return messageCtx.length > 1;\n }\n function isInPluralOption() {\n return messageCtx[messageCtx.length - 1] === 'plural';\n }\n function insertLocation() {\n return options && options.captureLocation ? {\n location: location()\n } : {};\n }\n peg$result = peg$startRuleFunction();\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n }\n else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail(peg$endExpectation());\n }\n throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length\n ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)\n : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n}\nexports.pegParse = peg$parse;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar types_1 = require(\"./types\");\nvar parser_1 = require(\"./parser\");\nvar PLURAL_HASHTAG_REGEX = /(^|[^\\\\])#/g;\n/**\n * Whether to convert `#` in plural rule options\n * to `{var, number}`\n * @param el AST Element\n * @param pluralStack current plural stack\n */\nfunction normalizeHashtagInPlural(els) {\n els.forEach(function (el) {\n // If we're encountering a plural el\n if (!types_1.isPluralElement(el) && !types_1.isSelectElement(el)) {\n return;\n }\n // Go down the options and search for # in any literal element\n Object.keys(el.options).forEach(function (id) {\n var _a;\n var opt = el.options[id];\n // If we got a match, we have to split this\n // and inject a NumberElement in the middle\n var matchingLiteralElIndex = -1;\n var literalEl = undefined;\n for (var i = 0; i < opt.value.length; i++) {\n var el_1 = opt.value[i];\n if (types_1.isLiteralElement(el_1) && PLURAL_HASHTAG_REGEX.test(el_1.value)) {\n matchingLiteralElIndex = i;\n literalEl = el_1;\n break;\n }\n }\n if (literalEl) {\n var newValue = literalEl.value.replace(PLURAL_HASHTAG_REGEX, \"$1{\" + el.value + \", number}\");\n var newEls = parser_1.pegParse(newValue);\n (_a = opt.value).splice.apply(_a, __spreadArrays([matchingLiteralElIndex, 1], newEls));\n }\n normalizeHashtagInPlural(opt.value);\n });\n });\n}\nexports.normalizeHashtagInPlural = normalizeHashtagInPlural;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nfunction parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) pattenrs are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) pattenrs are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\nexports.parseDateTimeSkeleton = parseDateTimeSkeleton;\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\+|#+)?)?$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nfunction convertNumberSkeletonToNumberFormatOptions(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n result.style = 'percent';\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n }\n // Precision\n // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#fraction-precision\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (match, g1, g2) {\n // precision-integer case\n if (match === '.') {\n result.maximumFractionDigits = 0;\n }\n // .000+ case\n else if (g2 === '+') {\n result.minimumFractionDigits = g2.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumFractionDigits = g1.length;\n }\n // .00## or .000 case\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n }\n return result;\n}\nexports.convertNumberSkeletonToNumberFormatOptions = convertNumberSkeletonToNumberFormatOptions;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar parser_1 = require(\"./parser\");\nvar normalize_1 = require(\"./normalize\");\n__export(require(\"./types\"));\n__export(require(\"./parser\"));\n__export(require(\"./skeleton\"));\nfunction parse(input, opts) {\n var els = parser_1.pegParse(input, opts);\n if (!opts || opts.normalizeHashtagInPlural !== false) {\n normalize_1.normalizeHashtagInPlural(els);\n }\n return els;\n}\nexports.parse = parse;\n","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// -- Utilities ----------------------------------------------------------------\nfunction getCacheId(inputs) {\n return JSON.stringify(inputs.map(function (input) {\n return input && typeof input === 'object' ? orderedProps(input) : input;\n }));\n}\nfunction orderedProps(obj) {\n return Object.keys(obj)\n .sort()\n .map(function (k) {\n var _a;\n return (_a = {}, _a[k] = obj[k], _a);\n });\n}\nvar memoizeFormatConstructor = function (FormatConstructor, cache) {\n if (cache === void 0) { cache = {}; }\n return function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var cacheId = getCacheId(args);\n var format = cacheId && cache[cacheId];\n if (!format) {\n format = new ((_a = FormatConstructor).bind.apply(_a, __spreadArrays([void 0], args)))();\n if (cacheId) {\n cache[cacheId] = format;\n }\n }\n return format;\n };\n};\nexports.default = memoizeFormatConstructor;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar intl_messageformat_parser_1 = require(\"intl-messageformat-parser\");\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, variableId) {\n var _this = _super.call(this, msg) || this;\n _this.variableId = variableId;\n return _this;\n }\n return FormatError;\n}(Error));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== 0 /* literal */ ||\n part.type !== 0 /* literal */) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\n// TODO(skeleton): add skeleton support\nfunction formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && intl_messageformat_parser_1.isLiteralElement(els[0])) {\n return [\n {\n type: 0 /* literal */,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (intl_messageformat_parser_1.isLiteralElement(el)) {\n result.push({\n type: 0 /* literal */,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (intl_messageformat_parser_1.isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: 0 /* literal */,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new FormatError(\"The intl string context variable \\\"\" + varName + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\");\n }\n var value = values[varName];\n if (intl_messageformat_parser_1.isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: 1 /* argument */,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (intl_messageformat_parser_1.isDateElement(el)) {\n var style = typeof el.style === 'string' ? formats.date[el.style] : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (intl_messageformat_parser_1.isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : intl_messageformat_parser_1.isDateTimeSkeleton(el.style)\n ? intl_messageformat_parser_1.parseDateTimeSkeleton(el.style.pattern)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (intl_messageformat_parser_1.isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : intl_messageformat_parser_1.isNumberSkeleton(el.style)\n ? intl_messageformat_parser_1.convertNumberSkeletonToNumberFormatOptions(el.style.tokens)\n : undefined;\n result.push({\n type: 0 /* literal */,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (intl_messageformat_parser_1.isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (intl_messageformat_parser_1.isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\");\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new RangeError(\"Invalid values for \\\"\" + el.value + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(el.options).join('\", \"') + \"\\\"\");\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\nexports.formatToParts = formatToParts;\nfunction formatToString(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n return parts.reduce(function (all, part) { return (all += part.value); }, '');\n}\nexports.formatToString = formatToString;\n// Singleton\nvar domParser;\nvar TOKEN_DELIMITER = '@@';\nvar TOKEN_REGEX = /@@(\\d+_\\d+)@@/g;\nvar counter = 0;\nfunction generateId() {\n return Date.now() + \"_\" + ++counter;\n}\nfunction restoreRichPlaceholderMessage(text, objectParts) {\n return text\n .split(TOKEN_REGEX)\n .filter(Boolean)\n .map(function (c) { return (objectParts[c] != null ? objectParts[c] : c); })\n .reduce(function (all, c) {\n if (!all.length) {\n all.push(c);\n }\n else if (typeof c === 'string' &&\n typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += c;\n }\n else {\n all.push(c);\n }\n return all;\n }, []);\n}\n/**\n * Not exhaustive, just for sanity check\n */\nvar SIMPLE_XML_REGEX = /(<([0-9a-zA-Z-_]*?)>(.*?)<\\/([0-9a-zA-Z-_]*?)>)|(<[0-9a-zA-Z-_]*?\\/>)/;\nvar TEMPLATE_ID = Date.now() + '@@';\nvar VOID_ELEMENTS = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\nfunction formatHTMLElement(el, objectParts, values) {\n var tagName = el.tagName;\n var outerHTML = el.outerHTML, textContent = el.textContent, childNodes = el.childNodes;\n // Regular text\n if (!tagName) {\n return restoreRichPlaceholderMessage(textContent || '', objectParts);\n }\n tagName = tagName.toLowerCase();\n var isVoidElement = ~VOID_ELEMENTS.indexOf(tagName);\n var formatFnOrValue = values[tagName];\n if (formatFnOrValue && isVoidElement) {\n throw new FormatError(tagName + \" is a self-closing tag and can not be used, please use another tag name.\");\n }\n if (!childNodes.length) {\n return [outerHTML];\n }\n var chunks = Array.prototype.slice.call(childNodes).reduce(function (all, child) {\n return all.concat(formatHTMLElement(child, objectParts, values));\n }, []);\n // Legacy HTML\n if (!formatFnOrValue) {\n return __spreadArrays([\"<\" + tagName + \">\"], chunks, [\"</\" + tagName + \">\"]);\n }\n // HTML Tag replacement\n if (typeof formatFnOrValue === 'function') {\n return [formatFnOrValue.apply(void 0, chunks)];\n }\n return [formatFnOrValue];\n}\nfunction formatHTMLMessage(els, locales, formatters, formats, values, \n// For debugging\noriginalMessage) {\n var parts = formatToParts(els, locales, formatters, formats, values, undefined, originalMessage);\n var objectParts = {};\n var formattedMessage = parts.reduce(function (all, part) {\n if (part.type === 0 /* literal */) {\n return (all += part.value);\n }\n var id = generateId();\n objectParts[id] = part.value;\n return (all += \"\" + TOKEN_DELIMITER + id + TOKEN_DELIMITER);\n }, '');\n // Not designed to filter out aggressively\n if (!SIMPLE_XML_REGEX.test(formattedMessage)) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n if (!values) {\n throw new FormatError('Message has placeholders but no values was given');\n }\n if (typeof DOMParser === 'undefined') {\n throw new FormatError('Cannot format XML message without DOMParser');\n }\n if (!domParser) {\n domParser = new DOMParser();\n }\n var content = domParser\n .parseFromString(\"<formatted-message id=\\\"\" + TEMPLATE_ID + \"\\\">\" + formattedMessage + \"</formatted-message>\", 'text/html')\n .getElementById(TEMPLATE_ID);\n if (!content) {\n throw new FormatError(\"Malformed HTML message \" + formattedMessage);\n }\n var tagsToFormat = Object.keys(values).filter(function (varName) { return !!content.getElementsByTagName(varName).length; });\n // No tags to format\n if (!tagsToFormat.length) {\n return restoreRichPlaceholderMessage(formattedMessage, objectParts);\n }\n var caseSensitiveTags = tagsToFormat.filter(function (tagName) { return tagName !== tagName.toLowerCase(); });\n if (caseSensitiveTags.length) {\n throw new FormatError(\"HTML tag must be lowercased but the following tags are not: \" + caseSensitiveTags.join(', '));\n }\n // We're doing this since top node is `<formatted-message/>` which does not have a formatter\n return Array.prototype.slice\n .call(content.childNodes)\n .reduce(function (all, child) { return all.concat(formatHTMLElement(child, objectParts, values)); }, []);\n}\nexports.formatHTMLMessage = formatHTMLMessage;\n","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar intl_messageformat_parser_1 = require(\"intl-messageformat-parser\");\nvar intl_format_cache_1 = require(\"intl-format-cache\");\nvar formatters_1 = require(\"./formatters\");\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: intl_format_cache_1.default(Intl.NumberFormat, cache.number),\n getDateTimeFormat: intl_format_cache_1.default(Intl.DateTimeFormat, cache.dateTime),\n getPluralRules: intl_format_cache_1.default(Intl.PluralRules, cache.pluralRules),\n };\n}\nexports.createDefaultFormatters = createDefaultFormatters;\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n return formatters_1.formatToString(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.formatToParts = function (values) {\n return formatters_1.formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.formatHTMLMessage = function (values) {\n return formatters_1.formatHTMLMessage(_this.ast, _this.locales, _this.formatters, _this.formats, values, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n normalizeHashtagInPlural: false,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n IntlMessageFormat.defaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n IntlMessageFormat.__parse = intl_messageformat_parser_1.parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexports.IntlMessageFormat = IntlMessageFormat;\nexports.default = IntlMessageFormat;\n","\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"./core\");\n__export(require(\"./formatters\"));\n__export(require(\"./core\"));\nexports.default = core_1.default;\n","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry3 from \"./internal/_curry3.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\nvar assoc =\n/*#__PURE__*/\n_curry3(function assoc(prop, val, obj) {\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n});\n\nexport default assoc;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isArray from \"./internal/_isArray.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport assoc from \"./assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\n\nexport default assocPath;","import _curry2 from \"./internal/_curry2.js\";\nimport map from \"./map.js\";\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\nvar lens =\n/*#__PURE__*/\n_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\n\nexport default lens;","import _curry2 from \"./internal/_curry2.js\";\nimport _isString from \"./internal/_isString.js\";\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\nvar nth =\n/*#__PURE__*/\n_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\n\nexport default nth;","import _curry2 from \"./internal/_curry2.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport nth from \"./nth.js\";\n/**\n * Retrieves the values at given paths of an object.\n *\n * @func\n * @memberOf R\n * @since v0.27.1\n * @category Object\n * @typedefn Idx = [String | Int]\n * @sig [Idx] -> {a} -> [a | Undefined]\n * @param {Array} pathsArray The array of paths to be fetched.\n * @param {Object} obj The object to retrieve the nested properties from.\n * @return {Array} A list consisting of values at paths specified by \"pathsArray\".\n * @see R.path\n * @example\n *\n * R.paths([['a', 'b'], ['p', 0, 'q']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, 3]\n * R.paths([['a', 'b'], ['p', 'r']], {a: {b: 2}, p: [{q: 3}]}); //=> [2, undefined]\n */\n\nvar paths =\n/*#__PURE__*/\n_curry2(function paths(pathsArray, obj) {\n return pathsArray.map(function (paths) {\n var val = obj;\n var idx = 0;\n var p;\n\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n\n p = paths[idx];\n val = _isInteger(p) ? nth(p, val) : val[p];\n idx += 1;\n }\n\n return val;\n });\n});\n\nexport default paths;","import _curry2 from \"./internal/_curry2.js\";\nimport paths from \"./paths.js\";\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop, R.nth\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n * R.path(['a', 'b', 0], {a: {b: [1, 2, 3]}}); //=> 1\n * R.path(['a', 'b', -2], {a: {b: [1, 2, 3]}}); //=> 2\n */\n\nvar path =\n/*#__PURE__*/\n_curry2(function path(pathAr, obj) {\n return paths([pathAr], obj)[0];\n});\n\nexport default path;","import _curry1 from \"./internal/_curry1.js\";\nimport assocPath from \"./assocPath.js\";\nimport lens from \"./lens.js\";\nimport path from \"./path.js\";\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\nvar lensPath =\n/*#__PURE__*/\n_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\n\nexport default lensPath;","import _curry2 from \"./internal/_curry2.js\"; // `Const` is a functor that effectively ignores the function given to `map`.\n\nvar Const = function (x) {\n return {\n value: x,\n 'fantasy-land/map': function () {\n return this;\n }\n };\n};\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\n\n\nvar view =\n/*#__PURE__*/\n_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\n\nexport default view;","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */import y from\"intl-messageformat\";import p from\"ramda/es/lensPath\";import d from\"ramda/es/view\";const u=t=>{let e=t;if(t&&t.length==1){if(Object.prototype.toString.call(t[0])===\"[object Array]\")e=t[0];else if(typeof t[0]==\"object\"){const n=t[0];e=Object.keys(n).reduce((c,l)=>c.concat(l,n[l]),[])}}return e},F=t=>p(String(t).split(\".\"));let M=1;M=1;const j=(t,e,n={},c=!1)=>function(o,...r){if(!o||!e||!t||!e[t])return\"\";const s=d(F(o),e[t]);if(!s)return c?o:\"\";if(!r||!r.length)return s;const f={},m=`${o}${s}`;let i=f[m];i||(i=new y(s,t,n),f[m]=i),r=u(r);const g={};for(let a=0;a<r.length;a+=2)g[r[a]]=r[a+1];return i.format(g)};export{j as localizerFactory};\n","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nexport default mergeWithKey;","import _curry3 from \"./internal/_curry3.js\";\nimport _isObject from \"./internal/_isObject.js\";\nimport mergeWithKey from \"./mergeWithKey.js\";\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nexport default mergeDeepWithKey;","import _curry2 from \"./internal/_curry2.js\";\nimport mergeDeepWithKey from \"./mergeDeepWithKey.js\";\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nexport default mergeDeepRight;","/*\n * @license\n * BSD License\n *\n * Copyright (c) 2020, UXLand\n *\n * All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n * 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the <copyright holder>.\n * 4. Neither the name of the <copyright holder> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */import{publish as t}from\"@uxland/event-aggregator\";import r from\"ramda/es/mergeDeepRight\";import{LOCALES_RESET as n,LOCALES_UPDATED as a}from\"./events\";const o={};let e={};const l=s=>{e=r(o,e),e=r(e,s),t(a,e)},d=()=>({...o}),p=()=>({...e}),m=()=>{e={...o},t(n,e)};export{d as getDefaultLocales,p as getLocales,m as resetLocales,l as setLocales};\n","import { getLanguage, getLocales, localizerFactory, setLocales } from \"@uxland/localization\";\n\n/**\n * Creates a locale manager for a given plugin ID and translations.\n *\n * @param {string} pluginId - The ID of the plugin.\n * @param {Record<string, Record<string, string>>} translations - The translations for the plugin.\n * @return {Promise<{\n * translate: (path: string, variables?: Record<string, string>) => string,\n * getTranslations: () => Record<string, string>,\n * getCurrentLanguage: () => string,\n * }>} A promise that resolves to an object with methods for translating strings and getting translations.\n */\nexport const createLocaleManager =\n (pluginId: string) => (translations: Record<string, Record<string, string>>) => {\n const localizer = localizerFactory(getLanguage(), translations, \"\", true);\n setLocales(translations);\n return Promise.resolve({\n /**\n * Translates the given path using the provided variables and the plugin's ID.\n *\n * @param {string} path - The path to be translated.\n * @param {Record<string, string>} [variables] - Optional variables to be used in the translation.\n * @return {string} The translated string, or the original path if an error occurs.\n */\n translate: (path: string, variables?: Record<string, string>) => {\n try {\n return localizer(`${pluginId}.${path}`, variables);\n } catch (e) {\n console.error(e);\n return path;\n }\n },\n /**\n * Retrieves the translations for the current language and plugin.\n *\n * @return {Record<string, string>} The translations for the current language and plugin.\n */\n getTranslations: () => {\n const translations = getLocales();\n const language = getLanguage();\n return translations[language][pluginId] || {};\n },\n\n /**\n * Retrieves the current language.\n *\n * @return {string} The current language.\n */\n getCurrentLanguage: () => {\n return getLanguage();\n },\n });\n };\n","export const shellRegions = {\n header: \"header-region\",\n headerActions: \"header-actions-region\",\n main: \"main-region\",\n menu: \"menu-region\",\n quickActions: \"quick-actions-region\",\n floating: \"floating-region\",\n};\n\nexport const clinicalMonitoringRegions = {\n sidebar: \"widgets-sidebar-region\",\n header: \"header-widgets-region\",\n content: \"content-widgets-region\",\n};\n\nexport type PrimariaRegionNames =\n | (typeof shellRegions)[keyof typeof shellRegions]\n | (typeof clinicalMonitoringRegions)[keyof typeof clinicalMonitoringRegions];\n","import { html } from \"lit\";\nimport { TitleView } from \"./title-view\";\n\nexport const template = (props: TitleView) => html`\n <div class=\"wrapper\">${props.title}</div>\n`;\n","import { LitElement, css, html, unsafeCSS } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport styles from \"./styles.scss?inline\";\nimport { template } from \"./template\";\n\n@customElement(\"title-view\")\nexport class TitleView extends LitElement {\n constructor(private titleText: string) {\n super();\n this.title = titleText;\n }\n\n render() {\n return html`${template(this)}`;\n }\n\n static styles = css`\n ${unsafeCSS(styles)}\n `;\n\n @property()\n title: string;\n}\n","import { HarmonixRegionManager, IRegionManager, HarmonixViewDefinition } from \"@uxland/harmonix\";\nimport { PluginInfo } from \"./plugin\";\nimport { IRegion } from \"@uxland/regions\";\nimport { shellRegions } from \"./regions\";\nimport { TitleView } from \"./UI/components/title-view/title-view\";\n\nexport interface PrimariaRegionManager extends HarmonixRegionManager {\n registerMenu(view: HarmonixViewDefinition): Promise<void>;\n registerQuickAction(view: HarmonixViewDefinition): Promise<void>;\n registerMainView(view: HarmonixViewDefinition, title: string): Promise<void>;\n activateMainView(viewId: string): Promise<void>;\n}\n\nclass RegionManagerProxy implements PrimariaRegionManager {\n constructor(\n private pluginInfo: PluginInfo,\n private regionManager: IRegionManager,\n ) {}\n /**\n * Register a view in a specific region.\n *\n * @param {string} regionName - The name of the region to register the view with.\n * @param {HarmonixViewDefinition} view - The view definition to be registered.\n * @return {Promise<void>} A promise that resolves when the view is successfully registered.\n */\n registerView(regionName: string, view: HarmonixViewDefinition): Promise<void> {\n this.regionManager.registerViewWithRegion(\n regionName,\n `${this.pluginInfo.pluginId}::${view.id}`,\n view,\n );\n return Promise.resolve();\n }\n /**\n * Removes a view from a specific region.\n *\n * @param {string} regionName - The name of the region to remove the view from.\n * @param {string} viewId - The ID of the view to be removed.\n * @return {Promise<void>} A promise that resolves when the view is successfully removed.\n */\n removeView(regionName: string, viewId: string): Promise<void> {\n this.regionManager.getRegion(regionName).removeView(`${this.pluginInfo.pluginId}::${viewId}`);\n return Promise.resolve();\n }\n /**\n * Activates a view in a specific region.\n *\n * @param {string} regionName - The name of the region where the view is located.\n * @param {string} viewId - The ID of the view to be activated.\n * @return {Promise<void>} A promise that resolves when the view is successfully activated.\n */\n activateView(regionName: string, viewId: string): Promise<void> {\n this.regionManager.getRegion(regionName).activate(`${this.pluginInfo.pluginId}::${viewId}`);\n return Promise.resolve();\n }\n /**\n * Deactivates a view in a specific region.\n *\n * @param {string} regionName - The name of the region where the view is located.\n * @param {string} viewId - The ID of the view to be deactivated.\n * @return {Promise<void>} A promise that resolves when the view is successfully deactivated.\n */\n deactivateView(regionName: string, viewId: string): Promise<void> {\n this.regionManager.getRegion(regionName).deactivate(`${this.pluginInfo.pluginId}::${viewId}`);\n return Promise.resolve();\n }\n /**\n * Retrieves a region by its name.\n *\n * @param {string} regionName - The name of the region to retrieve.\n * @return {Promise<IRegion>} A promise that resolves to the retrieved region.\n */\n getRegion(regionName: string): Promise<IRegion> {\n return Promise.resolve(this.regionManager.getRegion(regionName));\n }\n /**\n * Checks if a view with the given ID exists in a specific region.\n *\n * @param {string} regionName - The name of the region to check.\n * @param {string} viewId - The ID of the view to check for.\n * @return {Promise<boolean>} A promise that resolves to true if the view exists, false otherwise.\n */\n containsView(regionName: string, viewId: string) {\n const region = this.regionManager.getRegion(regionName);\n return Promise.resolve(region?.containsView(`${this.pluginInfo.pluginId}::${viewId}`));\n }\n /**\n * Checks if a view with the given ID is active in a specific region.\n *\n * @param {string} regionName - The name of the region to check.\n * @param {string} viewId - The ID of the view to check for.\n * @return {Promise<boolean>} A promise that resolves to true if the view is active, false otherwise.\n */\n isViewActive(regionName: string, viewId: string) {\n const region = this.regionManager.getRegion(regionName);\n return Promise.resolve(region?.isViewActive(`${this.pluginInfo.pluginId}::${viewId}`));\n }\n\n registerMenu(view: HarmonixViewDefinition): Promise<void> {\n this.regionManager.registerViewWithRegion(\n shellRegions.menu,\n `${this.pluginInfo.pluginId}::${view.id}`,\n view,\n );\n return Promise.resolve();\n }\n registerQuickAction(view: HarmonixViewDefinition): Promise<void> {\n this.regionManager.registerViewWithRegion(\n shellRegions.quickActions,\n `${this.pluginInfo.pluginId}::${view.id}`,\n view,\n );\n return Promise.resolve();\n }\n registerMainView(view: HarmonixViewDefinition, title: string): Promise<void> {\n this.regionManager.registerViewWithRegion(\n shellRegions.main,\n `${this.pluginInfo.pluginId}::${view.id}`,\n view,\n );\n const titleView = createTitleView(view.id, title);\n this.regionManager.registerViewWithRegion(\n shellRegions.header,\n `${this.pluginInfo.pluginId}::${view.id}`,\n titleView,\n );\n return Promise.resolve();\n }\n activateMainView(viewId: string): Promise<void> {\n this.regionManager\n .getRegion(shellRegions.main)\n .activate(`${this.pluginInfo.pluginId}::${viewId}`);\n this.regionManager\n .getRegion(shellRegions.header)\n .activate(`${this.pluginInfo.pluginId}::${viewId}`);\n return Promise.resolve();\n }\n}\n\nconst createTitleView = (id: string, title: string): HarmonixViewDefinition => ({\n id: id,\n factory: () => Promise.resolve(new TitleView(title)),\n});\n\n/**\n * Creates a proxy for the region manager with the given plugin info and region manager instance.\n *\n * @param {PluginInfo} pluginInfo - The plugin information.\n * @param {IRegionManager} regionManager - The region manager instance.\n * @return {HarmonixRegionManager} The created region manager proxy.\n */\nexport const createRegionManagerProxy = (\n pluginInfo: PluginInfo,\n regionManager: IRegionManager,\n): PrimariaRegionManager => new RegionManagerProxy(pluginInfo, regionManager);\n","import {\n ConfirmOptions,\n CustomConfirmOptions,\n NotifyOptions,\n doConfirm,\n notify,\n} from \"@uxland/primaria-ui-components\";\n\nexport interface PrimariaInteractionManager {\n notify(options: NotifyOptions): Promise<any>;\n doConfirm(options: ConfirmOptions): Promise<boolean>;\n doCustomConfirm(options: CustomConfirmOptions): Promise<boolean>;\n}\n\nexport const createInteractionManager: () => PrimariaInteractionManager = () => {\n return {\n notify: (options: NotifyOptions) => notify(options),\n doConfirm: (options: ConfirmOptions) => doConfirm(options),\n doCustomConfirm: (options: CustomConfirmOptions) => doConfirm(options),\n } as PrimariaInteractionManager;\n};\n","import { PrimariaBroker } from \"../broker/primaria-broker\";\n\nexport abstract class PrimariaGlobalStateManager {\n abstract setData(key: string, value: any): void;\n abstract getData(key: string): any;\n abstract clearData(): void;\n}\n\nclass PrimariaGlobalStateManagerImpl implements PrimariaGlobalStateManager {\n private state: { [key: string]: any } = {};\n constructor(public broker: PrimariaBroker) {}\n\n /**\n * Sets the value of a key in the state object and publishes an event with the event bus.\n *\n * @param {string} key - The key to set the value for.\n * @param {any} value - The value to set for the key.\n * @return {void} This function does not return anything.\n */\n setData(key: string, value: any): void {\n this.state[key] = value;\n this.broker.publish(\"data-setted\", {\n key: key,\n value: value,\n });\n }\n\n /**\n * Retrieves the value associated with the specified key from the state object.\n *\n * @param {string} key - The key to retrieve the value for.\n * @return {any} The value associated with the specified key, or undefined if the key does not exist in the state object.\n */\n getData(key: string): any {\n return this.state[key];\n }\n\n /**\n * Clears all data stored in the state object.\n *\n * @return {void} This function does not return anything.\n */\n public clearData(): void {\n this.state = {};\n }\n}\n\nexport const createGlobalStateManager = (broker: PrimariaBroker) =>\n new PrimariaGlobalStateManagerImpl(broker);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { mediatorSettings } from \"../../index.js\";\nvar OrderMappings = /** @class */ (function () {\n function OrderMappings() {\n this._mappings = [];\n }\n OrderMappings.prototype.add = function (mapping) {\n if (mapping.order !== 0) {\n mapping.order = this._mappings.length;\n }\n this._mappings.push(mapping);\n this.onAdded(mapping);\n };\n OrderMappings.prototype.clear = function () {\n this._mappings = [];\n };\n return OrderMappings;\n}());\nexport { OrderMappings };\nfunction byOrder(a, b) {\n return (b.order || 0) - (a.order || 0);\n}\nvar NotificationMappings = /** @class */ (function (_super) {\n __extends(NotificationMappings, _super);\n function NotificationMappings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NotificationMappings.prototype.onAdded = function (mapping) {\n var handlerName = mapping.handler.prototype.constructor.name;\n mediatorSettings.resolver.add(handlerName, mapping.handler);\n };\n NotificationMappings.prototype.setOrder = function (notification, handlers) {\n var all = this.getAll(notification);\n for (var _i = 0, all_1 = all; _i < all_1.length; _i++) {\n var handler = all_1[_i];\n handler.order = handlers.indexOf(handler.handler);\n }\n };\n NotificationMappings.prototype.getAll = function (notification) {\n var items = this._mappings.filter(function (p) { return p.notification === notification; });\n if (items.length === 0)\n throw new Error(\"Cannot find notification handler with key: \".concat(notification.prototype.name));\n return items.sort(byOrder);\n };\n return NotificationMappings;\n}(OrderMappings));\nexport { NotificationMappings };\nvar BehaviorMappings = /** @class */ (function (_super) {\n __extends(BehaviorMappings, _super);\n function BehaviorMappings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BehaviorMappings.prototype.onAdded = function (mapping) {\n var handlerName = mapping.behavior.prototype.constructor.name;\n mediatorSettings.resolver.add(handlerName, mapping.behavior);\n };\n BehaviorMappings.prototype.setOrder = function (behaviors) {\n var all = this.getAll();\n for (var _i = 0, all_2 = all; _i < all_2.length; _i++) {\n var handler = all_2[_i];\n handler.order = behaviors.indexOf(handler.behavior);\n }\n };\n BehaviorMappings.prototype.getAll = function () {\n var items = __spreadArray([], this._mappings, true);\n return items.sort(byOrder);\n };\n return BehaviorMappings;\n}(OrderMappings));\nexport { BehaviorMappings };\n//# sourceMappingURL=mappings.js.map","/* eslint-disable @typescript-eslint/ban-types */\nimport { BehaviorMappings, NotificationMappings } from \"../../models/dispatcher/mappings.js\";\n/**\n * The internal dispatcher\n * Here storing the mapping between the event name with the handler name\n *\n * @export\n * @class Dispatcher\n * @implements {IDispatcher}\n */\nvar Dispatcher = /** @class */ (function () {\n function Dispatcher() {\n this._notifications = new NotificationMappings();\n this._behaviors = new BehaviorMappings();\n }\n Object.defineProperty(Dispatcher.prototype, \"notifications\", {\n get: function () {\n return this._notifications;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Dispatcher.prototype, \"behaviors\", {\n get: function () {\n return this._behaviors;\n },\n enumerable: false,\n configurable: true\n });\n return Dispatcher;\n}());\nexport default Dispatcher;\n//# sourceMappingURL=index.js.map","/* eslint-disable @typescript-eslint/ban-types */\n/**\n * The instance object to save the Handler functions and the relative key\n *\n * @export\n * @class HandlerInstance\n */\nvar HandlerInstance = /** @class */ (function () {\n /**\n * Creates an instance of HandlerInstance.\n * @param {string} name The name of the handler\n * @param {Function} value The fx handler\n * @memberof HandlerInstance\n */\n function HandlerInstance(name, value) {\n this._name = name;\n this._value = value;\n }\n Object.defineProperty(HandlerInstance.prototype, \"name\", {\n /**\n * Get the name value\n *\n * @readonly\n * @type {string}\n * @memberof HandlerInstance\n */\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HandlerInstance.prototype, \"value\", {\n /**\n * Get the fx value\n *\n * @readonly\n * @type {Function}\n * @memberof HandlerInstance\n */\n get: function () {\n return this._value;\n },\n enumerable: false,\n configurable: true\n });\n return HandlerInstance;\n}());\nexport default HandlerInstance;\n//# sourceMappingURL=handler.instance.js.map","import HandlerInstance from \"../models/handler.instance.js\";\n/**\n * The internal resolver\n * Here handler functions and relative keys are stored and retrieved.\n *\n * @export\n * @class Resolver\n * @implements {IResolver}\n */\nvar Resolver = /** @class */ (function () {\n function Resolver() {\n // Contains the mapping of the functions\n this._instances = [];\n }\n /**\n * Retrieve a func from the container\n *\n * @template T\n * @param {string} name The instance name to retrieve\n * @returns {T}\n * @memberof Resolver\n */\n Resolver.prototype.resolve = function (name) {\n var e = this._instances.find(function (p) { return p.name === name; });\n if (!e)\n throw new Error(\"Cannot find element with key: \".concat(name));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var handlerFx = e.value;\n return new handlerFx();\n };\n /**\n * Add a func and name to the container\n *\n * @param {string} name The instance name to add to the container\n * @param {Function} fx The function to store with the instance name\n * @memberof Resolver\n */\n Resolver.prototype.add = function (name, fx) {\n var k = this._instances.find(function (p) { return p.name === name; });\n if (k === undefined)\n this._instances.push(new HandlerInstance(name, fx));\n else\n throw new Error(\"The key \".concat(name, \" is already been added\"));\n };\n /**\n * Remove an isntance from the container\n *\n * @param {string} name The instance name to remove from the container\n * @memberof Resolver\n */\n Resolver.prototype.remove = function (name) {\n var i = this._instances.findIndex(function (p) { return p.name === name; });\n if (i >= 0) {\n this._instances.splice(i, 1);\n }\n };\n /**\n * Clear the container\n *\n * @memberof Resolver\n */\n Resolver.prototype.clear = function () {\n this._instances = [];\n };\n return Resolver;\n}());\nexport default Resolver;\n//# sourceMappingURL=resolver.js.map","import Dispatcher from \"./models/dispatcher/index.js\";\nimport Resolver from \"./models/resolver.js\";\n/**\n * Contains the settings for the MediatR lib\n *\n * @class MediatrSettings\n */\nvar MediatrSettings = /** @class */ (function () {\n function MediatrSettings() {\n this.resolver = new Resolver();\n this.dispatcher = new Dispatcher();\n }\n return MediatrSettings;\n}());\nvar mediatorSettings = new MediatrSettings();\nexport default mediatorSettings;\n//# sourceMappingURL=settings.js.map","import { mediatorSettings } from \"../index.js\";\n/**\n * Decorate the requestHandler with this attribute\n *\n * @param value The request type\n */\nvar requestHandler = function (value) {\n return function (target) {\n var name = value.prototype.constructor.name;\n mediatorSettings.resolver.add(name, target);\n };\n};\nexport default requestHandler;\n//# sourceMappingURL=request.attribute.js.map","import { mediatorSettings } from \"../index.js\";\n/**\n * Decorate the notificationHandler with this attribute\n *\n * @param value The request type\n * @param order The order of event\n */\nvar notificationHandler = function (value) {\n return function (target) {\n mediatorSettings.dispatcher.notifications.add({\n notification: value,\n handler: target\n });\n };\n};\nexport default notificationHandler;\n//# sourceMappingURL=notification.attribute.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { mediatorSettings } from \"../index.js\";\n/**\n * The mediator class\n * Send request and publish events\n *\n * @export\n * @class Mediator\n * @implements {IMediator}\n */\nvar Mediator = /** @class */ (function () {\n function Mediator() {\n }\n /**\n * Send a request to the mediator\n *\n * @template T\n * @param {IRequest<T>} request The request to send\n * @returns {Promise<T>}\n * @memberof Mediator\n */\n Mediator.prototype.send = function (request) {\n return __awaiter(this, void 0, void 0, function () {\n var name, handler, behaviors, currentBehaviorIndex, next;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n name = request.constructor.name;\n handler = mediatorSettings.resolver.resolve(name);\n behaviors = mediatorSettings.dispatcher.behaviors\n .getAll()\n .map(function (p) { return p.behavior; });\n currentBehaviorIndex = 0;\n next = function () { return __awaiter(_this, void 0, void 0, function () {\n var behaviorClass, behavior;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(currentBehaviorIndex < behaviors.length)) return [3 /*break*/, 2];\n behaviorClass = behaviors[currentBehaviorIndex];\n behavior = mediatorSettings.resolver.resolve(behaviorClass.name);\n currentBehaviorIndex++;\n return [4 /*yield*/, behavior.handle(request, next)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2: return [4 /*yield*/, handler.handle(request)];\n case 3: return [2 /*return*/, _a.sent()];\n }\n });\n }); };\n return [4 /*yield*/, next()];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * Publish a new message\n *\n * @param {INotification} message The message to publish\n * @returns {Promise<void>}\n * @memberof Mediator\n */\n Mediator.prototype.publish = function (message) {\n return __awaiter(this, void 0, void 0, function () {\n var events;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n events = mediatorSettings.dispatcher.notifications.getAll(message.constructor);\n return [4 /*yield*/, Promise.all(events.map(function (p) { return __awaiter(_this, void 0, void 0, function () {\n var handler;\n return __generator(this, function (_a) {\n handler = mediatorSettings.resolver.resolve(p.handler.name);\n return [2 /*return*/, handler.handle(message)];\n });\n }); }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return Mediator;\n}());\nexport default Mediator;\n//# sourceMappingURL=mediator.js.map","import { HarmonixBroker, IEvent, IEventClass, IRequest, IRequestClass } from \"@uxland/harmonix\";\nimport { Mediator, mediatorSettings, notificationHandler, requestHandler } from \"mediatr-ts\";\nimport { PrimariaBroker } from \"./primaria-broker\";\n\ntype messageHandler = (payload: unknown) => unknown | Promise<unknown>;\n\nclass Broker implements PrimariaBroker {\n private mediator: Mediator;\n constructor() {\n this.mediator = new Mediator();\n mediatorSettings.resolver.clear();\n }\n // biome-ignore lint/complexity/noBannedTypes: <explanation>\n private eventConstructorMap: Map<string, Function> = new Map();\n\n // biome-ignore lint/complexity/noBannedTypes: <explanation>\n private requestConstructorMap: Map<string, Function> = new Map();\n\n send<TRequest extends IRequest<TResponse>, TResponse>(message: TRequest): Promise<TResponse>;\n send<TPayload, TResponse>(requestName: string, payload: TPayload): Promise<TResponse>;\n send<TResponse>(request: IRequest<TResponse> | string, payload?: unknown): Promise<TResponse> {\n const eventPayload =\n typeof request === \"string\"\n ? this.getRequest<TResponse>(request as string, payload)\n : request;\n return this.mediator.send(eventPayload);\n }\n publish<TEvent extends IEvent>(event: TEvent): Promise<void>;\n publish<TPayload>(eventName: string, payload: TPayload): Promise<void>;\n publish(event: string | IEvent, payload?: unknown): Promise<void> {\n const eventPayload =\n typeof event === \"string\" ? this.getEvent(event as string, payload) : event;\n return this.mediator.publish(eventPayload);\n }\n subscribe<TEvent extends IEvent>(\n event: TEvent,\n handler: (message: TEvent) => void,\n ): HarmonixBroker;\n subscribe<TPayload>(eventName: string, handler: (message: TPayload) => void): HarmonixBroker;\n subscribe(event: string | IEventClass, handler: messageHandler): HarmonixBroker {\n const eventType = typeof event === \"function\" ? event : this.getEventType(event as string);\n notificationHandler(eventType)(createDynamicEventHandler(handler));\n return this;\n }\n registerRequest<TRequest extends IRequest<TResponse>, TResponse>(\n request: TRequest,\n handler: (message: TRequest) => TResponse,\n ): HarmonixBroker;\n registerRequest<TPayload, TResponse>(\n requestName: string,\n handler: (message: TPayload) => TResponse,\n ): HarmonixBroker;\n registerRequest(\n request: string | IRequestClass<unknown>,\n handler: messageHandler,\n ): HarmonixBroker {\n const requestType =\n typeof request === \"function\" ? request : this.getRequestType(request as string);\n requestHandler(requestType)(createDynamicRequestHandler(handler));\n return this;\n }\n\n private getEvent(eventName: string, payload: unknown): IEvent {\n const eventConstructor = this.getEventType(eventName);\n return new eventConstructor(payload) as IEvent;\n }\n\n private getRequest<TResponse>(requestName: string, payload: unknown): IRequest<TResponse> {\n const requestConstructor = this.getRequestType(requestName);\n return new requestConstructor(payload) as IRequest<unknown>;\n }\n\n private getEventType(eventName: string): IEventClass {\n if (!this.eventConstructorMap.has(eventName)) {\n const clazz = createDynamicEventClass(eventName);\n this.eventConstructorMap.set(eventName, clazz);\n }\n return this.eventConstructorMap.get(eventName) as IEventClass;\n }\n\n private getRequestType(requestName: string): IRequestClass<unknown> {\n if (!this.requestConstructorMap.has(requestName)) {\n const clazz = createDynamicRequestClass(requestName);\n this.requestConstructorMap.set(requestName, clazz);\n }\n return this.requestConstructorMap.get(requestName) as IRequestClass<unknown>;\n }\n}\n\nconst createDynamicEventClass = (eventName: string) =>\n createDynamicMessageClass(eventName, \"Event\");\n\nconst createDynamicRequestClass = (requestName: string) =>\n createDynamicMessageClass(requestName, \"Request\");\n\nconst createDynamicMessageClass = (eventName: string, classPrefix: string) => {\n return new Function(`return class ${classPrefix}_${eventName} {\n constructor(payload) {\n Object.assign(this, payload);\n }\n }`)();\n};\n\nconst createDynamicRequestHandler = (handler: messageHandler) =>\n createDynamicMessageHandler(handler, \"RequestHandler\");\nconst createDynamicEventHandler = (handler: messageHandler) =>\n createDynamicMessageHandler(handler, \"EventHandler\");\n\nconst createDynamicMessageHandler = (handler: messageHandler, classPrefix: string) => {\n const className = `${classPrefix}_${Math.floor(Math.random() * 10000)}`; // Generate a random class name\n return new Function(\n \"handler\",\n `return class ${className}{\n handle(notification){\n const handlerResult = handler({...notification});\n return handlerResult instanceof Promise ? handlerResult : Promise.resolve(handlerResult);\n }\n }`,\n )(handler);\n};\n\nexport const createBroker = (): PrimariaBroker => new Broker();\n","import {\n ApiFactory,\n HarmonixApi,\n IRegionManager,\n PluginInfo,\n createRegionHost,\n createRegionManager,\n} from \"@uxland/harmonix\";\nimport { createLocaleManager } from \"./localization/localization\";\nimport { PrimariaRegionManager, createRegionManagerProxy } from \"../region-manager\";\nimport {\n PrimariaInteractionManager,\n createInteractionManager,\n} from \"./interaction-manager/interaction\";\nimport { PrimariaGlobalStateManager, createGlobalStateManager } from \"./global-state/global-state\";\nimport { PrimariaBroker } from \"./broker/primaria-broker\";\nimport { createBroker } from \"./broker/factory\";\nconst broker = createBroker();\n\ninterface PrimariaHttpClient {\n get(url: string): Promise<any>;\n post(url: string, data: any): Promise<any>;\n}\n\nexport interface PrimariaApi extends HarmonixApi {\n httpClient: PrimariaHttpClient;\n interactionManager: PrimariaInteractionManager;\n broker: PrimariaBroker;\n regionManager: PrimariaRegionManager;\n globalStateManager: PrimariaGlobalStateManager;\n}\n\nconst regionManager: IRegionManager = createRegionManager(\"primaria\");\nexport const PrimariaRegionHost: any = createRegionHost(regionManager as any);\n\n/**\n * Factory function that creates a Primaria API instance.\n *\n * @param {PluginInfo} pluginInfo - Information about the plugin\n * @return {PrimariaApi} The created Primaria API instance\n */\nexport const primariaApiFactory: ApiFactory<PrimariaApi> = (\n pluginInfo: PluginInfo,\n): PrimariaApi => {\n return {\n pluginInfo: pluginInfo,\n regionManager: createRegionManagerProxy(pluginInfo, regionManager),\n httpClient: {\n get: (url: string) => fetch(url).then((r) => r.json()),\n post: (url: string, data: any) =>\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n }).then((r) => r.json()),\n },\n interactionManager: { ...createInteractionManager() },\n broker: broker,\n createLocaleManager: createLocaleManager(pluginInfo.pluginId) as any,\n globalStateManager: createGlobalStateManager(broker),\n };\n};\n\nexport const shellApi = primariaApiFactory({ pluginId: \"primaria-shell\" }) as PrimariaApi;\n","import { LitElement, css, html, unsafeCSS } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport styles from \"./styles.scss?inline\";\nimport { template } from \"./template\";\nimport { PrimariaRegionHost } from \"../../../api/api\";\nimport { IRegion, region } from \"@uxland/regions\";\nimport { clinicalMonitoringRegions } from \"../../../regions\";\n\n//@ts-ignore\n@customElement(\"clinical-monitoring\")\nexport class ClinicalMonitoring extends PrimariaRegionHost(LitElement) {\n render() {\n return html`${template(this)}`;\n }\n\n static styles = css`\n ${unsafeCSS(styles)}\n `;\n\n @region({ targetId: \"widgets-sidebar-region\", name: clinicalMonitoringRegions.sidebar })\n sidebarRegion: IRegion | undefined;\n\n @region({ targetId: \"header-widgets-region\", name: clinicalMonitoringRegions.header })\n headerRegion: IRegion | undefined;\n\n @region({ targetId: \"content-widgets-region\", name: clinicalMonitoringRegions.content })\n contentRegion: IRegion | undefined;\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import { css } from 'lit';\n// Material Symbols\nexport const symbolStyles = css `\n .dss-icon,\n .material-symbols-rounded {\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n font-style: normal;\n display: inline-block;\n line-height: 1;\n text-transform: none;\n letter-spacing: normal;\n word-wrap: normal;\n white-space: nowrap;\n direction: ltr;\n -webkit-font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n }\n\n .dss-icon--fill,\n .material-symbols-rounded--fill {\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-icon--sm {\n font-size: var(--icon-size-sm);\n }\n\n .dss-icon--md {\n font-size: var(--icon-size-md);\n }\n\n .dss-icon--lg {\n font-size: var(--icon-size-lg);\n }\n\n .dss-icon--xl {\n font-size: var(--icon-size-xl);\n }\n`;\n//# sourceMappingURL=symbol.style.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nlet Avatar = class Avatar extends LitElement {\n constructor() {\n super(...arguments);\n this._acronym = '';\n this._name = '';\n this._surname = '';\n this._imageUrl = '';\n this._size = 'md';\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n :host {\n display: inline-block;\n width: fit-content;\n height: fit-content;\n }\n\n .dss-avatar {\n border-radius: 100%;\n background-color: #f5f5f5;\n overflow: hidden;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #656565;\n text-transform: uppercase;\n }\n\n .dss-avatar.dss-avatar--border {\n box-shadow: inset 0 0 0 1px #d8d8d8;\n }\n\n .dss-avatar .dss-avatar__icon {\n font-weight: 500;\n }\n\n .dss-avatar .dss-avatar__font {\n font-weight: 600;\n }\n\n .dss-avatar .dss-avatar__img {\n border-radius: 100%;\n height: 100%;\n }\n\n .dss-avatar--sm {\n width: 24px;\n height: 24px;\n }\n\n .dss-avatar--md {\n width: 32px;\n height: 32px;\n }\n\n .dss-avatar--lg {\n width: 40px;\n height: 40px;\n }\n\n .dss-avatar--xl {\n width: 48px;\n height: 48px;\n }\n\n .dss-avatar--sm .dss-avatar__icon {\n font-size: 16px;\n }\n\n .dss-avatar--md .dss-avatar__icon {\n font-size: 16px;\n }\n\n .dss-avatar--lg .dss-avatar__icon {\n font-size: 24px;\n }\n\n .dss-avatar--xl .dss-avatar__icon {\n font-size: 32px;\n }\n\n .dss-avatar--sm .dss-avatar__font {\n font-size: 12px;\n line-height: 16px;\n }\n\n .dss-avatar--md .dss-avatar__font,\n .dss-avatar--lg .dss-avatar__font {\n font-size: 14px;\n line-height: 24px;\n }\n\n .dss-avatar--xl .dss-avatar__font {\n font-size: 16px;\n line-height: 24px;\n }\n `,\n ];\n }\n set name(name) {\n const oldValue = this._name;\n this._name = name;\n this.requestUpdate('name', oldValue);\n }\n set surname(surname) {\n const oldValue = this._surname;\n this._surname = surname;\n this.requestUpdate('surname', oldValue);\n }\n set imageUrl(imageUrl) {\n const oldValue = this._imageUrl;\n this._imageUrl = imageUrl;\n this.requestUpdate('imageUrl', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n render() {\n const cssClass = !this._imageUrl ? 'dss-avatar--border' : '';\n return html `\n <div class=\"dss-avatar dss-avatar--${this._size} ${cssClass}\">\n ${this._imageUrl\n ? html `<img\n class=\"dss-avatar__img\"\n src=\"${this._imageUrl}\"\n alt=\"avatar\"\n />`\n : html `${this._acronym\n ? html `<span class=\"dss-avatar__font\">${this._acronym}</span>`\n : html `<span class=\"material-symbols-rounded dss-avatar__icon\">\n person\n </span>`}`}\n </div>\n `;\n }\n willUpdate(changedProperties) {\n const name = changedProperties.has('name');\n const surname = changedProperties.has('surname');\n if (name || surname) {\n this.formatAcronym();\n }\n }\n formatAcronym() {\n var _a, _b;\n let initials = (_a = this._name) === null || _a === void 0 ? void 0 : _a.trim().substring(0, 1).toUpperCase();\n if (!!this._name && !!this._surname) {\n initials += this._surname.trim().substring(0, 1).toUpperCase();\n }\n else {\n initials = (_b = this._name) === null || _b === void 0 ? void 0 : _b.trim().substring(0, 2).toUpperCase();\n }\n this._acronym = initials;\n this.requestUpdate('acronym', initials);\n }\n};\n__decorate([\n property({ type: String })\n], Avatar.prototype, \"name\", null);\n__decorate([\n property({ type: String })\n], Avatar.prototype, \"surname\", null);\n__decorate([\n property({ type: String })\n], Avatar.prototype, \"imageUrl\", null);\n__decorate([\n property({ type: String })\n], Avatar.prototype, \"size\", null);\nAvatar = __decorate([\n customElement('dss-avatar')\n], Avatar);\nexport { Avatar };\n//# sourceMappingURL=avatar.js.map","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,u=()=>r.createComment(\"\"),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1);function P(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(l=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=l?l:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,l=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=u===f?s+h:v>=0?(e.push(d),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(e.push(void 0),i):w)}return[P(t,r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),e]};class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V(t,i);if(this.el=N.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?H:\"?\"===i[1]?L:\"@\"===i[1]?z:k})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],u()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],u())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S(t,r._$AS(t,i.values),r,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h]}l!==(null==u?void 0:u.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),d(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&d(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N.createElement(P(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new M(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u()),this.k(u()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=S(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const I=s?s.emptyScript:\"\";class L extends k{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,I):this.element.removeAttribute(this.name)}}class z extends k{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=S(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const j={O:o,P:n,A:l,C:1,M:V,L:M,R:v,D:S,I:R,V:k,H:L,N:z,U:H,F:Z},B=i.litHtmlPolyfillSupport;null==B||B(N,R),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.8.0\");const D=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new R(i.insertBefore(u(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{j as _$LH,x as html,T as noChange,A as nothing,D as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const startDate = toDate(interval.start);\n const endDate = toDate(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date) {\n const _date = toDate(date);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date) {\n const _date = toDate(date);\n const day = _date.getDay();\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { css } from 'lit';\n// Buttons variations\nexport const buttonStyles = css `\n .dss-button {\n border-radius: 128px;\n border: none;\n cursor: pointer;\n font-weight: var(--font-semibold);\n display: flex;\n align-items: center;\n transition: 0.3s all ease-in;\n width: fit-content;\n height: fit-content;\n box-sizing: border-box;\n }\n\n .dss-button:focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-primary-200);\n }\n\n .dss-button:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button:active:enabled {\n transition: none;\n }\n\n .dss-button-icon {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .dss-button-icon .dss-icon,\n .dss-button-icon .dss-icon .path1::before,\n .dss-button-icon .dss-icon .path2::before {\n color: inherit;\n }\n\n .dss-button--primary {\n background-color: var(--color-primary-500);\n color: var(--color-white);\n }\n\n .dss-button--primary:hover:enabled {\n background-color: var(--color-primary-600);\n }\n\n .dss-button--primary:active:enabled {\n background-color: var(--color-primary-400);\n }\n\n .dss-button--primary:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button--secondary {\n background-color: transparent;\n border: var(--dss-border-width-sm) solid var(--color-primary-600);\n color: var(--color-primary-600);\n }\n\n .dss-button--secondary:hover:enabled {\n border: var(--dss-border-width-sm) solid var(--color-primary-700);\n color: var(--color-primary-700);\n background-color: var(--color-primary-50);\n }\n\n .dss-button--secondary:active:enabled {\n border: var(--dss-border-width-sm) solid var(--color-primary-500);\n color: var(--color-primary-500);\n }\n\n .dss-button--secondary:focus-visible {\n border-color: transparent;\n outline: var(--dss-border-width-lg) solid var(--color-primary-200);\n }\n\n .dss-button--secondary:disabled {\n background: transparent;\n border-color: var(--color-neutral-500);\n color: var(--color-neutral-500);\n cursor: not-allowed;\n }\n\n .dss-button--subtle {\n color: var(--color-primary-600);\n background: none;\n }\n\n .dss-button--subtle:hover:enabled {\n color: var(--color-primary-800);\n background-color: var(--color-primary-50);\n }\n\n .dss-button--subtle:active:enabled {\n color: var(--color-primary-500);\n }\n\n .dss-button--subtle:disabled {\n cursor: not-allowed;\n color: var(--color-neutral-500);\n background: none;\n }\n\n .dss-button--error {\n background-color: var(--color-red-500);\n color: var(--color-white);\n }\n\n .dss-button--error:hover:enabled {\n background-color: var(--color-red-600);\n }\n\n .dss-button--error:active:enabled {\n background-color: var(--color-red-400);\n }\n\n .dss-button--error:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button--warning {\n color: var(--color-yellow-900);\n background-color: var(--color-yellow-500);\n }\n\n .dss-button--warning:hover:enabled {\n background-color: var(--color-yellow-600);\n }\n\n .dss-button--warning:active:enabled {\n background-color: var(--color-yellow-400);\n }\n\n .dss-button--warning:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button--success {\n background-color: var(--color-green-500);\n color: var(--color-white);\n }\n\n .dss-button--success:hover:enabled {\n background-color: var(--color-green-600);\n }\n\n .dss-button--success:active:enabled {\n background-color: var(--color-green-400);\n }\n\n .dss-button--success:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button--info {\n background-color: var(--color-blue-500);\n color: var(--color-white);\n }\n\n .dss-button--info:hover:enabled {\n background-color: var(--color-blue-600);\n }\n\n .dss-button--info:active:enabled {\n background-color: var(--color-blue-400);\n }\n\n .dss-button--info:disabled {\n background: var(--color-neutral-100);\n color: var(--color-neutral-600);\n cursor: not-allowed;\n }\n\n .dss-button--sm {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n font-size: 12px;\n line-height: 16px;\n }\n\n .dss-button--sm.dss-button--icon-left {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm) var(--dss-spacing-xxs)\n var(--dss-spacing-xs);\n }\n\n .dss-button--sm.dss-button--icon-right {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs) var(--dss-spacing-xxs)\n var(--dss-spacing-sm);\n }\n\n .dss-button--sm.dss-button--icon-right > [class^='material-'],\n .dss-button--sm.dss-button--icon-right > .dss-icon {\n margin-left: var(--dss-spacing-xxs);\n font-size: 16px;\n }\n\n .dss-button--sm.dss-button--icon-left > [class^='material-'],\n .dss-button--sm.dss-button--icon-left > .dss-icon {\n margin-right: var(--dss-spacing-xxs);\n font-size: 16px;\n }\n\n .dss-button--sm.dss-button--only-icon {\n padding: var(--dss-spacing-xxs);\n font-size: 16px;\n }\n\n .dss-button--md {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-md) var(--dss-spacing-xxs)\n var(--dss-spacing-md);\n font-size: 14px;\n line-height: 24px;\n }\n\n .dss-button--md.dss-button--icon-left {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-md) var(--dss-spacing-xxs)\n var(--dss-spacing-sm);\n }\n\n .dss-button--md.dss-button--icon-right {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm) var(--dss-spacing-xxs)\n var(--dss-spacing-md);\n }\n\n .dss-button--md.dss-button--icon-right > [class^='material-'],\n .dss-button--md.dss-button--icon-right > .dss-icon {\n margin-left: var(--dss-spacing-xxs);\n font-size: 16px;\n }\n\n .dss-button--md.dss-button--icon-left > [class^='material-'],\n .dss-button--md.dss-button--icon-left > .dss-icon {\n margin-right: var(--dss-spacing-xxs);\n font-size: 16px;\n }\n\n .dss-button--md.dss-button--only-icon {\n padding: var(--dss-spacing-xs);\n font-size: 16px;\n }\n\n .dss-button--lg {\n padding: var(--dss-spacing-xs) var(--dss-spacing-lg);\n font-size: 16px;\n line-height: 24px;\n }\n\n .dss-button--lg.dss-button--icon-left {\n padding: var(--dss-spacing-xs) var(--dss-spacing-lg) var(--dss-spacing-xs)\n var(--dss-spacing-md);\n }\n\n .dss-button--lg.dss-button--icon-right {\n padding: var(--dss-spacing-xs) var(--dss-spacing-md) var(--dss-spacing-xs)\n var(--dss-spacing-lg);\n }\n\n .dss-button--lg.dss-button--icon-right > [class^='material-'],\n .dss-button--lg.dss-button--icon-right > .dss-icon {\n margin-left: var(--dss-spacing-xs);\n font-size: 16px;\n }\n\n .dss-button--lg.dss-button--icon-left > [class^='material-'],\n .dss-button--lg.dss-button--icon-left > .dss-icon {\n margin-right: var(--dss-spacing-xs);\n font-size: 16px;\n }\n\n .dss-button--lg.dss-button--only-icon {\n padding: var(--dss-spacing-xs);\n font-size: 24px;\n }\n\n .dss-button--icon-left {\n flex-direction: row;\n }\n\n .dss-button--icon-right {\n flex-direction: row-reverse;\n }\n`;\n//# sourceMappingURL=button.style.js.map","import { css } from 'lit';\n// Icon Buttons variations\nexport const iconButtonStyles = css `\n .dss-icon-button {\n background-color: transparent;\n border-radius: 100%;\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: 0.3s all ease-in;\n width: fit-content;\n height: fit-content;\n }\n\n /* Define states */\n .dss-icon-button:disabled {\n cursor: not-allowed;\n color: var(--color-neutral-500);\n }\n\n .dss-icon-button:focus-visible:enabled {\n outline: var(--dss-spacing-xxs) solid var(--color-blue-200);\n transition: none;\n }\n\n .dss-icon-button--default {\n color: var(--color-neutral-700);\n }\n\n .dss-icon-button--default:hover:enabled {\n background-color: var(--color-neutral-100);\n }\n\n .dss-icon-button--default:active:enabled {\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-900);\n transition: none;\n }\n\n .dss-icon-button--white-default {\n color: var(--color-white);\n }\n\n .dss-icon-button--white-default:hover:enabled {\n background-color: var(--color-neutral-100);\n }\n\n .dss-icon-button--white-default:active:enabled {\n background-color: var(--color-neutral-50);\n transition: none;\n }\n\n .dss-icon-button--white-default:disabled {\n opacity: 0.4;\n color: var(--color-white);\n }\n\n .dss-icon-button--primary {\n color: var(--color-primary-700);\n }\n\n .dss-icon-button--primary:hover:enabled {\n background-color: var(--color-primary-100);\n color: var(--color-primary-800);\n }\n\n .dss-icon-button--primary:active:enabled {\n background-color: var(--color-primary-50);\n transition: none;\n color: var(--color-primary-500);\n }\n\n .dss-icon-button--error {\n color: var(--color-red-500);\n }\n\n .dss-icon-button--error:hover:enabled {\n background-color: var(--color-red-100);\n color: var(--color-red-700);\n }\n\n .dss-icon-button--error:active:enabled {\n background-color: var(--color-red-50);\n color: var(--color-red-700);\n }\n\n .dss-icon-button--warning {\n color: var(--color-yellow-700);\n }\n\n .dss-icon-button--warning:hover:enabled {\n background-color: var(--color-yellow-100);\n }\n\n .dss-icon-button--warning:active:enabled {\n background-color: var(--color-yellow-50);\n }\n\n .dss-icon-button--success {\n color: var(--color-green-500);\n }\n\n .dss-icon-button--success:hover:enabled {\n background-color: var(--color-green-100);\n color: var(--color-green-700);\n }\n\n .dss-icon-button--success:active:enabled {\n background-color: var(--color-green-50);\n color: var(--color-green-700);\n }\n\n .dss-icon-button--info {\n color: var(--color-blue-500);\n }\n\n .dss-icon-button--info:hover:enabled {\n background-color: var(--color-blue-100);\n color: var(--color-blue-700);\n }\n\n .dss-icon-button--info:active:enabled {\n background-color: var(--color-blue-50);\n color: var(--color-blue-700);\n }\n\n /* Define sizes */\n .dss-icon-button--sm {\n font-size: var(--icon-size-sm);\n padding: var(--dss-spacing-xxs);\n }\n\n .dss-icon-button--md {\n font-size: var(--icon-size-md);\n padding: var(--dss-spacing-xxs);\n }\n\n .dss-icon-button--lg {\n font-size: var(--icon-size-lg);\n padding: var(--dss-spacing-xxs);\n }\n\n .dss-icon-button--xl {\n font-size: var(--icon-size-xl);\n padding: var(--dss-spacing-xxs);\n }\n`;\n//# sourceMappingURL=icon-button.style.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { startOfMonth, endOfMonth, eachDayOfInterval, getDay } from 'date-fns';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { buttonStyles } from './shared-styles/button.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nconst MONTH = [\n 'Gener',\n 'Febrer',\n 'Març',\n 'Abril',\n 'Maig',\n 'Juny',\n 'Juliol',\n 'Agost',\n 'Setembre',\n 'Octubre',\n 'Novembre',\n 'Desembre',\n];\nconst WEEK = ['dl', 'dm', 'dc', 'dj', 'dv', 'ds', 'dg'];\nlet Calendar = class Calendar extends LitElement {\n constructor() {\n super(...arguments);\n this._timepicker = '';\n this._minutesRange = 1;\n this._minHour = 0;\n this._maxHour = 23;\n this._customTimeListOptions = [];\n this._timepickerLabel = '';\n this._date = new Date();\n this._currYear = this._date.getFullYear();\n this._currMonth = this._date.getMonth();\n // private _currHour = this._date.getHours();\n this._currHour = undefined;\n // private _currMin = this._date.getMinutes();\n // private _currMin = '';\n this._currMin = undefined;\n this._days = this._getDays();\n this._selectedDate = null;\n this._showTime = false;\n this._showButtons = true;\n this._leftLabel = 'Cancel·lar';\n this._rightLabel = 'Seleccionar';\n this._minDate = null;\n this._maxDate = null;\n this._timepickerValue = '';\n this._showMonthSelector = false;\n this._showYearSelector = false;\n this._yearsRangeStart = new Date().getFullYear() - 18;\n this._yearsRangeEnd = new Date().getFullYear() + 1;\n }\n static get styles() {\n return [\n symbolStyles,\n buttonStyles,\n iconButtonStyles,\n css `\n :host {\n display: inline-block;\n width: fit-content;\n height: fit-content;\n }\n\n .calendar__container {\n position: relative;\n background: #ffffff;\n box-shadow: 0px 4px 8px 3px rgba(0, 0, 0, 0.05),\n 0px 1px 3px rgba(0, 0, 0, 0.1);\n border-radius: var(--dss-radius-sm);\n }\n\n .calendar__content {\n padding: var(--dss-spacing-md);\n border-radius: 8px 8px 0 0;\n }\n\n .calendar__content--buttons {\n border-top: var(--dss-border-width-sm) solid var(--color-neutral-100);\n }\n\n .calendar__content:last-child {\n border-radius: 0 0 8px 8px;\n box-shadow: none;\n }\n\n .calendar__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--dss-spacing-xs);\n margin-bottom: 16px;\n }\n\n .calendar__header-item {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--dss-spacing-xxs);\n }\n\n .calendar__header-item--click {\n font-weight: var(--font-semibold);\n color: var(--color-neutral-900);\n border-radius: var(--dss-radius-xs);\n padding: var(--dss-spacing-xxs);\n cursor: pointer;\n }\n\n .calendar__header-item--click:hover {\n background-color: var(--color-primary-50);\n }\n\n .calendar__header-item--click:active {\n background-color: var(--color-primary-100);\n }\n\n .calendar__header-item--click:focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n .calendar__header-item--click:disabled {\n cursor: not-allowed;\n color: (--color-neutral-500);\n }\n\n .calendar__header-buttons .dss-icon-button.dss-icon-button--lg,\n .calendar-selector--year .dss-icon-button.dss-icon-button--lg {\n width: 32px;\n height: 32px;\n box-sizing: border-box;\n }\n\n .calendar__header-title {\n margin: auto;\n font-family: var(--font-family);\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n line-height: 24px;\n color: #414141;\n }\n\n .calendar__days-content {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .calendar__week-names,\n .calendar__days {\n list-style-type: none;\n padding: 0;\n margin: 0;\n gap: 8px 6px;\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n }\n\n .calendar__day-item {\n height: 32px;\n width: 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: transparent;\n border-radius: 100%;\n border: none;\n }\n\n .calendar__day-item {\n border-radius: 100%;\n cursor: pointer;\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n color: #1d1d1d;\n }\n\n .calendar__day-item--active {\n color: #0073e6;\n box-shadow: inset 0 0 0 2px #0073e6;\n }\n\n .calendar__day-item:hover:enabled,\n .calendar__day-item--selected {\n background: #0073e6;\n color: #ffffff;\n }\n\n .calendar__day-item:hover:enabled {\n transition: all 0.3s ease-in;\n }\n\n .calendar__day-item:active:enabled {\n background: #308deb;\n transition: none;\n }\n\n .calendar__day-item:disabled {\n pointer-events: none;\n opacity: 0.5;\n }\n\n .calendar__time-container {\n display: flex;\n margin: auto;\n justify-content: center;\n align-items: center;\n gap: 12px;\n font-weight: 600;\n font-size: 14px;\n line-height: 24px;\n color: #1d1d1d;\n }\n\n .calendar__time-content {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n }\n\n .calendar__buttons {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 16px;\n }\n\n .dss-datepicker__timepicker {\n position: relative;\n box-sizing: border-box;\n padding: var(--dss-spacing-xs) var(--dss-spacing-md)\n var(--dss-spacing-md);\n }\n\n .calendar-selector {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n padding: var(--dss-spacing-md);\n background-color: var(--color-white);\n z-index: 900;\n border-radius: var(--dss-radius-sm);\n }\n\n .calendar-selector-title {\n font-size: 16px;\n line-height: 24px;\n font-weight: var(--font-semibold);\n margin-bottom: var(--dss-spacing-md);\n }\n\n .calendar-selector-title__actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 0;\n }\n\n .calendar-selector-title--years {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n\n .calendar-selector-options {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: var(--dss-spacing-xs);\n }\n\n .calendar-selector-options--4col {\n grid-template-columns: repeat(4, 1fr);\n }\n\n .calendar-selector-options__item {\n height: 32px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 14px;\n font-weight: var(--font-semibold);\n text-transform: lowercase;\n text-align: center;\n color: var(--color-neutral-900);\n border-radius: var(--dss-radius-xs);\n overflow: hidden;\n cursor: pointer;\n }\n\n .calendar-selector-options__item--current {\n color: var(--color-primary-700);\n }\n\n .calendar-selector-options__item--selected {\n background-color: var(--color-primary-500);\n color: var(--color-white);\n }\n\n .calendar-selector-options__item:hover {\n background-color: var(--color-primary-600);\n color: var(--color-white);\n }\n\n .calendar-selector-options__item:active {\n background-color: var(--color-primary-400);\n color: var(--color-white);\n }\n\n .calendar-selector-options__item:focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n .calendar-selector-options__item:disabled {\n cursor: not-allowed;\n color: (--color-neutral-500);\n }\n `,\n ];\n }\n set selectedDate(selectedDate) {\n const oldValue = this._selectedDate;\n this._selectedDate = this._getDateString(selectedDate);\n this._updateCurrentDate();\n this.requestUpdate('selectedDate', oldValue);\n }\n set minDate(minDate) {\n const oldValue = this._minDate;\n this._minDate = this._getDateString(minDate);\n this.requestUpdate('minDate', oldValue);\n }\n set maxDate(maxDate) {\n const oldValue = this._maxDate;\n this._maxDate = this._getDateString(maxDate);\n this.requestUpdate('maxDate', oldValue);\n }\n set showTime(showTime) {\n const oldValue = this._showTime;\n this._showTime = showTime;\n this.requestUpdate('showTime', oldValue);\n }\n set showButtons(showButtons) {\n const oldValue = this._showButtons;\n this._showButtons = showButtons;\n this.requestUpdate('showButtons', oldValue);\n }\n set leftLabel(leftLabel) {\n const oldValue = this._leftLabel;\n this._leftLabel = leftLabel;\n this.requestUpdate('leftLabel', oldValue);\n }\n set rightLabel(rightLabel) {\n const oldValue = this._rightLabel;\n this._rightLabel = rightLabel;\n this.requestUpdate('rightLabel', oldValue);\n }\n set timepicker(value) {\n const oldValue = this._timepicker;\n this._timepicker = value;\n this.requestUpdate('timepicker', oldValue);\n }\n set minutesRange(value) {\n const oldValue = this._minutesRange;\n this._minutesRange = value;\n this.requestUpdate('minutesRange', oldValue);\n }\n set minHour(value) {\n const oldValue = this._minHour;\n this._minHour = value;\n this.requestUpdate('minHour', oldValue);\n }\n set maxHour(value) {\n const oldValue = this._maxHour;\n this._maxHour = value;\n this.requestUpdate('maxHour', oldValue);\n }\n set customTimeListOptions(options) {\n const oldValue = this._customTimeListOptions;\n this._customTimeListOptions = options;\n this.requestUpdate('customTimeListOptions', oldValue);\n }\n set timepickerLabel(label) {\n const oldValue = this._timepickerLabel;\n this._timepickerLabel = label;\n this.requestUpdate('timepickerLabel', oldValue);\n }\n _prev() {\n this._currMonth -= 1;\n this._update();\n }\n _next() {\n this._currMonth += 1;\n this._update();\n }\n _update() {\n if (this._currMonth < 0 || this._currMonth > 11) {\n this._date = new Date(this._currYear, this._currMonth, new Date().getDate());\n this._currYear = this._date.getFullYear();\n this._currMonth = this._date.getMonth();\n }\n this._days = this._getDays();\n this.requestUpdate();\n }\n _getDays() {\n const days = [];\n const startDate = startOfMonth(new Date(this._currYear, this._currMonth));\n const endDate = endOfMonth(new Date(this._currYear, this._currMonth));\n const daysOfMonth = eachDayOfInterval({ start: startDate, end: endDate });\n const firstDayOfMonth = getDay(startDate);\n // Populate last month days if firstDay is not Sunday\n for (let i = firstDayOfMonth === 0 ? 6 : firstDayOfMonth - 1; i > 0; i -= 1) {\n days.push(0);\n }\n // Populate days for current month\n for (const day of daysOfMonth) {\n days.push(day.getDate());\n }\n return days;\n }\n _isToday(day) {\n const _today = new Date();\n return (day === _today.getDate() &&\n this._currMonth === _today.getMonth() &&\n this._currYear === _today.getFullYear());\n }\n _isInactive(day) {\n const date = new Date(this._currYear, this._currMonth, day);\n if (!day) {\n return true;\n }\n if (this._minDate && this._maxDate) {\n return !(date >= this._minDate && date <= this._maxDate);\n }\n if (this._minDate) {\n return !(date >= this._minDate);\n }\n if (this._maxDate) {\n return !(date <= this._maxDate);\n }\n return false;\n }\n _isSelected(day) {\n var _a, _b, _c;\n return (day === ((_a = this._selectedDate) === null || _a === void 0 ? void 0 : _a.getDate()) &&\n this._currMonth === ((_b = this._selectedDate) === null || _b === void 0 ? void 0 : _b.getMonth()) &&\n this._currYear === ((_c = this._selectedDate) === null || _c === void 0 ? void 0 : _c.getFullYear()));\n }\n _selectDate(day) {\n this._selectedDate = new Date(this._currYear, this._currMonth, day);\n // if (this._showTime) {\n // this._selectedDate.setHours(this._currHour, this._currMin);\n // }\n this.requestUpdate();\n if (this._showButtons) {\n return;\n }\n this._emitDate();\n }\n _onCancel() {\n const onCancel = new CustomEvent('onCancel', {\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(onCancel);\n }\n _onAccept() {\n this._emitDate();\n }\n _emitDate() {\n var _a, _b, _c, _d, _e;\n const _day = (_b = (_a = this._selectedDate) === null || _a === void 0 ? void 0 : _a.getDate()) === null || _b === void 0 ? void 0 : _b.toString().padStart(2, '0');\n const _month = (_c = (this._currMonth + 1)) === null || _c === void 0 ? void 0 : _c.toString().padStart(2, '0');\n let date = `${_day}/${_month}/${this._currYear}`;\n if (this._showTime) {\n const _hours = (_d = this._currHour) === null || _d === void 0 ? void 0 : _d.toString().padStart(2, '0');\n const _mins = (_e = this._currMin) === null || _e === void 0 ? void 0 : _e.toString().padStart(2, '0');\n date += ` ${_hours}:${_mins}`;\n }\n const onDateChange = new CustomEvent('onDateChange', {\n detail: date,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(onDateChange);\n }\n _updateCurrentDate() {\n if (!this._selectedDate) {\n this._currYear = this._date.getFullYear();\n this._currMonth = this._date.getMonth();\n // this._currHour = this._date.getHours();\n // this._currMin = this._date.getMinutes();\n return;\n }\n this._currMonth = this._selectedDate.getMonth();\n this._currYear = this._selectedDate.getFullYear();\n this._currHour = this._selectedDate.getHours();\n this._currMin = this._selectedDate.getMinutes();\n this._days = this._getDays();\n if (this._currHour >= 10) {\n this._timepickerValue = `${this._currHour}:`;\n }\n else {\n this._timepickerValue = `0${this._currHour}:`;\n }\n if (this._currMin >= 10) {\n this._timepickerValue += this._currMin;\n }\n else {\n this._timepickerValue += `0${this._currMin}`;\n }\n }\n // eslint-disable-next-line class-methods-use-this\n _getDateString(selectedDate) {\n const _date = selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.replace(/(\\d+[/])(\\d+[/])/, '$2$1');\n const dateLength = this._showTime ? 14 : 8;\n return (_date === null || _date === void 0 ? void 0 : _date.length) > dateLength ? new Date(_date) : null;\n }\n _onSelectTime(e) {\n if (e.detail.status === 'VALID') {\n const selectedTime = e.detail.value;\n this._currHour = +selectedTime.substring(0, 2);\n this._currMin = +selectedTime.substring(3, 5);\n this.requestUpdate();\n }\n }\n _toggleMonthSelector() {\n this._showMonthSelector = true;\n this.requestUpdate();\n }\n _onMonthSelectorClick(month) {\n const selectedMonth = MONTH.indexOf(month);\n this._currMonth = selectedMonth;\n this._update();\n this._showMonthSelector = false;\n this.requestUpdate();\n }\n _toggleYearSelector() {\n this._showYearSelector = true;\n this.requestUpdate();\n }\n _onYearSelectorClick(year) {\n this._currYear = year;\n this._update();\n this._showYearSelector = false;\n this.requestUpdate();\n }\n _generateYearsRangeOptions() {\n const yearsRange = [];\n for (let year = this._yearsRangeStart; year <= this._yearsRangeEnd; year += 1) {\n yearsRange.push(year);\n }\n const output = yearsRange.map(year => {\n const moveFocusToOption = (currentOption) => {\n if (currentOption) {\n currentOption.focus();\n }\n };\n const moveFocusToPreviousOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.calendar-selector-options__item--year');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[0]) {\n moveFocusToOption(availableOptions[lastIndex]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index - 1]);\n }\n };\n const moveFocusToNextOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.calendar-selector-options__item--year');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[lastIndex]) {\n moveFocusToOption(availableOptions[0]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index + 1]);\n }\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n moveFocusToPreviousOption(tgt);\n flag = true;\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n moveFocusToNextOption(tgt);\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const yearElement = e.target;\n // Change tabIndex from current to clicked\n const tabIndexOption = this.renderRoot.querySelector('.calendar-selector-options__item--year[tabindex=\"0\"]');\n tabIndexOption === null || tabIndexOption === void 0 ? void 0 : tabIndexOption.setAttribute('tabindex', '-1');\n e.target.setAttribute('tabindex', '0');\n yearElement.click();\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Escape':\n const yearSelected = this.renderRoot.querySelector('.calendar-selector-options__item--selected');\n yearSelected.click();\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const currentDate = new Date();\n const currentYear = currentDate.getFullYear();\n const yearOptionClass = {\n 'calendar-selector-options__item--current': year === currentYear,\n 'calendar-selector-options__item--selected': year === this._currYear,\n };\n return html `\n <div\n class=\"calendar-selector-options__item calendar-selector-options__item--year ${classMap(yearOptionClass)}\"\n tabindex=\"${year === this._currYear ? 0 : -1}\"\n role=\"button\"\n @keydown=${onKeyDown}\n @click=${() => this._onYearSelectorClick(year)}\n >\n ${year}\n </div>\n `;\n });\n return output;\n }\n _generateMonthsOptions() {\n const output = MONTH.map(month => {\n const moveFocusToOption = (currentOption) => {\n if (currentOption) {\n currentOption.focus();\n }\n };\n const moveFocusToPreviousOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.calendar-selector-options__item--month');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[0]) {\n moveFocusToOption(availableOptions[lastIndex]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index - 1]);\n }\n };\n const moveFocusToNextOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.calendar-selector-options__item--month');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[lastIndex]) {\n moveFocusToOption(availableOptions[0]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index + 1]);\n }\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n case 'ArrowLeft':\n moveFocusToPreviousOption(tgt);\n flag = true;\n break;\n case 'ArrowDown':\n case 'ArrowRight':\n moveFocusToNextOption(tgt);\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const monthElement = e.target;\n // Change tabIndex from current to clicked\n const tabIndexOption = this.renderRoot.querySelector('.calendar-selector-options__item--month[tabindex=\"0\"]');\n tabIndexOption === null || tabIndexOption === void 0 ? void 0 : tabIndexOption.setAttribute('tabindex', '-1');\n e.target.setAttribute('tabindex', '0');\n monthElement.click();\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Escape':\n const monthSelected = this.renderRoot.querySelector('.calendar-selector-options__item--selected');\n monthSelected.click();\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const currentDate = new Date();\n const currentMonth = currentDate.getMonth();\n const monthOptionClass = {\n 'calendar-selector-options__item--current': MONTH.indexOf(month) === currentMonth,\n 'calendar-selector-options__item--selected': MONTH.indexOf(month) === this._currMonth,\n };\n return html `\n <div\n class=\"calendar-selector-options__item calendar-selector-options__item--month ${classMap(monthOptionClass)}\"\n tabindex=\"${MONTH.indexOf(month) === this._currMonth ? 0 : -1}\"\n role=\"button\"\n @keydown=${onKeyDown}\n @click=${() => this._onMonthSelectorClick(month)}\n >\n ${month.length <= 4 ? html `${month}` : html `${month.slice(0, 3)}.`}\n </div>\n `;\n });\n return output;\n }\n _onYearRangeStepUp() {\n this._yearsRangeStart += 20;\n this._yearsRangeEnd += 20;\n this.requestUpdate();\n }\n _onYearRangeStepDown() {\n this._yearsRangeStart -= 20;\n this._yearsRangeEnd -= 20;\n this.requestUpdate();\n }\n _onHeaderMonthKeyDown(e) {\n if (e.key === 'Enter') {\n e.target.click();\n setTimeout(() => {\n const monthSelected = this.renderRoot.querySelector('.calendar-selector-options__item--month[tabindex=\"0\"]');\n monthSelected.focus();\n }, 50);\n }\n }\n _onHeaderYearKeyDown(e) {\n if (e.key === 'Enter') {\n e.target.click();\n setTimeout(() => {\n const yearSelected = this.renderRoot.querySelector('.calendar-selector-options__item--year[tabindex=\"0\"]');\n yearSelected.focus();\n }, 50);\n }\n }\n render() {\n var _a, _b, _c, _d;\n return html `\n <div class=\"calendar__container\">\n <div class=\"calendar__content\">\n <header class=\"calendar__header\">\n <div class=\"calendar__header-item calendar__header-selector\">\n <div\n class=\"calendar__header-item calendar__header-item--click calendar__header-month\"\n tabindex=\"0\"\n role=\"button\"\n @keydown=\"${this._onHeaderMonthKeyDown}\"\n @click=\"${this._toggleMonthSelector}\"\n >\n ${MONTH[this._currMonth]}\n <span class=\"dss-icon dss-icon--sm\">expand_more</span>\n </div>\n <div\n class=\"calendar__header-item calendar__header-item--click calendar__header-year\"\n tabindex=\"0\"\n role=\"button\"\n @keydown=\"${this._onHeaderYearKeyDown}\"\n @click=${this._toggleYearSelector}\n >\n ${this._currYear}\n <span class=\"dss-icon dss-icon--sm\">expand_more</span>\n </div>\n </div>\n <div class=\"calendar__header-item calendar__header-buttons\">\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--lg\"\n @click=${this._prev}\n ?disabled=${this._currMonth === ((_a = this._minDate) === null || _a === void 0 ? void 0 : _a.getMonth()) &&\n this._currYear === ((_b = this._minDate) === null || _b === void 0 ? void 0 : _b.getFullYear())}\n >\n <span class=\"dss-icon\">chevron_left</span>\n </button>\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--lg\"\n @click=${this._next}\n ?disabled=${this._currMonth === ((_c = this._maxDate) === null || _c === void 0 ? void 0 : _c.getMonth()) &&\n this._currYear === ((_d = this._maxDate) === null || _d === void 0 ? void 0 : _d.getFullYear())}\n >\n <span class=\"dss-icon\">chevron_right</span>\n </button>\n </div>\n </header>\n\n <div class=\"calendar__days-content\">\n <ul class=\"calendar__week-names\">\n ${WEEK.map((day) => html `<li>${day}</li>`)}\n </ul>\n <div class=\"calendar__days\">\n ${this._days.map((day) => {\n const cssClass = {\n 'calendar__day-item--active': this._isToday(day),\n 'calendar__day-item--selected': this._isSelected(day),\n };\n return html `\n <button\n class=\"calendar__day-item ${classMap(cssClass)}\"\n @click=${() => this._selectDate(day)}\n ?disabled=${this._isInactive(day)}\n >\n ${day || null}\n </button>\n `;\n })}\n </div>\n </div>\n </div>\n ${this._showMonthSelector\n ? html `\n <div class=\"calendar-selector calendar-selector--month\">\n <div class=\"calendar-selector-title\">Selecciona un mes</div>\n <div class=\"calendar-selector-options\">\n ${this._generateMonthsOptions()}\n </div>\n </div>\n `\n : null}\n ${this._showYearSelector\n ? html `\n <div class=\"calendar-selector calendar-selector--year\">\n <div\n class=\"calendar-selector-title calendar-selector-title--years\"\n >\n <div class=\"calendar-selector-title__years\">\n ${this._yearsRangeStart} - ${this._yearsRangeEnd}\n </div>\n <div class=\"calendar-selector-title__actions\">\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--lg\"\n @click=${this._onYearRangeStepDown}\n >\n <span class=\"dss-icon\">chevron_left </span>\n </button>\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--lg\"\n @click=${this._onYearRangeStepUp}\n >\n <span class=\"dss-icon\">chevron_right </span>\n </button>\n </div>\n </div>\n <div\n class=\"calendar-selector-options calendar-selector-options--4col\"\n >\n ${this._generateYearsRangeOptions()}\n </div>\n </div>\n `\n : null}\n ${this._showTime\n ? html `\n <div class=\"dss-datepicker__timepicker\">\n <dss-timepicker\n .dropdown=\"${this._timepicker}\"\n .customTimeListOptions=${this._customTimeListOptions}\n .minutesRange=${this._minutesRange}\n .minHour=${this._minHour}\n .maxHour=${this._maxHour}\n @onTimepickerChange=${this._onSelectTime}\n >\n <label slot=\"label\" for=\"innerTimepicker\"\n >${this._timepickerLabel}</label\n >\n <input\n slot=\"input\"\n id=\"innerTimepicker\"\n type=\"text\"\n class=\"dss-input\"\n maxlength=\"5\"\n .value=\"${this._timepickerValue}\"\n />\n </dss-timepicker>\n </div>\n `\n : null}\n ${this._showButtons\n ? html `\n <div class=\"calendar__content calendar__content--buttons\">\n <div class=\"calendar__buttons\">\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary\"\n @click=${this._onCancel}\n >\n ${this._leftLabel}\n </button>\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--primary\"\n @click=${this._onAccept}\n ?disabled=${!this._selectedDate ||\n (this._showTime && !this._currHour)}\n >\n ${this._rightLabel}\n </button>\n </div>\n </div>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"selectedDate\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"minDate\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"maxDate\", null);\n__decorate([\n property({ type: Boolean })\n], Calendar.prototype, \"showTime\", null);\n__decorate([\n property({ type: Boolean })\n], Calendar.prototype, \"showButtons\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"leftLabel\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"rightLabel\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"timepicker\", null);\n__decorate([\n property({ type: Number })\n], Calendar.prototype, \"minutesRange\", null);\n__decorate([\n property({ type: Number })\n], Calendar.prototype, \"minHour\", null);\n__decorate([\n property({ type: Number })\n], Calendar.prototype, \"maxHour\", null);\n__decorate([\n property({ type: Array })\n], Calendar.prototype, \"customTimeListOptions\", null);\n__decorate([\n property({ type: String })\n], Calendar.prototype, \"timepickerLabel\", null);\nCalendar = __decorate([\n customElement('dss-calendar')\n], Calendar);\nexport { Calendar };\n//# sourceMappingURL=calendar.js.map","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet DatePicker = class DatePicker extends LitElement {\n constructor() {\n super(...arguments);\n this._value = '';\n this._label = '';\n this._placeHolder = '';\n this._previousDate = '';\n this._minDate = '';\n this._maxDate = '';\n this._showCalendar = false;\n this._showTime = false;\n this._invalid = false;\n this._showButtons = false;\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n this._leftLabel = 'Cancel·lar';\n this._rightLabel = 'Acceptar';\n this._isFocused = false;\n // Get access to the internal form control APIs\n this._internals = this.attachInternals();\n }\n static get styles() {\n return css `\n :host {\n display: flex;\n width: fit-content;\n height: fit-content;\n position: relative;\n }\n\n label {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n cursor: text;\n position: absolute;\n }\n\n input {\n outline: none;\n border: 0;\n font-size: 14px;\n line-height: 24px;\n font-style: normal;\n color: #1d1d1d;\n width: 100%;\n text-overflow: ellipsis;\n }\n\n input::placeholder {\n color: #9f9f9f;\n }\n\n .dss-input {\n display: flex;\n flex-direction: column;\n color: #656565;\n position: relative;\n width: 100%;\n }\n\n .dss-input--disabled {\n opacity: 0.6;\n }\n\n .dss-input__content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .dss-input--disabled .dss-input__group,\n .dss-input--disabled input {\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n .dss-input--disabled label,\n .dss-input--disabled input {\n cursor: not-allowed;\n }\n\n .dss-input__group {\n position: relative;\n background: #ffffff;\n box-shadow: inset 0 0 0 1px #d8d8d8;\n border-radius: 8px;\n padding: 12px;\n display: flex;\n gap: 8px;\n }\n\n :host([small]) .dss-input__group {\n padding: 8px 12px;\n }\n\n .dss-input__group--required label::before {\n content: '*';\n }\n\n .dss-input--invalid .dss-input__group:focus-visible input {\n background-color: #ffffff;\n }\n\n .dss-input__group--focused {\n padding: 4px 12px;\n }\n\n :host([small]) .dss-input__group--focused {\n padding: 1px 12px;\n }\n\n .dss-input__group--focused .dss-input__content label {\n font-size: 12px;\n line-height: 16px;\n transition: 0.3s;\n top: 4px;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content label {\n top: 2px;\n }\n\n .dss-input__group--focused .dss-input__content input,\n .dss-input__group--focused .dss-input__content input {\n margin-top: 16px !important;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content input {\n margin-top: 14px !important;\n }\n\n .dss-input--invalid .dss-input__group {\n box-shadow: inset 0 0 0 1px #b60000;\n }\n\n .dss-input--invalid .dss-input__group,\n .dss-input--invalid .dss-icon-button,\n .dss-input--invalid .dss-input__group input,\n .dss-input--invalid .dss-input__group .dss-icon-button:hover span {\n background-color: #fff6f6;\n color: #b60000;\n }\n\n .dss-input--invalid .dss-input__group input {\n color: #1d1d1d;\n }\n\n .dss-input__group:focus-visible,\n .dss-input__group--active {\n box-shadow: 0 0 0 4px #8ec7e5;\n background-color: #ffffff;\n outline: none;\n }\n\n .dss-input--invalid .dss-input__group--active {\n box-shadow: 0 0 0 4px #8ec7e5;\n }\n\n .dss-input--invalid input::placeholder {\n color: #d36262;\n }\n\n .dss-input__icon {\n font-family: 'Material Symbols Rounded';\n display: flex;\n align-items: center;\n font-size: 24px;\n }\n\n dss-calendar {\n position: absolute;\n top: 56px;\n z-index: 900;\n }\n\n :host([small]) dss-Calendar {\n top: 48px;\n }\n `;\n }\n get _input() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n }\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n if (this._input) {\n this._input.value = value;\n }\n this.requestUpdate('value', oldValue);\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n set placeHolder(placeHolder) {\n const oldValue = this._placeHolder;\n this._placeHolder = placeHolder;\n this.requestUpdate('placeHolder', oldValue);\n }\n set required(required) {\n const oldValue = this._required;\n this._required = required;\n this.requestUpdate('required', oldValue);\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set readonly(readonly) {\n const oldValue = this._readonly;\n this._readonly = readonly;\n this.requestUpdate('readonly', oldValue);\n }\n set showTime(showTime) {\n const oldValue = this._showTime;\n this._showTime = showTime;\n this.requestUpdate('showTime', oldValue);\n }\n set showButtons(showButtons) {\n const oldValue = this._showButtons;\n this._showButtons = showButtons;\n this.requestUpdate('showButtons', oldValue);\n }\n set leftLabel(leftLabel) {\n const oldValue = this._leftLabel;\n this._leftLabel = leftLabel;\n this.requestUpdate('leftLabel', oldValue);\n }\n set rightLabel(rightLabel) {\n const oldValue = this._rightLabel;\n this._rightLabel = rightLabel;\n this.requestUpdate('rightLabel', oldValue);\n }\n set minDate(minDate) {\n const oldValue = this._minDate;\n this._minDate = minDate;\n this.requestUpdate('minDate', oldValue);\n }\n set maxDate(maxDate) {\n const oldValue = this._maxDate;\n this._maxDate = maxDate;\n this.requestUpdate('maxDate', oldValue);\n }\n set invalid(invalid) {\n const oldValue = this._invalid;\n this._invalid = invalid;\n this.requestUpdate('invalid', oldValue);\n }\n // Form controls usually expose a \"value\" property\n // eslint-disable-next-line grouped-accessor-pairs\n get value() {\n let currentValue = '';\n if (this._input) {\n currentValue = this._input.value;\n }\n else {\n currentValue = this._value;\n }\n return currentValue;\n }\n // set value already implemented\n // The following properties and methods aren't strictly required,\n // but browser-level form controls provide them. Providing them helps\n // ensure consistency with browser-provided controls.\n get form() {\n return this._internals.form;\n }\n get name() {\n return this.getAttribute('name');\n }\n get type() {\n return this.localName;\n }\n get validity() {\n return this._internals.validity;\n }\n get validationMessage() {\n return this._internals.validationMessage;\n }\n get willValidate() {\n return this._internals.willValidate;\n }\n checkValidity() {\n return this._internals.checkValidity();\n }\n reportValidity() {\n return this._internals.reportValidity();\n }\n formResetCallback() {\n this._input.value = '';\n this.requestUpdate();\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n if (this._value) {\n this._input.value = this._value;\n }\n this._closeDropdown();\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _closeDropdown() {\n // Click outside component\n document.addEventListener('click', event => {\n if (event.target !== this) {\n this._showCalendar = false;\n this._isFocused = false;\n this.requestUpdate();\n }\n });\n // Focus out component\n document.addEventListener('focusout', event => {\n if (event.target === this) {\n this._showCalendar = false;\n this._isFocused = false;\n this.requestUpdate();\n }\n });\n }\n _handleKeyUp(e) {\n var _a, _b, _c, _d, _e, _f;\n // Keyboard accesibility\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Tab') {\n this._isFocused = true;\n this._handleBlur();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter' || (e === null || e === void 0 ? void 0 : e.key) === ' ') {\n this._showCalendar = true;\n this._handleBlur();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._isFocused = true; // Fix wrong focus out: calendar is closed but focus is still on input\n this._showCalendar = false;\n this._handleBlur();\n }\n if (e.key === 'Enter' && ((_a = this._input.value) === null || _a === void 0 ? void 0 : _a.length) > 7) {\n const stringDate = (_b = this._input.value) === null || _b === void 0 ? void 0 : _b.replace(/(\\d+[/])(\\d+[/])/, '$2$1');\n const date = new Date(stringDate);\n const day = (_c = date.getDate()) === null || _c === void 0 ? void 0 : _c.toString().padStart(2, '0');\n const month = (_d = (date.getMonth() + 1)) === null || _d === void 0 ? void 0 : _d.toString().padStart(2, '0');\n const year = date.getFullYear();\n const hours = (_e = date.getHours()) === null || _e === void 0 ? void 0 : _e.toString().padStart(2, '0');\n const mins = (_f = date.getMinutes()) === null || _f === void 0 ? void 0 : _f.toString().padStart(2, '0');\n let formattedDate = `${day}/${month}/${year}`;\n if (this._showTime) {\n formattedDate += ` ${hours}:${mins}`;\n }\n this._input.value = formattedDate;\n this._dispatchValueChange();\n this.requestUpdate();\n }\n }\n _handleInput(event) {\n var _a;\n const value = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.replace(/\\D/g, '');\n this._input.value = this._formatDate(value);\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _formatDate(value) {\n let _day = value.substring(0, 2);\n let _month = value.substring(2, 4);\n const _year = value.substring(4, 8);\n let _hour = value.substring(8, 10);\n let _min = value.substring(10, 12);\n if (Number(_day) > 3) {\n _day = _day === null || _day === void 0 ? void 0 : _day.padStart(2, '0');\n }\n if (Number(_month) > 1) {\n _month = _month === null || _month === void 0 ? void 0 : _month.padStart(2, '0');\n }\n if (Number(_day) > 31) {\n _day = '31';\n }\n if (Number(_month) > 12) {\n _month = '12';\n }\n if (_month === '02' && Number(_day) > 28 && (_year === null || _year === void 0 ? void 0 : _year.length) === 4) {\n const isLeap = new Date(Number(_year), 1, 29).getMonth() === 1;\n _day = isLeap ? '29' : '28';\n }\n let date = `${_day}${_month ? `/${_month}` : ''}${_year ? `/${_year}` : ''}`;\n if (this._showTime) {\n if (Number(_hour) > 2) {\n _hour = _hour === null || _hour === void 0 ? void 0 : _hour.padStart(2, '0');\n }\n if (Number(_hour) > 23) {\n _hour = '23';\n }\n if (Number(_min) > 5) {\n _min = _min === null || _min === void 0 ? void 0 : _min.padStart(2, '0');\n }\n date = `${date}${_hour ? ` ${_hour}` : ''}${_min ? `:${_min}` : ''}`;\n }\n return date;\n }\n _handleFocus() {\n if (this._readonly) {\n return;\n }\n this._placeHolder = this._showTime ? 'DD/MM/YYYY HH:MM' : 'DD/MM/YYYY';\n this.requestUpdate();\n }\n _handleBlur() {\n this.requestUpdate();\n }\n _handelLabelClick() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this.requestUpdate();\n }\n _onDateChange(e) {\n const date = e.detail;\n this._input.value = date;\n this._showCalendar = false;\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _onCancel() {\n this._showCalendar = false;\n this._input.value = this._previousDate || '';\n this.placeHolder = '';\n this.requestUpdate();\n }\n _onclick() {\n var _a, _b;\n if (this._disabled || this._readonly) {\n return;\n }\n this._showCalendar = !this._showCalendar;\n this._previousDate = this._input.value;\n if (this._showCalendar) {\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = this._input) === null || _b === void 0 ? void 0 : _b.blur();\n this._onCancel();\n }\n this.requestUpdate();\n }\n _dispatchValueChange() {\n const options = {\n detail: this._input.value,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n }\n render() {\n var _a;\n const containerClass = {\n 'dss-input--invalid': this._invalid,\n 'dss-input--disabled': this._disabled,\n };\n const cssClass = {\n 'dss-input__group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) ||\n this._placeHolder ||\n this._showCalendar ||\n this._isFocused,\n 'dss-input__group--required': this._required,\n 'dss-input__group--active': this._showCalendar || this._isFocused,\n };\n return html `\n <div\n class=\"dss-input ${classMap(containerClass)}\"\n @click=${this._onclick}\n >\n <div class=\"dss-input__group ${classMap(cssClass)}\">\n <span class=\"dss-input__icon\">calendar_today</span>\n <div class=\"dss-input__content\">\n <label @mouseup=${this._handelLabelClick}>${this._label}</label>\n <input\n ?disabled=${this._disabled}\n ?required=${this._required}\n ?readonly=${this._readonly}\n @input=${this._handleInput}\n @focus=${this._handleFocus}\n @blur=${this._handleBlur}\n @keyup=${this._handleKeyUp}\n placeholder=${ifDefined(this._placeHolder)}\n type=\"text\"\n />\n </div>\n </div>\n </div>\n ${this._showCalendar\n ? html `\n <dss-calendar\n .selectedDate=${this._input.value}\n .showTime=${this._showTime}\n .showButtons=${this._showButtons}\n .leftLabel=${this._leftLabel}\n .rightLabel=${this._rightLabel}\n .minDate=${this._minDate}\n .maxDate=${this._maxDate}\n @onDateChange=${this._onDateChange}\n @onCancel=${this._onCancel}\n ></dss-calendar>\n `\n : null}\n `;\n }\n};\nDatePicker.formAssociated = true;\nDatePicker.shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n};\n__decorate([\n property({ type: String, attribute: true })\n], DatePicker.prototype, \"value\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"placeHolder\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"required\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"readonly\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"showTime\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"showButtons\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"leftLabel\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"rightLabel\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"minDate\", null);\n__decorate([\n property({ type: String })\n], DatePicker.prototype, \"maxDate\", null);\n__decorate([\n property({ type: Boolean })\n], DatePicker.prototype, \"invalid\", null);\nDatePicker = __decorate([\n customElement('dss-date-picker')\n], DatePicker);\nexport { DatePicker };\n//# sourceMappingURL=date-picker.js.map","import { css } from 'lit';\n// Input variations\nexport const inputStyles = css `\n .dss-input-group {\n position: relative;\n font-family: var(--font-family);\n }\n\n .dss-input-group--md,\n .dss-input-group--md {\n height: 40px;\n }\n\n .dss-input-group--lg,\n .dss-input-group--lg {\n height: 48px;\n }\n\n .dss-input-group--has-icon ::slotted(label),\n .dss-input-group--has-icon .dss-input-label {\n left: calc(var(--dss-spacing-sm) + 24px + var(--dss-spacing-xs));\n }\n\n .dss-input-group--has-icon .dss-input-icon {\n display: block;\n }\n\n .dss-input-group--has-icon ::slotted(input),\n .dss-input-group--has-icon .dss-input {\n padding-left: calc(\n var(--dss-spacing-sm) + 24px + var(--dss-spacing-xs)\n ) !important;\n }\n\n .dss-input-group--numeric ::slotted(input),\n .dss-input-group--numeric .dss-input {\n padding-right: calc(\n var(--dss-spacing-sm) + 24px + var(--dss-spacing-xs)\n ) !important;\n }\n\n .dss-input-group--dropdown ::slotted(input),\n .dss-input-group--dropdown .dss-input {\n padding-right: calc(\n var(--dss-spacing-sm) + 24px + var(--dss-spacing-xxs)\n ) !important;\n }\n\n .dss-input-group--disabled {\n cursor: not-allowed;\n }\n\n .dss-input-group--disabled ::slotted(label),\n .dss-input-group--disabled .dss-input-label,\n .dss-input-group--disabled .dss-input-icon {\n color: var(--color-neutral-500);\n }\n\n .dss-input-group--required ::slotted(label)::before,\n .dss-input-group--required .dss-input-label::before {\n content: '*';\n }\n\n .dss-input-group--invalid ::slotted(label),\n .dss-input-group--invalid .dss-input-label,\n .dss-input-group--invalid .dss-input-icon {\n color: var(--color-red-500);\n }\n\n .dss-input-group--invalid ::slotted(input) {\n background-color: var(--color-red-50);\n border-color: var(--color-red-500);\n }\n\n ::slotted(input),\n .dss-input {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n min-width: 200px;\n font-size: 14px;\n font-family: inherit;\n color: var(--color-neutral-900);\n background-color: var(--color-white);\n border-radius: var(--dss-radius-sm);\n border: var(--dss-border-width-sm) solid var(--color-neutral-100);\n padding-top: var(--dss-spacing-md) !important;\n padding-right: var(--dss-spacing-sm) !important;\n padding-bottom: var(--dss-spacing-xxs) !important;\n padding-left: var(--dss-spacing-sm) !important;\n z-index: 100;\n }\n\n ::slotted(input::placeholder),\n .dss-input::placeholder {\n color: var(--color-neutral-600);\n opacity: 0;\n transition: opacity 0.5s;\n }\n\n ::slotted(input:focus-visible),\n .dss-input:focus-visible {\n border-color: var(--color-blue-200);\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n ::slotted(input:disabled),\n .dss-input:disabled {\n cursor: not-allowed;\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-500);\n }\n\n .dss-input-group--invalid .dss-input:not(:focus-visible) {\n background-color: var(--color-red-50);\n border-color: var(--color-red-500);\n }\n\n ::slotted(input:invalid:not(:empty)),\n ::slotted(input.ng-invalid:not(:empty)),\n .dss-input:invalid:not(:empty) {\n background-color: var(--color-red-50);\n border-color: var(--color-red-500);\n }\n\n .dss-input-group--read-only ::slotted(input),\n .dss-input-group--read-only .dss-input {\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-radius: 0;\n }\n\n ::slotted(label),\n .dss-input-label {\n cursor: inherit;\n position: absolute;\n top: calc(50% - 12px);\n left: var(--dss-spacing-sm);\n z-index: 200;\n font-size: 14px;\n font-family: inherit;\n color: var(--color-neutral-600);\n\n transition: top 0.3s;\n -moz-transition: top 0.3s;\n -webkit-transition: top 0.3s;\n -o-transition: top 0.3s;\n }\n\n .dss-input-icon {\n display: none;\n position: absolute;\n top: calc(50% - 12px);\n left: var(--dss-spacing-sm);\n color: var(--color-neutral-700);\n z-index: 200;\n }\n\n .dss-input-group--focused ::slotted(label),\n .dss-input-group--focused .dss-input-label {\n font-size: 12px;\n }\n\n .dss-input-group--md.dss-input-group--focused ::slotted(label),\n .dss-input-group--md.dss-input-group--focused .dss-input-label {\n top: 0;\n }\n\n .dss-input-group--lg.dss-input-group--focused ::slotted(label),\n .dss-input-group--lg.dss-input-group--focused .dss-input-label {\n top: var(--dss-spacing-tiny);\n }\n\n .dss-input-group--focused .dss-input::placeholder {\n opacity: 1;\n }\n\n .dss-input-help {\n display: flex;\n justify-content: space-between;\n font-family: var(--font-family);\n font-size: 12px;\n color: var(--color-neutral-700);\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n }\n\n .dss-input-help--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-input-help--invalid {\n color: var(--color-red-500);\n }\n\n .dss-input__numeric-buttons {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 300;\n padding: 0 var(--dss-spacing-sm);\n display: flex;\n flex-direction: column;\n justify-content: center;\n transition: all 0.3s ease-in;\n height: 100%;\n }\n\n .dss-input__numeric-buttons .dss-icon-button {\n display: flex;\n justify-content: center;\n text-align: center;\n width: 18px;\n height: 18px;\n align-items: center;\n font-size: 16px;\n }\n`;\n//# sourceMappingURL=input.style.js.map","import { css } from 'lit';\n// Scrollbar variations\nexport const scrollbarStyles = css `\n * {\n scrollbar-width: thin;\n scrollbar-color: var(--color-neutral-100) var(--color-white);\n }\n`;\n//# sourceMappingURL=scrollbar.style.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { inputStyles } from './shared-styles/input.style';\nimport { scrollbarStyles } from './shared-styles/scrollbar.style';\nimport { buttonStyles } from './shared-styles/button.style';\nlet Datepicker_ = class Datepicker_ extends LitElement {\n constructor() {\n super(...arguments);\n this._timepickerLabel = `Seleccionar l'hora`;\n this._timepicker = '';\n this._minutesRange = 1;\n this._minHour = 0;\n this._maxHour = 23;\n this._customTimeListOptions = [];\n this._icon = 'calendar_today';\n this._placeholder = '';\n this._previousDate = '';\n this._minDate = '';\n this._maxDate = '';\n this._showCalendar = false;\n this._showTime = false;\n this._invalid = false;\n this._showButtons = false;\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n this._leftLabel = 'Cancel·lar';\n this._rightLabel = 'Seleccionar';\n this._isFocused = false;\n this._helpText = '';\n this._inputSize = 'lg';\n this._inputValidity = true;\n // Options for the observer (which mutations to observe)\n this.observerConfig = { attributes: true, childList: true, subtree: true };\n // Callback function to execute when mutations are observed\n this.callback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n this._checkInputAttributes();\n this.requestUpdate();\n }\n }\n };\n // Create an observer instance linked to the callback function\n this.observer = new MutationObserver(this.callback);\n }\n static get styles() {\n return [\n symbolStyles,\n inputStyles,\n scrollbarStyles,\n buttonStyles,\n css `\n .dss-datepicker {\n position: relative;\n }\n\n .dss-datepicker-help {\n font-family: var(--font-family);\n }\n\n .dss-datepicker-help {\n font-family: inherit;\n font-size: 12px;\n color: var(--color-neutral-700);\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n }\n\n .dss-datepicker-help--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-datepicker-help--invalid {\n color: var(--color-red-500);\n }\n\n .dss-calendar {\n position: absolute;\n margin-top: 8px;\n top: 52px;\n z-index: 900;\n width: fit-content;\n }\n\n .dss-calendar--md {\n top: 44px;\n }\n `,\n ];\n }\n get _input() {\n var _a;\n const input = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"input\"]')) || undefined;\n this.requestUpdate();\n return input === null || input === void 0 ? void 0 : input.assignedElements()[0];\n }\n get _label() {\n var _a;\n const label = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"label\"]')) || undefined;\n this.requestUpdate();\n return label === null || label === void 0 ? void 0 : label.assignedElements()[0];\n }\n set showTime(showTime) {\n const oldValue = this._showTime;\n this._showTime = showTime;\n this._showButtons = true;\n this.requestUpdate('showTime', oldValue);\n }\n set showButtons(showButtons) {\n const oldValue = this._showButtons;\n this._showButtons = showButtons;\n this.requestUpdate('showButtons', oldValue);\n }\n set leftLabel(leftLabel) {\n const oldValue = this._leftLabel;\n this._leftLabel = leftLabel;\n this.requestUpdate('leftLabel', oldValue);\n }\n set rightLabel(rightLabel) {\n const oldValue = this._rightLabel;\n this._rightLabel = rightLabel;\n this.requestUpdate('rightLabel', oldValue);\n }\n set minDate(minDate) {\n const oldValue = this._minDate;\n this._minDate = minDate;\n this.requestUpdate('minDate', oldValue);\n }\n set maxDate(maxDate) {\n const oldValue = this._maxDate;\n this._maxDate = maxDate;\n this.requestUpdate('maxDate', oldValue);\n }\n set invalid(invalid) {\n const oldValue = this._invalid;\n this._invalid = invalid;\n this.requestUpdate('invalid', oldValue);\n }\n set inputSize(size) {\n const oldValue = this._inputSize;\n if (size === 'md') {\n this._inputSize = size;\n }\n else {\n this._inputSize = 'lg';\n }\n this.requestUpdate('inputSize', oldValue);\n }\n set helpText(text) {\n const oldValue = this._helpText;\n this._helpText = text;\n // this._oldHelpText = text;\n this.requestUpdate('helpText', oldValue);\n }\n set timepicker(value) {\n const oldValue = this._timepicker;\n this._timepicker = value;\n this.requestUpdate('timepicker', oldValue);\n }\n set minutesRange(value) {\n const oldValue = this._minutesRange;\n this._minutesRange = value;\n this.requestUpdate('minutesRange', oldValue);\n }\n set minHour(value) {\n const oldValue = this._minHour;\n this._minHour = value;\n this.requestUpdate('minHour', oldValue);\n }\n set maxHour(value) {\n const oldValue = this._maxHour;\n this._maxHour = value;\n this.requestUpdate('maxHour', oldValue);\n }\n set customTimeListOptions(options) {\n const oldValue = this._customTimeListOptions;\n this._customTimeListOptions = options;\n this.requestUpdate('customTimeListOptions', oldValue);\n }\n set timepickerLabel(label) {\n const oldValue = this._timepickerLabel;\n this._timepickerLabel = label;\n this.requestUpdate('timepickerLabel', oldValue);\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n if (this._input) {\n this._checkInputAttributes();\n // Start observing the target node for configured mutations\n this.observer.observe(this._input, this.observerConfig);\n }\n this._closeDropdown();\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _checkInputAttributes() {\n var _a, _b, _c, _d, _e, _f;\n // Check slot input attributes (before this _input is null)\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (inputPlaceholder)\n this._placeholder = inputPlaceholder;\n const inputReadOnly = (_b = this._input) === null || _b === void 0 ? void 0 : _b.getAttribute('readonly');\n if (inputReadOnly !== null)\n this._readonly = true;\n const disabled = (_c = this._input) === null || _c === void 0 ? void 0 : _c.getAttribute('disabled');\n if (disabled !== null)\n this._disabled = true;\n const required = (_d = this._input) === null || _d === void 0 ? void 0 : _d.getAttribute('required');\n if (required !== null)\n this._required = true;\n if (((_e = this._input) === null || _e === void 0 ? void 0 : _e.value) && ((_f = this._input) === null || _f === void 0 ? void 0 : _f.value) !== '') {\n this._handleValidity();\n }\n this.requestUpdate();\n }\n _handleValidity() {\n var _a;\n const validity = (_a = this._input) === null || _a === void 0 ? void 0 : _a.checkValidity();\n if (validity !== undefined)\n this._inputValidity = validity;\n }\n _closeDropdown() {\n // Click outside component\n document.addEventListener('click', event => {\n var _a;\n if (!event.composedPath().includes(this)) {\n if (this._showCalendar) {\n this._placeholder = '';\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.removeAttribute('placeholder');\n this._isFocused = false;\n this._showCalendar = false;\n this.requestUpdate();\n }\n }\n });\n // Focusout inside component\n this.addEventListener('focusout', event => {\n var _a;\n // eslint-disable-next-line prefer-destructuring\n const relatedTarget = event.relatedTarget;\n if (relatedTarget !== null &&\n relatedTarget !== this &&\n relatedTarget !== this._input &&\n relatedTarget !== this._label) {\n if (this._showCalendar) {\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.removeAttribute('placeholder');\n this._placeholder = '';\n this._isFocused = false;\n this._showCalendar = false;\n this.requestUpdate();\n }\n }\n });\n }\n _handleKeyUp(e) {\n var _a, _b, _c, _d, _e, _f;\n // Keyboard accesibility\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Tab') {\n this._isFocused = true;\n this._handleBlur();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter' || (e === null || e === void 0 ? void 0 : e.key) === ' ') {\n this._showCalendar = true;\n this._handleBlur();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._isFocused = true; // Fix wrong focus out: calendar is closed but focus is still on input\n this._showCalendar = false;\n this._handleBlur();\n }\n if (e.key === 'Enter' && this._input && ((_a = this._input.value) === null || _a === void 0 ? void 0 : _a.length) > 7) {\n if (this._input) {\n const stringDate = (_b = this._input.value) === null || _b === void 0 ? void 0 : _b.replace(/(\\d+[/])(\\d+[/])/, '$2$1');\n const date = new Date(stringDate);\n const day = (_c = date.getDate()) === null || _c === void 0 ? void 0 : _c.toString().padStart(2, '0');\n const month = (_d = (date.getMonth() + 1)) === null || _d === void 0 ? void 0 : _d.toString().padStart(2, '0');\n const year = date.getFullYear();\n const hours = (_e = date.getHours()) === null || _e === void 0 ? void 0 : _e.toString().padStart(2, '0');\n const mins = (_f = date.getMinutes()) === null || _f === void 0 ? void 0 : _f.toString().padStart(2, '0');\n let formattedDate = `${day}/${month}/${year}`;\n if (this._showTime) {\n formattedDate += ` ${hours}:${mins}`;\n this._handleValidity();\n }\n if (this._input) {\n this._input.value = formattedDate;\n }\n this._dispatchValueChange();\n this.requestUpdate();\n }\n }\n }\n _handleInput(event) {\n var _a;\n const value = (_a = event.target.value) === null || _a === void 0 ? void 0 : _a.replace(/\\D/g, '');\n if (this._input) {\n this._input.value = this._formatDate(value);\n this._handleValidity();\n }\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _formatDate(value) {\n let _day = value.substring(0, 2);\n let _month = value.substring(2, 4);\n const _year = value.substring(4, 8);\n let _hour = value.substring(8, 10);\n let _min = value.substring(10, 12);\n if (Number(_day) > 3) {\n _day = _day === null || _day === void 0 ? void 0 : _day.padStart(2, '0');\n }\n if (Number(_month) > 1) {\n _month = _month === null || _month === void 0 ? void 0 : _month.padStart(2, '0');\n }\n if (Number(_day) > 31) {\n _day = '31';\n }\n if (Number(_month) > 12) {\n _month = '12';\n }\n if (_month === '02' && Number(_day) > 28 && (_year === null || _year === void 0 ? void 0 : _year.length) === 4) {\n const isLeap = new Date(Number(_year), 1, 29).getMonth() === 1;\n _day = isLeap ? '29' : '28';\n }\n let date = `${_day}${_month ? `/${_month}` : ''}${_year ? `/${_year}` : ''}`;\n if (this._showTime) {\n if (Number(_hour) > 2) {\n _hour = _hour === null || _hour === void 0 ? void 0 : _hour.padStart(2, '0');\n }\n if (Number(_hour) > 23) {\n _hour = '23';\n }\n if (Number(_min) > 5) {\n _min = _min === null || _min === void 0 ? void 0 : _min.padStart(2, '0');\n }\n date = `${date}${_hour ? ` ${_hour}` : ''}${_min ? `:${_min}` : ''}`;\n }\n return date;\n }\n _handleFocus() {\n var _a;\n if (this._readonly) {\n return;\n }\n this._placeholder = this._showTime ? 'DD/MM/YYYY HH:MM' : 'DD/MM/YYYY';\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.setAttribute('placeholder', this._placeholder);\n this.requestUpdate();\n }\n _handleBlur() {\n this.requestUpdate();\n }\n _focusInput() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this._handleClick();\n }\n _handleClick() {\n this._showCalendar = true;\n this.requestUpdate();\n }\n _onDateChange(e) {\n var _a;\n const date = e.detail;\n if (this._input) {\n this._input.value = date;\n this._handleValidity();\n }\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.removeAttribute('placeholder');\n this._placeholder = '';\n this._isFocused = false;\n this._showCalendar = false;\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _onCancel() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.removeAttribute('placeholder');\n this._placeholder = '';\n this._isFocused = false;\n this._showCalendar = false;\n if (this._input) {\n this._input.value = this._previousDate || '';\n this._handleValidity();\n }\n this.requestUpdate();\n }\n _dispatchValueChange() {\n var _a;\n const options = {\n detail: (_a = this._input) === null || _a === void 0 ? void 0 : _a.value,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n }\n render() {\n var _a, _b;\n const inputGroupClass = {\n 'dss-input-group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) || this._placeholder || this._isFocused,\n 'dss-input-group--lg': this._inputSize === 'lg',\n 'dss-input-group--md': this._inputSize === 'md',\n 'dss-input-group--invalid': this._invalid || !this._inputValidity,\n 'dss-input-group--required': this._required,\n 'dss-input-group--disabled': this._disabled,\n 'dss-input-group--read-only': this._readonly,\n };\n const helpClass = {\n 'dss-datepicker-help--invalid': this._invalid || !this._inputValidity,\n 'dss-datepicker-help--disabled': this._disabled,\n };\n const calendarClass = {\n 'dss-calendar': true,\n 'dss-calendar--disabled': this._disabled,\n 'dss-calendar--md': this._inputSize === 'md',\n };\n return html `\n <div class=\"dss-datepicker\">\n <div\n class=\"dss-input-group dss-input-group--has-icon ${classMap(inputGroupClass)}\"\n role=\"combobox\"\n aria-controls=\"datepicker-calendar\"\n aria-expanded=${ifDefined(this._showCalendar)}\n >\n <span class=\"dss-icon dss-icon--md dss-input-icon\"\n >${this._icon}</span\n >\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @focusin=${this._handleFocus}\n @focusout=${this._handleBlur}\n @keydown=${this._handleKeyUp}\n ></slot>\n\n <slot name=\"label\" @click=${this._focusInput}></slot>\n </div>\n ${this._helpText\n ? html `\n <div class=\"dss-datepicker-help ${classMap(helpClass)}\">\n ${this._helpText}\n </div>\n `\n : null}\n ${this._showCalendar && !this._readonly\n ? html `\n <dss-calendar\n role=\"listbox\"\n aria-label=\"Datepicker Calendar\"\n id=\"datepicker-calendar\"\n class=\"${classMap(calendarClass)}\"\n .selectedDate=${(_b = this._input) === null || _b === void 0 ? void 0 : _b.value}\n .showTime=${this._showTime}\n .showButtons=${this._showButtons}\n .leftLabel=${this._leftLabel}\n .rightLabel=${this._rightLabel}\n .minDate=${this._minDate}\n .maxDate=${this._maxDate}\n timepickerLabel=${this._timepickerLabel}\n .timepicker=${this._timepicker}\n .customTimeListOptions=${this._customTimeListOptions}\n .minutesRange=${this._minutesRange}\n .minHour=${this._minHour}\n .maxHour=${this._maxHour}\n @onDateChange=${this._onDateChange}\n @onCancel=${this._onCancel}\n ></dss-calendar>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], Datepicker_.prototype, \"showTime\", null);\n__decorate([\n property({ type: Boolean })\n], Datepicker_.prototype, \"showButtons\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"leftLabel\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"rightLabel\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"minDate\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"maxDate\", null);\n__decorate([\n property({ type: Boolean })\n], Datepicker_.prototype, \"invalid\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"inputSize\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"helpText\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"timepicker\", null);\n__decorate([\n property({ type: Number })\n], Datepicker_.prototype, \"minutesRange\", null);\n__decorate([\n property({ type: Number })\n], Datepicker_.prototype, \"minHour\", null);\n__decorate([\n property({ type: Number })\n], Datepicker_.prototype, \"maxHour\", null);\n__decorate([\n property({ type: Array })\n], Datepicker_.prototype, \"customTimeListOptions\", null);\n__decorate([\n property({ type: String })\n], Datepicker_.prototype, \"timepickerLabel\", null);\nDatepicker_ = __decorate([\n customElement('dss-datepicker')\n], Datepicker_);\nexport { Datepicker_ };\n//# sourceMappingURL=datepicker.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nconst INPUT_TYPE_NUMBER = 'number';\nlet InputField = class InputField extends LitElement {\n constructor() {\n super(...arguments);\n this._type = 'text';\n this._value = '';\n this._label = '';\n this._description = '';\n this._placeHolder = '';\n this._icon = '';\n this._maxLength = undefined;\n this._minLength = undefined;\n this._max = undefined;\n this._min = undefined;\n this._step = undefined;\n this._isInputFocused = false;\n this._isGroupFocusedVisible = false;\n this._isTypeNumeric = false;\n this._clearable = false;\n this._showError = false;\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n }\n static get styles() {\n return css `\n :host {\n width: 100%;\n height: fit-content;\n }\n\n label {\n font-style: normal;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.5rem;\n cursor: text;\n position: absolute;\n white-space: nowrap;\n background-color: #ffffff;\n width: 100%;\n }\n\n input {\n outline: none;\n border: 0;\n font-size: 0.875rem;\n line-height: 1.5rem;\n font-style: normal;\n color: #1d1d1d;\n width: 100%;\n text-overflow: ellipsis;\n margin: 0;\n padding: 0;\n }\n\n input::placeholder {\n color: #9f9f9f;\n }\n\n .dss-input--invalid input::placeholder {\n color: #d36262;\n }\n\n .dss-input--invalid label {\n background-color: #fff6f6;\n }\n\n .dss-input {\n display: flex;\n flex-direction: column;\n color: #656565;\n width: 100%;\n }\n\n .dss-input--disabled {\n opacity: 0.6;\n }\n\n .dss-input--gap {\n gap: 0.25rem;\n }\n\n .dss-input__content {\n display: flex;\n align-items: center;\n flex: 1;\n overflow: hidden;\n position: relative;\n }\n\n .dss-input--disabled .dss-input__group,\n .dss-input--disabled input,\n .dss-input--disabled label {\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n .dss-input__group {\n position: relative;\n background: #ffffff;\n box-shadow: inset 0 0 0 0.063rem #d8d8d8;\n border-radius: 0.5rem;\n padding: 0.75rem;\n display: flex;\n gap: 0.5rem;\n }\n\n :host([small]) .dss-input__group {\n padding: 0.5rem 0.75rem;\n }\n\n .dss-input__group--required label::before {\n content: '*';\n }\n\n .dss-input__group--readOnly .dss-icon-button {\n pointer-events: none;\n }\n\n .dss-input__group:focus-visible,\n .dss-input__group--focused-visible,\n .dss-input--invalid .dss-input__group:focus-visible {\n outline: 0.25rem solid #8ec7e5;\n box-shadow: none;\n background-color: #ffffff;\n }\n\n .dss-input--invalid .dss-input__group:focus-visible input {\n background-color: #ffffff;\n }\n\n .dss-input--invalid .dss-input__group:focus-visible .dss-icon-button {\n background-color: transparent;\n }\n\n .dss-input__group--focused {\n padding: 0.25rem 0.75rem;\n }\n\n :host([small]) .dss-input__group--focused {\n padding: 0.063rem 0.75rem;\n }\n\n .dss-input__group--focused .dss-input__content label {\n font-size: 0.75rem;\n line-height: 1rem;\n transition: 0.3s;\n top: 0.25rem;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content label {\n top: 0.125rem;\n }\n\n .dss-input__group--focused .dss-input__content input,\n .dss-input__group--focused .dss-input__content input {\n margin-top: 1rem !important;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content input {\n margin-top: 0.875rem !important;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content input {\n margin-top: 0.875rem !important;\n }\n\n .dss-input--invalid .dss-input__group .dss-icon-button {\n color: #b60000;\n }\n\n .dss-input--invalid .dss-input__group {\n box-shadow: inset 0 0 0 0.063rem #b60000;\n }\n\n .dss-input--invalid .dss-input__group input {\n background-color: #fff6f6;\n color: #1d1d1d;\n }\n\n .dss-input--invalid .dss-input__group,\n .dss-input--invalid .dss-icon-button,\n .dss-input--invalid .dss-input__group .dss-icon-button:hover span {\n background-color: #fff6f6;\n color: #b60000;\n }\n\n .dss-input__help {\n font-style: normal;\n font-weight: 400;\n font-size: 0.75rem;\n line-height: 1rem;\n display: flex;\n padding: 0 0.75rem;\n gap: 0.5rem;\n }\n\n .dss-input__help .dss-input__description {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .dss-input--invalid .dss-input__help,\n .dss-input--invalid .dss-input__help::after {\n color: #b60000;\n }\n\n .dss-input__icon {\n font-family: 'Material Symbols Rounded';\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n }\n\n :host([small]) .dss-input__group.dss-input__group--icon,\n :host([small]) .dss-input__group--focused.dss-input__group--icon,\n .dss-input__group.dss-input__group--icon,\n .dss-input__group--focused.dss-input__group--icon {\n padding-right: 0.375rem;\n }\n\n .dss-input__group.dss-input__group--numeric {\n padding: 0.25rem 0.5rem 0.25rem 0.75rem;\n }\n\n :host([small]) .dss-input__group.dss-input__group--numeric {\n padding: 0.063rem 0.625rem 0.063rem 0.75rem;\n }\n\n .dss-icon-button {\n font-size: 1rem;\n font-family: 'Material Symbols Rounded';\n align-items: center;\n border: none;\n cursor: pointer;\n display: flex;\n background-color: transparent;\n color: #0073e6;\n padding: 0;\n height: fit-content;\n margin: auto;\n border-radius: 100%;\n }\n\n .dss-icon-button span {\n padding: 0.25rem;\n background-color: transparent;\n border-radius: 100%;\n transition: all 0.3s ease-in;\n }\n\n .dss-icon-button:hover:enabled span {\n background-color: #bfddfa;\n }\n\n .dss-icon-button:active:enabled span {\n background-color: #eff7ff;\n transition: none;\n }\n\n .dss-icon-button:disabled {\n cursor: not-allowed;\n }\n\n .dss-icon-button:focus-visible:enabled {\n outline: none;\n }\n\n .dss-input__numeric-buttons {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n transition: all 0.3s ease-in;\n height: 40px;\n }\n\n .dss-input__numeric-buttons .dss-icon-button span {\n padding: 0.063rem;\n display: flex;\n justify-content: center;\n text-align: center;\n width: 18px;\n height: 18px;\n align-items: center;\n }\n\n :host([small]) .dss-input__numeric-buttons {\n height: 38px;\n }\n\n :host([small])\n .dss-input__group.dss-input__group--numeric\n .dss-icon-button\n span {\n width: 16px;\n height: 16px;\n }\n\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n input[type='number'] {\n -moz-appearance: textfield;\n }\n `;\n }\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n set type(type) {\n const oldValue = this._type;\n this._type = type;\n this.requestUpdate('type', oldValue);\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n set description(description) {\n const oldValue = this._description;\n this._description = description;\n this.requestUpdate('description', oldValue);\n }\n set placeHolder(placeHolder) {\n const oldValue = this._placeHolder;\n this._placeHolder = placeHolder;\n this.requestUpdate('placeHolder', oldValue);\n }\n set required(required) {\n const oldValue = this._required;\n this._required = required;\n this.requestUpdate('required', oldValue);\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set readonly(readonly) {\n const oldValue = this._readonly;\n this._readonly = readonly;\n this.requestUpdate('readonly', oldValue);\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n set clearable(clearable) {\n const oldValue = this._clearable;\n this._clearable = clearable;\n this.requestUpdate('clearable', oldValue);\n }\n set showError(showError) {\n const oldValue = this._showError;\n this._showError = showError;\n this.requestUpdate('showError', oldValue);\n }\n set maxLength(maxLength) {\n const oldValue = this._maxLength;\n this._maxLength = maxLength;\n this.requestUpdate('maxLength', oldValue);\n }\n set minLength(minLength) {\n const oldValue = this._minLength;\n this._minLength = minLength;\n this.requestUpdate('minLength', oldValue);\n }\n set max(max) {\n const oldValue = this._max;\n this._max = max;\n this.requestUpdate('max', oldValue);\n }\n set min(min) {\n const oldValue = this._min;\n this._min = min;\n this.requestUpdate('min', oldValue);\n }\n set step(step) {\n const oldValue = this._step;\n this._step = step;\n this.requestUpdate('step', oldValue);\n }\n get _input() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n }\n _handleInput() {\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _handleKeypress(e) {\n if (e.keyCode < 32) {\n e.preventDefault();\n }\n if (this._maxLength && e.target.value.length >= this._maxLength) {\n e.preventDefault();\n }\n }\n _handleKeyup(e) {\n const code = e.keyCode ? e.keyCode : e.which;\n if (code === 9) {\n this._isGroupFocusedVisible = true;\n this._isInputFocused = true;\n this._handelLabelClick();\n }\n }\n _handleFocus() {\n if (this._readonly) {\n return;\n }\n this._isGroupFocusedVisible = true;\n this._isInputFocused = true;\n this.requestUpdate();\n }\n _handleFocusOut() {\n var _a, _b;\n this._handleBlur();\n this._isGroupFocusedVisible = false;\n this._isInputFocused = false;\n if (((_b = (_a = this._input) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.length) === 0) {\n this._value = '';\n this._input.value = this._value;\n }\n this.requestUpdate();\n }\n _handleBlur() {\n this._isInputFocused = false;\n this.requestUpdate();\n }\n _handelLabelClick() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this.requestUpdate();\n }\n _cleanInput() {\n var _a, _b;\n if ((_b = (_a = this._input) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.length) {\n this._value = '';\n this._input.value = this._value;\n }\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _stepUp() {\n var _a, _b;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.stepUp();\n this._value = ((_b = this._input) === null || _b === void 0 ? void 0 : _b.value) || '';\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _stepDown() {\n var _a, _b;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.stepDown();\n this._value = ((_b = this._input) === null || _b === void 0 ? void 0 : _b.value) || '';\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _dispatchValueChange() {\n var _a, _b;\n const options = {\n detail: this._isTypeNumeric\n ? Number((_a = this._input) === null || _a === void 0 ? void 0 : _a.value)\n : (_b = this._input) === null || _b === void 0 ? void 0 : _b.value,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._isTypeNumeric = this._type === INPUT_TYPE_NUMBER;\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n render() {\n var _a, _b, _c, _d, _e, _f;\n const containerClass = {\n 'dss-input--invalid': this._showError,\n 'dss-input--disabled': this._disabled,\n 'dss-input--gap': this._maxLength || !!this._description,\n };\n const cssClass = {\n 'dss-input__group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) || this._isInputFocused || this._placeHolder,\n 'dss-input__group--focused-visible': this._isGroupFocusedVisible,\n 'dss-input__group--required': this._required,\n 'dss-input__group--readOnly': this._readonly,\n 'dss-input__group--numeric': this._isTypeNumeric,\n 'dss-input__group--icon': this._clearable,\n };\n return html `\n <div class=\"dss-input ${classMap(containerClass)}\">\n <div\n class=\"dss-input__group ${classMap(cssClass)}\"\n tabindex=\"0\"\n @keyup=${this._handleKeyup}\n >\n ${this._icon\n ? html `<span class=\"dss-input__icon\">${this._icon}</span>`\n : null}\n <div class=\"dss-input__content\">\n <label @mouseup=${this._handelLabelClick}>${this._label}</label>\n <input\n .value=${this._value}\n placeholder=${ifDefined(this._placeHolder)}\n maxlength=${ifDefined(this._maxLength)}\n minlength=${ifDefined(this._minLength)}\n min=${ifDefined(this._min)}\n max=${ifDefined(this._max)}\n step=${ifDefined(this._step)}\n ?disabled=${this._disabled}\n ?required=${this._required}\n ?readonly=${this._readonly}\n @keyup=${this._handleKeyup}\n @keypress=${this._handleKeypress}\n @input=\"${this._handleInput}\"\n @focus=${this._handleFocus}\n @focusout=${this._handleFocusOut}\n @blur=${this._handleBlur}\n .type=${this._type}\n />\n </div>\n ${this._clearable && !this._isTypeNumeric\n ? html `\n <button\n type=\"button\"\n class=\"dss-icon-button\"\n @click=${this._cleanInput}\n ?disabled=${(_b = this._input) === null || _b === void 0 ? void 0 : _b.disabled}\n tabindex=\"-1\"\n >\n <span>close</span>\n </button>\n `\n : null}\n ${this._isTypeNumeric\n ? html `\n <div class=\"dss-input__numeric-buttons\">\n <button\n type=\"button\"\n class=\"dss-icon-button\"\n @click=${this._stepUp}\n ?disabled=${(_c = this._input) === null || _c === void 0 ? void 0 : _c.disabled}\n tabindex=\"-1\"\n >\n <span>keyboard_arrow_up</span>\n </button>\n <button\n type=\"button\"\n class=\"dss-icon-button\"\n @click=${this._stepDown}\n ?disabled=${(_d = this._input) === null || _d === void 0 ? void 0 : _d.disabled}\n tabindex=\"-1\"\n >\n <span>keyboard_arrow_down</span>\n </button>\n </div>\n `\n : null}\n </div>\n <div class=\"dss-input__help\">\n <div class=\"dss-input__description\">\n <span>${this._description}</span>\n </div>\n ${this._maxLength\n ? html `<span>\n ${(_f = (_e = this._input) === null || _e === void 0 ? void 0 : _e.value) === null || _f === void 0 ? void 0 : _f.length}/${this._maxLength}\n </span>`\n : null}\n </div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], InputField.prototype, \"value\", null);\n__decorate([\n property({ type: String })\n], InputField.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], InputField.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], InputField.prototype, \"description\", null);\n__decorate([\n property({ type: String })\n], InputField.prototype, \"placeHolder\", null);\n__decorate([\n property({ type: Boolean })\n], InputField.prototype, \"required\", null);\n__decorate([\n property({ type: Boolean })\n], InputField.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], InputField.prototype, \"readonly\", null);\n__decorate([\n property({ type: String })\n], InputField.prototype, \"icon\", null);\n__decorate([\n property({ type: Boolean })\n], InputField.prototype, \"clearable\", null);\n__decorate([\n property({ type: Boolean })\n], InputField.prototype, \"showError\", null);\n__decorate([\n property({ type: Number })\n], InputField.prototype, \"maxLength\", null);\n__decorate([\n property({ type: Number })\n], InputField.prototype, \"minLength\", null);\n__decorate([\n property({ type: Number })\n], InputField.prototype, \"max\", null);\n__decorate([\n property({ type: Number })\n], InputField.prototype, \"min\", null);\n__decorate([\n property({ type: Number })\n], InputField.prototype, \"step\", null);\nInputField = __decorate([\n customElement('dss-input-field')\n], InputField);\nexport { InputField };\n//# sourceMappingURL=input-field.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nlet Pagination = class Pagination extends LitElement {\n constructor() {\n super(...arguments);\n this._length = 0;\n this._pageSize = 0;\n this._totalPages = 0;\n this._currentIndex = 1;\n this._size = 'md';\n this._buttons = [];\n }\n static get styles() {\n return css `\n :host {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n height: fit-content;\n font-family: var(--font-family);\n font-style: normal;\n box-shadow: 0 -1px 0 0 #d8d8d8;\n }\n\n .pagination__container {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n gap: 0.5rem;\n }\n\n .pagination__container--md {\n padding: 0.25rem 0.75rem;\n }\n\n .pagination__container--lg {\n padding: 0.5rem 0.75rem;\n }\n\n .pagination__button {\n color: #0073e6;\n font-size: 1rem;\n padding: 0;\n align-items: center;\n background-color: transparent;\n border: none;\n border-radius: 100%;\n cursor: pointer;\n display: flex;\n height: fit-content;\n justify-content: center;\n transition: all 0.3s ease-in;\n width: fit-content;\n font-family: 'Material Symbols Rounded';\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .pagination__container--md .pagination__button {\n font-size: 1rem;\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .pagination__container--lg .pagination__button {\n font-size: 1.5rem;\n width: 2rem;\n height: 2rem;\n }\n\n .pagination__button:hover:enabled {\n background-color: #bfddfa;\n }\n\n .pagination__button:focus-visible:enabled {\n outline: 0.25rem solid #8fc2f5;\n transition: none;\n }\n\n .pagination__button:active:enabled {\n background-color: #eff7ff;\n transition: none;\n }\n\n .pagination__button:disabled {\n transition: none;\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .pagination__item {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: transparent;\n border-radius: 6.25rem;\n border: none;\n cursor: pointer;\n font-weight: 600;\n color: #656565;\n font-family: var(--font-family);\n height: 1.5rem;\n width: 1.5rem;\n font-size: 0.75rem;\n line-height: 1rem;\n }\n\n .pagination__container--md .pagination__item {\n height: 1.5rem;\n width: 1.5rem;\n font-size: 0.75rem;\n line-height: 1rem;\n }\n\n .pagination__container--lg .pagination__item {\n height: 2rem;\n width: 2rem;\n font-size: 1rem;\n line-height: 1.5rem;\n }\n\n .pagination__container--md .pagination__item--large {\n width: 2rem;\n }\n\n .pagination__container--lg .pagination__item--large {\n width: 2.563rem;\n }\n\n .pagination__item:hover:enabled,\n .pagination__item--selected {\n background: #bfddfa;\n color: #00356a;\n }\n\n .pagination__item:hover:enabled {\n transition: all 0.3s ease-in;\n }\n\n .pagination__item:active:enabled {\n background: #eff7ff;\n transition: none;\n }\n\n .pagination__item:focus-visible:enabled {\n outline: 0.25rem solid #8fc2f5;\n transition: none;\n }\n\n .pagination__item--dot {\n pointer-events: none;\n }\n `;\n }\n set length(length) {\n const oldValue = this._length;\n this._length = length;\n this.requestUpdate('length', oldValue);\n }\n set pageSize(pageSize) {\n const oldValue = this._pageSize;\n this._pageSize = pageSize;\n this.requestUpdate('pageSize', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n set currentIndex(currentIndex) {\n const oldValue = this._currentIndex;\n this._currentIndex = currentIndex;\n this.requestUpdate('currentIndex', oldValue);\n }\n _next() {\n // eslint-disable-next-line no-plusplus\n this._currentIndex++;\n this._updateButtons();\n this._emitCurrentPage();\n }\n _prev() {\n // eslint-disable-next-line no-plusplus\n this._currentIndex--;\n this._updateButtons();\n this._emitCurrentPage();\n }\n _emitCurrentPage() {\n this.dispatchEvent(new CustomEvent('onChangePage', {\n detail: this._currentIndex,\n bubbles: true,\n composed: true,\n }));\n }\n _updateButtons() {\n this._buttons = [];\n const firstPageIndex = 1;\n const leftSiblingIndex = Math.max(this._currentIndex - 1, 1);\n const rightSiblingIndex = Math.min(this._currentIndex + 1, this._totalPages);\n const shouldShowLeftDots = leftSiblingIndex > 2;\n const shouldShowRightDots = rightSiblingIndex < this._totalPages - 2;\n const firstPage = this._getButtons(firstPageIndex, firstPageIndex);\n const lastPage = this._getButtons(this._totalPages, this._totalPages);\n const DOTS = html `\n <button class=\"pagination__item pagination__item--dot\" tabindex=\"-1\">\n ...\n </button>\n `;\n if (this._totalPages <= 6) {\n this._buttons = this._getButtons(firstPageIndex, this._totalPages);\n this.requestUpdate();\n return;\n }\n if (!shouldShowLeftDots && shouldShowRightDots) {\n const leftItemCount = 4;\n const leftRange = this._getButtons(firstPageIndex, leftItemCount);\n this._buttons = [...leftRange, DOTS, lastPage];\n }\n if (shouldShowLeftDots && !shouldShowRightDots) {\n const rightItemCount = 3;\n const rightRange = this._getButtons(this._totalPages - rightItemCount, this._totalPages);\n this._buttons = [firstPage, DOTS, ...rightRange];\n }\n if (shouldShowLeftDots && shouldShowRightDots) {\n const middleRange = this._getButtons(leftSiblingIndex + 1, rightSiblingIndex);\n this._buttons = [firstPage, DOTS, ...middleRange, DOTS, lastPage];\n }\n this.requestUpdate();\n }\n _getButtons(startIndex, endIndex) {\n const length = endIndex - startIndex + 1;\n return Array(length)\n .fill(0)\n .map((x, i) => {\n const index = i + startIndex;\n const cssClass = {\n 'pagination__item--selected': this._currentIndex === index,\n 'pagination__item--large': index >= 10,\n };\n return html `\n <button\n class=\"pagination__item ${classMap(cssClass)}\"\n @click=${() => this._selectItem(index)}\n >\n ${index}\n </button>\n `;\n });\n }\n _selectItem(pageIndex) {\n this._currentIndex = pageIndex;\n this._updateButtons();\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._totalPages = Math.ceil(this._length / this._pageSize);\n this._updateButtons();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n willUpdate(changedProperties) {\n const length = changedProperties.has('length');\n const pageSize = changedProperties.has('pageSize');\n if (length || pageSize) {\n this._totalPages = Math.ceil(this._length / this._pageSize);\n // this._currentIndex = 1; // Remove to be able to set currentIndex from attributes\n this._updateButtons();\n }\n }\n render() {\n return html `\n <div class=\"pagination__container pagination__container--${this._size}\">\n <button\n type=\"button\"\n class=\"pagination__button\"\n @click=${this._prev}\n ?disabled=${+this._currentIndex === 1}\n >\n <span>keyboard_arrow_left</span>\n </button>\n ${this._buttons}\n <button\n type=\"button\"\n class=\"pagination__button\"\n @click=${this._next}\n ?disabled=${+this._currentIndex === this._totalPages}\n >\n <span>keyboard_arrow_right</span>\n </button>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Number })\n], Pagination.prototype, \"length\", null);\n__decorate([\n property({ type: Number })\n], Pagination.prototype, \"pageSize\", null);\n__decorate([\n property({ type: String })\n], Pagination.prototype, \"size\", null);\n__decorate([\n property({ type: Number })\n], Pagination.prototype, \"currentIndex\", null);\nPagination = __decorate([\n customElement('dss-pagination')\n], Pagination);\nexport { Pagination };\n//# sourceMappingURL=pagination.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nlet Slider = class Slider extends LitElement {\n constructor() {\n super(...arguments);\n this._label = 'Input range';\n this._min = 0;\n this._max = 0;\n this._step = 1;\n this._orient = 'horizontal';\n this._vertical = false;\n this._value = 0;\n this._progress = 0;\n this._disabled = false;\n }\n static get styles() {\n return css `\n .dss-slider {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n cursor: pointer;\n outline: none;\n border-radius: 3px;\n height: 4px;\n background: linear-gradient(\n to right,\n var(--color-primary-500) var(--progress),\n var(--color-neutral-100) var(--progress)\n );\n }\n\n .dss-slider--vertical {\n transform: rotate(-90deg);\n transform-origin: center center;\n }\n\n .dss-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n height: 20px;\n width: 20px;\n background-color: var(--color-primary-500);\n border-radius: 50%;\n border: var(--dss-border-width-md) solid var(--color-white);\n transition: 0.3s ease-in-out;\n box-sizing: border-box;\n }\n\n .dss-slider::-moz-range-thumb {\n -webkit-appearance: none;\n appearance: none;\n height: 20px;\n width: 20px;\n background-color: var(--color-primary-500);\n border-radius: 50%;\n border: var(--dss-border-width-md) solid var(--color-white);\n transition: 0.3s ease-in-out;\n box-sizing: border-box;\n }\n\n .dss-slider::-webkit-slider-thumb:hover {\n background-color: var(--color-primary-600);\n transition: all 0.3s linear;\n }\n\n .dss-slider::-moz-range-thumb:hover {\n background-color: var(--color-primary-600);\n transition: all 0.3s linear;\n }\n\n .dss-slider:active::-webkit-slider-thumb {\n background-color: var(--color-primary-400);\n transition: none;\n }\n\n .dss-slider:active::-moz-range-thumb {\n background-color: var(--color-primary-400);\n transition: none;\n }\n\n .dss-slider:focus-visible::-webkit-slider-thumb {\n background-color: var(--color-primary-500);\n border-color: var(--color-blue-200);\n outline: 2px solid var(--color-blue-200);\n transition: none;\n }\n\n .dss-slider:focus-visible::-moz-range-thumb {\n background-color: var(--color-primary-500);\n border-color: var(--color-blue-200);\n outline: 2px solid var(--color-blue-200);\n transition: none;\n }\n\n .dss-slider:disabled {\n cursor: not-allowed;\n background: linear-gradient(\n to right,\n var(--color-neutral-400) var(--progress),\n var(--color-neutral-100) var(--progress)\n );\n }\n\n .dss-slider:disabled::-webkit-slider-thumb {\n background-color: var(--color-neutral-500);\n transition: none;\n }\n\n .dss-slider:disabled::-moz-range-thumb {\n background-color: var(--color-neutral-500);\n transition: none;\n }\n\n .dss-slider:disabled + .dss-slider-tooltip {\n display: none !important;\n }\n\n .dss-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n height: 20px;\n width: 20px;\n background-color: var(--color-primary-500);\n border-radius: 50%;\n border: var(--dss-border-width-md) solid var(--color-white);\n transition: 0.3s ease-in-out;\n box-sizing: border-box;\n }\n\n .dss-slider:hover + .dss-slider-tooltip {\n display: block;\n }\n\n .dss-slider:focus-visible + .dss-slider-tooltip {\n display: block;\n }\n\n .dss-slider-wrapper {\n min-width: 200px;\n width: 100%;\n position: relative;\n }\n\n .dss-slider-tooltip {\n display: none;\n position: absolute;\n top: -50%;\n }\n\n .dss-slider-tooltip .tooltip-wrapper {\n width: var(--dss-spacing-hg);\n height: var(--dss-spacing-hg);\n line-height: 24px;\n text-align: center;\n background: var(--color-black);\n color: var(--color-white);\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: -45px;\n left: calc(50% + 1px);\n transform: translate(-50%, 0);\n border-radius: var(--dss-radius-sm);\n box-shadow: 0 4px 8px 3px rgba(0, 0, 0, 0.05),\n 0 1px 3px rgba(0, 0, 0, 0.1);\n }\n\n .dss-slider-tooltip .tooltip-wrapper:before {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n border-top: 24px solid var(--color-black);\n border-left: 24px solid transparent;\n border-right: 24px solid transparent;\n top: 100%;\n left: 50%;\n margin-left: -24px;\n margin-top: -15px;\n }\n\n .dss-slider-info {\n position: absolute;\n top: calc(100% + 6px);\n font-size: 12px;\n line-height: 16px;\n color: var(--color-neutral-700);\n }\n\n .dss-slider-info--min {\n left: 0;\n }\n\n .dss-slider-info--medium {\n left: calc(50% - 5px);\n }\n\n .dss-slider-info--max {\n right: 0;\n }\n\n .dss-slider--vertical > .dss-slider-tooltip .tooltip-value {\n transform: rotate(90deg);\n }\n\n .dss-slider--vertical > .dss-slider-info {\n transform: rotate(90deg);\n transform-origin: center center;\n margin-right: -10px;\n }\n `;\n }\n get _input() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n }\n get _tooltip() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(`#dss-slider-tooltip`);\n }\n set min(min) {\n const oldValue = this._min;\n this._min = min;\n this.requestUpdate('min', oldValue);\n }\n set max(max) {\n const oldValue = this._max;\n if (max >= this._value) {\n this._max = max;\n this._setProgress();\n this.requestUpdate('max', oldValue);\n }\n }\n set step(step) {\n const oldValue = this._step;\n this._step = step;\n this.requestUpdate('step', oldValue);\n }\n set orient(orient) {\n const oldValue = this._orient;\n this._orient = orient;\n if (orient === 'vertical') {\n this._vertical = true;\n }\n else {\n this._vertical = false;\n }\n this.requestUpdate('orient', oldValue);\n }\n set value(value) {\n const oldValue = this._value;\n if (this._max >= value) {\n this._value = value;\n this._setProgress();\n this.requestUpdate('value', oldValue);\n }\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n // private _bubble = this.renderRoot.querySelector('#dssSliderValue')\n render() {\n var _a;\n const orientClass = {\n 'dss-slider--vertical': this._vertical,\n };\n return html `\n <div class=\"dss-slider-wrapper ${classMap(orientClass)}\">\n <input\n id=\"dss-slider-input\"\n aria-label=\"${this._label}\"\n type=\"range\"\n class=\"dss-slider\"\n min=${this._min}\n max=${this._max}\n .value=${(_a = this._value) === null || _a === void 0 ? void 0 : _a.toString()}\n step=${this._step}\n direction=\"${this._orient}\"\n @input=\"${this._handleInput}\"\n style=\"--progress: ${`${this._progress}%`}\"\n ?disabled=\"${this._disabled}\"\n />\n <div class=\"dss-slider-tooltip\" id=\"dss-slider-tooltip\"></div>\n <div class=\"dss-slider-info dss-slider-info--min\">${this._min}</div>\n <div class=\"dss-slider-info dss-slider-info--medium\">\n ${Math.round((this._max + this._min) / 2)}\n </div>\n <div class=\"dss-slider-info dss-slider-info--max\">${this._max}</div>\n <div></div>\n </div>\n `;\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._setProgress();\n this.requestUpdate();\n document.addEventListener('DOMContentLoaded', this._updateTooltip.bind(this));\n this._input.addEventListener('input', this._updateTooltip.bind(this));\n this._input.addEventListener('mouseup', this._onMouseUp.bind(this)); // Return new input value after dragging\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _handleInput() {\n if (this._input) {\n const tempValue = parseFloat(this._input.value);\n this._progress = Math.round(((tempValue - this._min) / (this._max - this._min)) * 100);\n this.requestUpdate();\n }\n }\n _setProgress() {\n if (this._input) {\n this._input.value = this._value.toString();\n }\n this._progress = Math.round(((this._value - this._min) / (this._max - this._min)) * 100);\n this.requestUpdate();\n }\n _updateTooltip() {\n if (this._tooltip) {\n const newValue = Number(((+this._input.value - +this._min) * 100) / (+this._max - +this._min));\n const newPosition = 10 - newValue * 0.2;\n this._tooltip.innerHTML = `<span class=\"tooltip-wrapper\"><span class=\"tooltip-value\">${this._input.value}</span></span>`;\n this._tooltip.style.left = `calc(${newValue}% + (${newPosition}px))`;\n }\n }\n _onMouseUp() {\n const onDssSliderValueChange = new CustomEvent('onDssSliderValueChange', {\n detail: this._input.value,\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(onDssSliderValueChange);\n }\n};\n__decorate([\n property({ type: Number })\n], Slider.prototype, \"min\", null);\n__decorate([\n property({ type: Number })\n], Slider.prototype, \"max\", null);\n__decorate([\n property({ type: Number })\n], Slider.prototype, \"step\", null);\n__decorate([\n property({ type: String })\n], Slider.prototype, \"orient\", null);\n__decorate([\n property({ type: Number })\n], Slider.prototype, \"value\", null);\n__decorate([\n property({ type: Boolean })\n], Slider.prototype, \"disabled\", null);\n__decorate([\n property({ type: String })\n], Slider.prototype, \"label\", null);\nSlider = __decorate([\n customElement('dss-slider')\n], Slider);\nexport { Slider };\n//# sourceMappingURL=slider.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nlet Spinner = class Spinner extends LitElement {\n constructor() {\n super(...arguments);\n this._size = 'md';\n }\n static get styles() {\n return css `\n :host {\n display: inline-block;\n width: fit-content;\n height: fit-content;\n }\n\n .dss-spinner {\n width: 48px;\n height: 48px;\n animation: rotate-animation 1s linear infinite;\n position: relative;\n }\n\n .dss-spinner__item {\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n position: absolute;\n transform: rotate(-90deg);\n }\n\n .dss-spinner__item:nth-child(1) circle {\n stroke: #eff7ff;\n stroke-dasharray: 1, 300;\n stroke-dashoffset: 0;\n animation: stroke-animation 4s calc(0.2s * (1)) ease infinite;\n transform-origin: center center;\n }\n\n .dss-spinner__item:nth-child(2) circle {\n stroke: #bfddfa;\n stroke-dasharray: 1, 300;\n stroke-dashoffset: 0;\n animation: stroke-animation 4s calc(0.2s * (2)) ease infinite;\n transform-origin: center center;\n }\n\n .dss-spinner__item:nth-child(3) circle {\n stroke: #60a8f0;\n stroke-dasharray: 1, 300;\n stroke-dashoffset: 0;\n animation: stroke-animation 4s calc(0.2s * (3)) ease infinite;\n transform-origin: center center;\n }\n\n .dss-spinner__item:nth-child(4) circle {\n stroke: #0073e6;\n stroke-dasharray: 1, 300;\n stroke-dashoffset: 0;\n animation: stroke-animation 4s calc(0.2s * (4)) ease infinite;\n transform-origin: center center;\n }\n\n .dss-spinner__item circle {\n fill: none;\n stroke-linecap: round;\n stroke-width: 8px;\n }\n\n .dss-spinner.dss-spinner--sm {\n width: 24px;\n height: 24px;\n }\n\n .dss-spinner.dss-spinner--md {\n width: 48px;\n height: 48px;\n }\n .dss-spinner.dss-spinner--lg {\n width: 72px;\n height: 72px;\n }\n\n @keyframes stroke-animation {\n 0% {\n stroke-dasharray: 1, 300;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 120, 300;\n stroke-dashoffset: -59;\n }\n 100% {\n stroke-dasharray: 120, 300;\n stroke-dashoffset: -175;\n }\n }\n @keyframes rotate-animation {\n 100% {\n transform: rotate(360deg);\n }\n }\n `;\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n render() {\n return html `\n <div class=\"dss-spinner dss-spinner--${this._size}\">\n <svg\n viewBox=\"0 0 66 66\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"dss-spinner__item\"\n >\n <circle cx=\"33\" cy=\"33\" r=\"28\"></circle>\n </svg>\n <svg\n viewBox=\"0 0 66 66\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"dss-spinner__item\"\n >\n <circle cx=\"33\" cy=\"33\" r=\"28\"></circle>\n </svg>\n <svg\n viewBox=\"0 0 66 66\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"dss-spinner__item\"\n >\n <circle cx=\"33\" cy=\"33\" r=\"28\"></circle>\n </svg>\n <svg\n viewBox=\"0 0 66 66\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"dss-spinner__item\"\n >\n <circle cx=\"33\" cy=\"33\" r=\"28\"></circle>\n </svg>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Spinner.prototype, \"size\", null);\nSpinner = __decorate([\n customElement('dss-spinner')\n], Spinner);\nexport { Spinner };\n//# sourceMappingURL=spinner.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nlet Switch = class Switch extends LitElement {\n constructor() {\n super(...arguments);\n this._checked = false;\n this._disabled = false;\n this._label = null;\n this._size = 'md';\n }\n static get styles() {\n return css `\n :host {\n display: flex;\n width: fit-content;\n height: fit-content;\n gap: 0.5rem;\n align-items: center;\n }\n\n .dss-switch input[type='checkbox'] {\n opacity: 0;\n }\n\n .dss-switch {\n position: relative;\n display: flex;\n transition: 0.3s all ease-in;\n }\n\n .dss-switch .dss-switch__slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #656565;\n border-radius: 100px;\n transition: 0.3s all ease-in;\n }\n\n .dss-switch .dss-switch__slider:before {\n position: absolute;\n background-color: white;\n border-radius: 100%;\n content: '';\n box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05),\n 0px 1px 3px 1px rgba(0, 0, 0, 0.1);\n transition: 0.3s all ease-in;\n }\n\n .dss-switch input[type='checkbox']:hover:enabled + .dss-switch__slider {\n background-color: #535353;\n }\n\n .dss-switch input[type='checkbox']:enabled + .dss-switch__slider:active {\n background-color: #828282;\n transition: none;\n }\n\n .dss-switch input[type='checkbox']:checked + .dss-switch__slider {\n background-color: #0073e6;\n }\n\n .dss-switch\n input[type='checkbox']:checked:hover:enabled\n + .dss-switch__slider {\n background-color: #0064c7;\n }\n\n .dss-switch\n input[type='checkbox']:checked:enabled\n + .dss-switch__slider:active {\n background-color: #308deb;\n transition: none;\n }\n\n .dss-switch\n input[type='checkbox']:checked:enabled\n + .dss-switch__slider:active:before {\n color: #308deb;\n transition: none;\n }\n\n .dss-switch\n input[type='checkbox']:enabled\n + .dss-switch__slider:active:before {\n color: #828282;\n transition: none;\n }\n\n .dss-switch input[type='checkbox']:disabled + .dss-switch__slider {\n cursor: not-allowed;\n }\n\n .dss-switch input[type='checkbox']:disabled + .dss-switch__slider:before {\n color: #828282 !important;\n }\n\n .dss-switch\n input[type='checkbox']:checked:disabled\n + .dss-switch__slider {\n background-color: #308deb;\n }\n\n .dss-switch\n input[type='checkbox']:checked:disabled\n + .dss-switch__slider:before {\n color: #308deb !important;\n }\n\n .dss-switch input[type='checkbox']:focus {\n outline: none;\n transition: none;\n }\n\n .dss-switch\n input[type='checkbox']:focus-visible:enabled\n + .dss-switch__slider {\n outline: 4px solid #8ec7e5;\n transition: none;\n }\n\n .dss-switch.dss-switch--lg {\n width: 52px;\n height: 32px;\n }\n\n .dss-switch.dss-switch--lg .dss-switch__slider:before {\n font-family: 'Material Symbols Rounded';\n content: 'close';\n color: var(--color-primary-500);\n font-size: 16px;\n height: 24px;\n width: 24px;\n left: 4px;\n bottom: 4px;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .dss-switch.dss-switch--lg\n input[type='checkbox']:checked\n + .dss-switch__slider:before {\n -webkit-transform: translateX(20px);\n -ms-transform: translateX(20px);\n transform: translateX(20px);\n content: 'done';\n color: var(--color-primary-500);\n }\n\n .dss-switch.dss-switch--md {\n width: 39px;\n height: 24px;\n }\n\n .dss-switch.dss-switch--md .dss-switch__slider:before {\n height: 18px;\n width: 18px;\n left: 3px;\n bottom: 3px;\n }\n\n .dss-switch.dss-switch--md\n input[type='checkbox']:checked\n + .dss-switch__slider:before {\n -webkit-transform: translateX(15px);\n -ms-transform: translateX(15px);\n transform: translateX(15px);\n }\n\n .dss-switch.dss-switch--sm {\n width: 26px;\n height: 16px;\n }\n\n .dss-switch.dss-switch--sm .dss-switch__slider:before {\n height: 12px;\n width: 12px;\n left: 2px;\n bottom: 2px;\n }\n\n .dss-switch.dss-switch--sm\n input[type='checkbox']:checked\n + .dss-switch__slider:before {\n -webkit-transform: translateX(10px);\n -ms-transform: translateX(10px);\n transform: translateX(10px);\n }\n\n .dss-switch__label {\n font-family: var(--font-family);\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n color: #1d1d1d;\n }\n\n .dss-switch.dss-switch--lg + .dss-switch__label {\n font-weight: 600;\n font-size: 16px;\n }\n\n .dss-switch--disabled .dss-switch__slider {\n background-color: var(--color-neutral-200);\n }\n\n .dss-switch\n input[type='checkbox']:checked:disabled\n + .dss-switch__slider {\n background-color: var(--color-neutral-200);\n }\n\n .dss-switch\n input[type='checkbox']:checked:disabled\n + .dss-switch__slider::before {\n background-color: var(--color-neutral-400);\n color: var(--color-neutral-900) !important;\n }\n\n .dss-switch.dss-switch--lg\n input[type='checkbox']:checked:disabled\n + .dss-switch__slider::before {\n background-color: var(--color-neutral-100);\n }\n\n .dss-switch\n input[type='checkbox']:not(:checked):disabled\n + .dss-switch__slider::before {\n background-color: var(--color-neutral-400);\n color: var(--color-neutral-100) !important;\n }\n `;\n }\n set checked(checked) {\n const oldValue = this._checked;\n this._checked = checked;\n this.requestUpdate('checked', oldValue);\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n handleClick() {\n this._checked = !this._checked;\n this.dispatchEvent(new CustomEvent('onChangeValue', {\n detail: this._checked,\n bubbles: true,\n composed: true,\n }));\n }\n render() {\n const switchCssClassmap = {\n 'dss-switch--sm': this._size === 'sm',\n 'dss-switch--md': this._size === 'md',\n 'dss-switch--lg': this._size === 'lg',\n 'dss-switch--disabled': this._disabled,\n };\n return html `\n <label class=\"dss-switch ${classMap(switchCssClassmap)}\">\n <input\n type=\"checkbox\"\n ?checked=\"${this._checked}\"\n ?disabled=\"${this._disabled}\"\n @click=\"${this.handleClick}\"\n />\n <div class=\"dss-switch__slider\"></div>\n </label>\n ${this._label\n ? html `<span class=\"dss-switch__label\">${this._label}</span>`\n : null}\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], Switch.prototype, \"checked\", null);\n__decorate([\n property({ type: Boolean })\n], Switch.prototype, \"disabled\", null);\n__decorate([\n property({ type: String })\n], Switch.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], Switch.prototype, \"size\", null);\nSwitch = __decorate([\n customElement('dss-switch')\n], Switch);\nexport { Switch };\n//# sourceMappingURL=switch.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nconst booleanType = {\n type: Boolean,\n converter: {\n fromAttribute: value => value !== 'false',\n toAttribute: value => (value ? '' : undefined),\n },\n};\nconst selectedType = {\n type: Array,\n converter: {\n fromAttribute: value => {\n if (!value)\n return [];\n const val = JSON.parse(value);\n return Array.isArray(val) ? val.map(v => v.toString()) : [val.toString()];\n },\n toAttribute: value => JSON.stringify(value),\n },\n};\nlet Selector = class Selector extends LitElement {\n constructor() {\n super(...arguments);\n this._elementId = `dss-selector-${new Date().getTime()}`;\n this._elements = null;\n this._elementSelectAll = [];\n this._selectedValue = null;\n this._multiple = false;\n this._deselectable = false;\n this._disabled = false;\n this._tick = true;\n this._type = 'default';\n this._style = null;\n this._filtre = null;\n this._labelSelectAll = 'Seleccionar-ho tot';\n this._labelDeselectAll = 'Deseleccionar-ho tot';\n this._selectAll = false;\n this._isAllSelected = false;\n this._elementsSelected = 0;\n this._emptySelectorLabel = 'Sense resultats per';\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n .dss-icon--checked::before {\n content: 'done';\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n color: var(--color-white);\n font-size: 24px;\n vertical-align: middle;\n }\n\n .dss-type--default.dss-selected {\n background-color: var(--color-primary-500);\n }\n\n .dss-type--green.dss-selected {\n background-color: var(--color-green-500);\n }\n\n .dss-selected label {\n color: var(--color-white) !important;\n }\n\n .list {\n width: auto;\n border-radius: 8px;\n margin-top: 8px;\n background-color: #ffffff;\n color: var(--color-neutral-900);\n /** add shadow */\n box-shadow: 0 0 0 0.063rem #d8d8d8, 0 0 0 0.063rem #d8d8d8;\n }\n\n .list .dss-form-field:first-child {\n border-radius: 8px 8px 0 0;\n }\n\n .list .dss-form-field:last-child {\n border-radius: 0 0 8px 8px;\n }\n\n .list * {\n cursor: pointer;\n }\n\n .list .disabled,\n .list .disabled * {\n cursor: inherit !important;\n color: var(--color-neutral-500);\n }\n\n .dss-disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .hidden {\n opacity: 0;\n position: absolute;\n }\n\n .dss-checkbox,\n .dss-table .dss-table__checkbox {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: 0.0625rem solid var(--color-neutral-500);\n border-radius: 0.125rem;\n cursor: pointer;\n flex-shrink: 0;\n height: 1.25rem !important;\n margin: 0.125rem;\n overflow: hidden;\n position: relative;\n transition: all 0.3s linear;\n width: 1.25rem !important;\n }\n\n .dss-checkbox:hover {\n border: 0.0625rem solid var(--color-neutral-600);\n transition: all 0.3s linear;\n }\n\n .dss-checkbox:checked {\n background-color: var(--color-primary-500);\n border: 0.0625rem solid var(--color-primary-500);\n }\n\n .dss-checkbox:checked:before {\n position: absolute;\n top: -4px;\n left: -2px;\n color: var(--color-white);\n content: 'check';\n font-family: Material Symbols Rounded;\n font-size: 1.375rem;\n text-align: center;\n }\n\n .dss-checkbox:checked:hover {\n background-color: var(--color-primary-600);\n border: 0.0625rem solid var(--color-primary-600);\n transition: all 0.3s linear;\n }\n\n .dss-checkbox:indeterminate:before {\n color: var(--color-white);\n content: 'remove';\n font-family: Material Symbols Rounded;\n font-size: 1.125rem;\n }\n\n .dss-checkbox:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .dss-form-field__focus {\n outline: 0.25rem solid var(--color-blue-200);\n outline-offset: -4px;\n transition: none;\n }\n\n .dss-radio:focus-visible:enabled,\n .dss-checkbox:focus-visible:enabled {\n outline: none;\n }\n\n .dss-radio,\n .dss-table .dss-table__radio {\n -webkit-appearance: none;\n appearance: none;\n background-color: var(--color-white);\n border: 0.0625rem solid var(--color-neutral-500);\n border-radius: 50%;\n color: var(--color-primary-500);\n cursor: pointer;\n display: grid;\n flex-shrink: 0;\n height: 1.25rem;\n margin: 4px 0.125rem 0 0.125rem;\n place-content: center;\n transform: translateY(-0.075em);\n transition: all 0.3s linear;\n width: 1.25rem;\n }\n\n .dss-radio:before {\n background-color: var(--color-white);\n border-radius: 50%;\n box-shadow: inset 1rem 1rem var(--color-primary-500);\n content: '';\n height: 0.625rem;\n transform: scale(0);\n transition: transform 0.3s ease-in-out;\n width: 0.625rem;\n }\n\n .dss-radio:checked {\n border: 0.0625rem solid var(--color-primary-500);\n }\n\n .dss-radio:checked:before {\n box-shadow: inset 1rem 1rem var(--color-primary-500);\n transform: scale(1);\n }\n\n .dss-radio:checked:hover {\n border: 0.0625rem solid var(--color-primary-600);\n transition: all 0.3s linear;\n }\n\n .dss-radio:checked:hover:before {\n box-shadow: inset 1rem 1rem var(--color-primary-600);\n transform: scale(1);\n transition: all 0.3s linear;\n }\n\n .dss-radio:checked:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .dss-radio:hover {\n border: 0.0625rem solid var(--color-neutral-600);\n transition: all 0.3s linear;\n }\n\n .dss-radio:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .dss-form-field {\n align-items: center;\n display: flex;\n gap: 8px;\n cursor: pointer;\n min-height: 24px;\n min-width: 136px;\n padding: 8px 12px;\n position: relative;\n word-break: break-word;\n }\n\n .dss-form-field.dss-ticked {\n justify-content: space-between;\n }\n\n .dss-form-field.dss-selectAll {\n border-bottom: 0.8px solid #b1b1b1;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .dss-form-field.dss-first-unselected {\n border-top: 0.8px solid #b1b1b1;\n }\n\n .dss-type--default:hover {\n background-color: var(--color-primary-100);\n }\n\n .dss-type--green:hover {\n background-color: var(--color-green-100);\n }\n\n .dss-type--default.dss-selected:hover {\n background-color: var(--color-primary-400);\n }\n\n .dss-type--green.dss-selected:hover {\n background-color: var(--color-green-400);\n }\n\n .dss-form-field label {\n font-size: 0.875rem;\n line-height: var(--line-24);\n }\n\n .dss-form-field label span.bold {\n font-weight: var(--font-bold);\n }\n\n .dss-form-field .dss-check-overlay {\n width: 24px;\n height: 24px;\n position: absolute;\n }\n\n .dss-selector-list-wrapper {\n overflow-y: auto;\n }\n\n .dss-selector-empty {\n box-sizing: border-box;\n min-height: 120px;\n width: 100%;\n max-width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: var(--dss-spacing-xs);\n gap: var(--dss-spacing-xs);\n }\n\n .dss-selector-empty .text {\n font-size: 14px;\n color: var(--color-blue-800);\n }\n `,\n ];\n }\n set multiple(multiple) {\n const oldValue = this._multiple;\n this._multiple = multiple;\n this.requestUpdate('multiple', oldValue);\n }\n set tick(tick) {\n const oldValue = this._tick;\n this._tick = tick;\n this.requestUpdate('tick', oldValue);\n }\n set deselectable(deselectable) {\n const oldValue = this._deselectable;\n this._deselectable = deselectable;\n this.requestUpdate('deselectable', oldValue);\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set elements(elements) {\n const oldValue = this._elements;\n this._elements = elements;\n this.requestUpdate('elements', oldValue);\n }\n set selectedValue(value) {\n var _a, _b;\n const oldValue = this._selectedValue;\n if (!value || value.length === 0) {\n this._selectedValue = null;\n this.requestUpdate('selectedValue', oldValue);\n return;\n }\n if (this._multiple) {\n this._selectedValue =\n ((_a = this._elements) === null || _a === void 0 ? void 0 : _a.filter(element => value.includes(element.value))) ||\n null;\n this.requestUpdate('selectedValue', oldValue);\n return;\n }\n const element = (_b = this._elements) === null || _b === void 0 ? void 0 : _b.find(el => el.value === value[0]);\n this._selectedValue = element ? [element] : null;\n this.requestUpdate('selectedValue', oldValue);\n }\n set type(value) {\n const oldValue = this._type;\n if (value === 'default' || value === 'green')\n this._type = value;\n else\n this._type = 'default';\n this.requestUpdate('type', oldValue);\n }\n set boxStyle(style) {\n const oldValue = this._style;\n this._style = style;\n this.requestUpdate('style', oldValue);\n }\n set filtre(filtre) {\n if (filtre) {\n const oldValue = this._filtre;\n this._filtre = filtre.toLowerCase();\n this.requestUpdate('filtre', oldValue);\n }\n }\n set labelSelectAll(labelSelectAll) {\n const oldValue = this._labelSelectAll;\n if (labelSelectAll !== '') {\n this._labelSelectAll = labelSelectAll;\n }\n this.requestUpdate('labelSelectAll', oldValue);\n }\n set labelDeselectAll(labelDeselectAll) {\n const oldValue = this._labelDeselectAll;\n if (labelDeselectAll !== '') {\n this._labelDeselectAll = labelDeselectAll;\n }\n this.requestUpdate('labelDeselectAll', oldValue);\n }\n set selectAll(selectAll) {\n const oldValue = this._selectAll;\n this._selectAll = selectAll;\n this.requestUpdate('selectAll', oldValue);\n }\n set elementsSelected(elementsSelected) {\n const oldValue = this._elementsSelected;\n this._elementsSelected = elementsSelected;\n this.requestUpdate('elementsSelected', oldValue);\n }\n _valueIsSelected(value) {\n var _a;\n return ((_a = this._selectedValue) === null || _a === void 0 ? void 0 : _a.some(el => el.value === value)) || false;\n }\n _manuallySelect(e, value) {\n e.preventDefault();\n e.stopPropagation();\n if (this._disabled)\n return;\n const sel = this._valueIsSelected(value);\n if (!this._multiple && !this._deselectable && sel)\n return;\n const el = e.target;\n if (el.className.includes('dss-form-field')) {\n el.querySelector('input').checked = !sel;\n }\n else {\n el.parentElement.querySelector('input').checked = !sel;\n }\n this._returnSelectedValues(value);\n this._areAllElementsSelected();\n }\n _manuallySelectAll(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this._disabled)\n return;\n if (!this._multiple && !this._deselectable && this._isAllSelected)\n return;\n const el = e.target;\n if (el.className.includes('dss-form-field')) {\n el.querySelector('input').checked = !el.querySelector('input').checked;\n this._returnSelecteAllValues(el.querySelector('input').checked);\n }\n else {\n el.parentElement.querySelector('input').checked =\n !el.parentElement.querySelector('input').checked;\n this._returnSelecteAllValues(el.parentElement.querySelector('input').checked);\n }\n this._areAllElementsSelected();\n }\n _returnSelecteAllValues(selectAll) {\n var _a, _b;\n if (selectAll) {\n this._selectedValue =\n ((_a = this._elements) === null || _a === void 0 ? void 0 : _a.filter(element => element.value)) || [];\n }\n else {\n this._selectedValue = [];\n }\n const detail = ((_b = this._selectedValue) === null || _b === void 0 ? void 0 : _b.map(element => element.value)) || null;\n const options = {\n detail,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n this.requestUpdate();\n }\n _returnSelectedValues(value) {\n var _a, _b;\n const checkedValues = Array.from(((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('input:checked')) || [])\n .map(input => input.getAttribute('value'))\n .filter(input => {\n if (input == null)\n return false;\n if (!this._multiple)\n return input === value;\n return true;\n });\n const index = checkedValues.indexOf(this._elementSelectAll[0]);\n if (index !== -1) {\n checkedValues.splice(index, 1);\n }\n this._selectedValue =\n ((_b = this._elements) === null || _b === void 0 ? void 0 : _b.filter(element => checkedValues.includes(element.value))) || [];\n let detail;\n if (this._multiple)\n detail = checkedValues;\n else\n detail = checkedValues[0] || null;\n const options = {\n detail,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n this.requestUpdate();\n }\n _getIndexSubtext(str) {\n if (!this._filtre)\n return [-1, -1];\n const text = str.toLowerCase();\n return [\n text.indexOf(this._filtre),\n text.indexOf(this._filtre) + this._filtre.length,\n ];\n }\n /* eslint-disable class-methods-use-this */\n _focusEvent(e) {\n const el = e.target;\n const parentForm = el.closest('.dss-form-field');\n parentForm === null || parentForm === void 0 ? void 0 : parentForm.classList.add('dss-form-field__focus');\n }\n _blurEvent(e) {\n const el = e.target;\n const parentForm = el.closest('.dss-form-field');\n parentForm === null || parentForm === void 0 ? void 0 : parentForm.classList.remove('dss-form-field__focus');\n }\n /* eslint-enable class-methods-use-this */\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._elementSelectAll = [this._labelSelectAll];\n this._areAllElementsSelected();\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _areAllElementsSelected() {\n if (!this._elements || !this._selectedValue) {\n this._elementSelectAll = [this._labelSelectAll];\n this._isAllSelected = false;\n return;\n }\n const selectedValues = this._selectedValue.map(element => element.value);\n const elementValues = this._elements.map(element => element.value);\n this._isAllSelected =\n selectedValues.length === elementValues.length &&\n selectedValues.every(value => elementValues.includes(value));\n if (this._isAllSelected) {\n this._elementSelectAll = [this._labelDeselectAll];\n }\n else {\n this._elementSelectAll = [this._labelSelectAll];\n }\n this.requestUpdate();\n }\n generateListInputsElements() {\n var _a;\n const salida = (_a = this._elements) === null || _a === void 0 ? void 0 : _a.map((element, index) => {\n const selected = this._valueIsSelected(element.value);\n const tick = this._tick && !this._multiple;\n const divClasses = classMap({\n disabled: this._disabled,\n 'dss-disabled': this._disabled,\n 'dss-form-field': true,\n 'dss-type--default': this._type === 'default',\n 'dss-type--green': this._type === 'green',\n 'dss-ticked': tick,\n 'dss-selected': selected && tick,\n 'dss-first-unselected': index && index > 0 && index === this._elementsSelected,\n });\n const inputClasses = classMap({\n 'dss-checkbox': this._multiple,\n 'dss-radio': !this._multiple,\n 'dss-disabled': this._disabled,\n hidden: tick,\n });\n const tickVisibility = tick && selected ? 'visible' : 'hidden';\n const input = html `\n <input\n name=\"${this._elementId}\"\n type=\"checkbox\"\n class=\"${inputClasses}\"\n .value=\"${element.value}\"\n .checked=\"${selected}\"\n @focus=\"${this._focusEvent}\"\n @blur=\"${this._blurEvent}\"\n />\n <div class=\"dss-check-overlay\"></div>\n `;\n const htmlTick = html `<span\n class=\"dss-icon--checked\"\n style=\"visibility: ${tickVisibility}\"\n ></span>`;\n const clickEvent = (e) => {\n this._manuallySelect(e, element.value);\n };\n const keyEvent = (e) => {\n var _a, _b, _c, _d;\n if (e.key === 'Enter' || e.key === ' ') {\n this._manuallySelect(e, element.value);\n }\n else if (e.key === 'ArrowUp') {\n const el = e.target;\n const prev = (_b = (_a = el === null || el === void 0 ? void 0 : el.closest('.dss-form-field')) === null || _a === void 0 ? void 0 : _a.previousElementSibling) === null || _b === void 0 ? void 0 : _b.querySelector('input');\n prev === null || prev === void 0 ? void 0 : prev.focus();\n }\n else if (e.key === 'ArrowDown') {\n const el = e.target;\n const next = (_d = (_c = el === null || el === void 0 ? void 0 : el.closest('.dss-form-field')) === null || _c === void 0 ? void 0 : _c.nextElementSibling) === null || _d === void 0 ? void 0 : _d.querySelector('input');\n next === null || next === void 0 ? void 0 : next.focus();\n }\n };\n const [start, end] = this._getIndexSubtext(element.label);\n let label = html `${element.label}`;\n if (start !== -1 && end !== -1) {\n const abans = element.label.slice(0, start);\n const sub = element.label.slice(start, end);\n const despres = element.label.slice(end);\n label = html `${abans}<span class=\"bold\">${sub}</span>${despres}`;\n }\n return html `\n <div class=\"${divClasses}\" @keyup=\"${keyEvent}\" @click=\"${clickEvent}\">\n ${input}\n <label>${label}</label>\n ${htmlTick}\n </div>\n `;\n });\n return salida;\n }\n generatElementSelectAll() {\n var _a;\n const salida = (_a = this._elementSelectAll) === null || _a === void 0 ? void 0 : _a.map(element => {\n const divClasses = classMap({\n disabled: this._disabled,\n 'dss-form-field': true,\n 'dss-type--default': this._type === 'default',\n 'dss-type--green': this._type === 'green',\n 'dss-selectAll': true,\n 'dss-disabled': this._disabled,\n });\n const inputClasses = classMap({\n 'dss-checkbox': this._multiple,\n });\n const input = html `\n <input\n name=\"${this._elementId}\"\n type=\"checkbox\"\n class=\"${inputClasses}\"\n .value=\"${element}\"\n .checked=\"${this._isAllSelected}\"\n @focus=\"${this._focusEvent}\"\n @blur=\"${this._blurEvent}\"\n />\n <div class=\"dss-check-overlay\"></div>\n `;\n const clickEvent = (e) => {\n this._manuallySelectAll(e);\n };\n const keyEvent = (e) => {\n var _a, _b, _c, _d;\n if (e.key === 'Enter' || e.key === ' ') {\n this._manuallySelectAll(e);\n }\n else if (e.key === 'ArrowUp') {\n const el = e.target;\n const prev = (_b = (_a = el === null || el === void 0 ? void 0 : el.closest('.dss-form-field')) === null || _a === void 0 ? void 0 : _a.previousElementSibling) === null || _b === void 0 ? void 0 : _b.querySelector('input');\n prev === null || prev === void 0 ? void 0 : prev.focus();\n }\n else if (e.key === 'ArrowDown') {\n const el = e.target;\n const next = (_d = (_c = el === null || el === void 0 ? void 0 : el.closest('.dss-form-field')) === null || _c === void 0 ? void 0 : _c.nextElementSibling) === null || _d === void 0 ? void 0 : _d.querySelector('input');\n next === null || next === void 0 ? void 0 : next.focus();\n }\n };\n return html `\n <div class=\"${divClasses}\" @keyup=\"${keyEvent}\" @click=\"${clickEvent}\">\n ${input}\n <label>${element}</label>\n </div>\n `;\n });\n return salida;\n }\n render() {\n var _a;\n let lis = this.generateListInputsElements();\n const lis2 = this.generatElementSelectAll();\n if (this._multiple && this._selectAll) {\n lis === null || lis === void 0 ? void 0 : lis.unshift(lis2[0]);\n lis = (lis === null || lis === void 0 ? void 0 : lis.length) === 1 ? [] : lis;\n }\n const scrollEvent = (e) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n }\n };\n return html `\n <div\n part=\"selector\"\n class=\"list dss-selector-list-wrapper\"\n @keydown=${scrollEvent}\n style=\"${this._style}\"\n >\n ${lis}\n ${((_a = this._elements) === null || _a === void 0 ? void 0 : _a.length) === 0\n ? html `\n <div class=\"dss-selector-empty\">\n <span class=\"dss-icon dss-icon--sm\">info</span>\n <span class=\"text\">\n ${this._emptySelectorLabel}: ${this._filtre}\n </span>\n </div>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property(booleanType)\n], Selector.prototype, \"multiple\", null);\n__decorate([\n property(booleanType)\n], Selector.prototype, \"tick\", null);\n__decorate([\n property(booleanType)\n], Selector.prototype, \"deselectable\", null);\n__decorate([\n property(booleanType)\n], Selector.prototype, \"disabled\", null);\n__decorate([\n property({ type: Array })\n], Selector.prototype, \"elements\", null);\n__decorate([\n property(selectedType)\n], Selector.prototype, \"selectedValue\", null);\n__decorate([\n property({ type: String })\n], Selector.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], Selector.prototype, \"boxStyle\", null);\n__decorate([\n property({ type: String })\n], Selector.prototype, \"filtre\", null);\n__decorate([\n property({ type: String })\n], Selector.prototype, \"labelSelectAll\", null);\n__decorate([\n property({ type: String })\n], Selector.prototype, \"labelDeselectAll\", null);\n__decorate([\n property(booleanType)\n], Selector.prototype, \"selectAll\", null);\n__decorate([\n property({ type: Number })\n], Selector.prototype, \"elementsSelected\", null);\nSelector = __decorate([\n customElement('dss-selector')\n], Selector);\nexport { Selector };\n//# sourceMappingURL=selector.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nlet TablePagination = class TablePagination extends LitElement {\n constructor() {\n super(...arguments);\n this._length = 0;\n this._pageSizeOptions = [];\n this._pageSize = 5;\n this._totalPages = 0;\n this._currentIndex = 1;\n this._startIndex = 1;\n this._endIndex = this._pageSize;\n this._rowsPerPageText = 'Files per pàgina';\n this._resultsText = 'Resultats';\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n :host {\n width: 100%;\n display: flex;\n justify-content: flex-end;\n height: fit-content;\n font-family: var(--font-family);\n font-style: normal;\n border-top: 2px solid var(--color-neutral-700);\n }\n\n .pagination__container {\n display: flex;\n align-items: center;\n padding: 0.5rem 0.75rem;\n gap: 1rem;\n }\n\n .pagination__results {\n font-weight: 600;\n font-size: 0.875rem;\n line-height: 1.5rem;\n color: #0073e6;\n }\n\n .pagination__divider {\n height: 1rem;\n border-left: 1px solid rgb(216, 216, 216);\n }\n\n .pagination__text {\n font-weight: 400;\n font-size: 12px;\n line-height: 1rem;\n color: #656565;\n }\n\n .pagination__button {\n color: #0073e6;\n font-size: 1.5rem;\n padding: 0;\n align-items: center;\n background-color: transparent;\n border: none;\n border-radius: 100%;\n cursor: pointer;\n display: flex;\n height: fit-content;\n justify-content: center;\n transition: all 0.3s ease-in;\n width: fit-content;\n font-family: 'Material Symbols Rounded';\n width: 2rem;\n height: 2rem;\n }\n\n .pagination__button:hover:enabled {\n background-color: #bfddfa;\n }\n\n .pagination__button:focus-visible:enabled {\n outline: 0.25rem solid #8fc2f5;\n transition: none;\n }\n\n .pagination__button:active:enabled {\n background-color: #eff7ff;\n transition: none;\n }\n\n .pagination__button:disabled {\n transition: none;\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .pagination__row-page {\n display: flex;\n align-items: center;\n gap: 1rem;\n }\n\n .pagination__buttons {\n display: flex;\n align-items: center;\n }\n\n .pagination__select {\n background: #eff7ff;\n border-radius: 4px;\n position: relative;\n }\n\n .pagination__select select {\n border: none;\n appearance: none;\n background: transparent;\n padding: 7px 32px 7px 12px;\n color: #00356a;\n font-weight: 400;\n font-size: 12px;\n line-height: 1rem;\n position: inherit;\n z-index: 1;\n font-family: var(--font-family);\n }\n\n .pagination__select select:active,\n .pagination__select select:focus-visible {\n outline: none;\n }\n\n .pagination__arrow-down {\n position: absolute;\n height: 100%;\n display: flex;\n align-items: center;\n top: 0;\n right: 12px;\n color: #00356a;\n }\n `,\n ];\n }\n set length(length) {\n const oldValue = this._length;\n this._length = length;\n this.requestUpdate('length', oldValue);\n }\n set pageSize(pageSize) {\n const oldValue = this._pageSize;\n this._pageSize = pageSize;\n this.requestUpdate('pageSize', oldValue);\n }\n set pageSizeOptions(pageSizeOptions) {\n const oldValue = this._pageSizeOptions;\n this._pageSizeOptions = pageSizeOptions;\n this.requestUpdate('pageSizeOptions', oldValue);\n }\n set currentIndex(currentIndex) {\n const oldValue = this._currentIndex;\n this._currentIndex = currentIndex;\n this.requestUpdate('currentIndex', oldValue);\n }\n set rowsPerPageText(rowsPerPageText) {\n const oldValue = this._rowsPerPageText;\n this._rowsPerPageText = rowsPerPageText;\n this.requestUpdate('rowsPerPageText', oldValue);\n }\n set resultsText(resultsText) {\n const oldValue = this._resultsText;\n this._resultsText = resultsText;\n this.requestUpdate('resultsText', oldValue);\n }\n _next() {\n // eslint-disable-next-line no-plusplus\n this._currentIndex++;\n this._startIndex += this._pageSize;\n this._endIndex += this._pageSize;\n if (this._currentIndex === this._totalPages) {\n this._endIndex = this._length;\n }\n this._emitCurrentPage();\n this.requestUpdate();\n }\n _prev() {\n const _lastCount = Math.abs(this._startIndex - this._endIndex) + 1;\n this._startIndex -= this._pageSize;\n this._endIndex -=\n this._currentIndex === this._totalPages ? _lastCount : this._pageSize;\n // eslint-disable-next-line no-plusplus\n this._currentIndex--;\n this._emitCurrentPage();\n this.requestUpdate();\n }\n _handleChange() {\n var _a;\n const _select = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#pagination-select');\n this._pageSize = Number(_select.value);\n this._reload(this._startIndex);\n this._emitCurrentPage();\n this.requestUpdate();\n }\n _emitCurrentPage() {\n this.dispatchEvent(new CustomEvent('onChangePage', {\n detail: {\n currentIndex: this._currentIndex,\n startIndex: this._startIndex,\n endIndex: this._endIndex,\n pageSize: this._pageSize,\n },\n bubbles: true,\n composed: true,\n }));\n }\n _reload(previousFirstItem) {\n this._currentIndex = Math.ceil(previousFirstItem / this._pageSize);\n this._reset(true);\n }\n _reset(reload) {\n this._totalPages = Math.ceil(this._length / this._pageSize);\n // Prevent currentIndex issues if users define a wrong index\n // Only on first component rendering\n if (!reload) {\n if (this._currentIndex < 1) {\n this._currentIndex = 1;\n }\n else if (this._currentIndex > this._totalPages) {\n this._currentIndex = this._totalPages;\n }\n }\n this._startIndex = (this._currentIndex - 1) * this._pageSize + 1;\n this._endIndex = this._startIndex - 1 + this._pageSize;\n // Prevent endIndex issues\n if (this._endIndex > this._length) {\n this._endIndex = this._length;\n }\n }\n async firstUpdated() {\n var _a;\n try {\n await this.updateComplete;\n this._pageSize =\n ((_a = this._pageSizeOptions) === null || _a === void 0 ? void 0 : _a.length) &&\n !this._pageSizeOptions.includes(this._pageSize)\n ? this._pageSizeOptions[0]\n : this._pageSize;\n this._reset();\n this._emitCurrentPage();\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n willUpdate(changedProperties) {\n var _a;\n const length = changedProperties.has('length');\n const pageSize = changedProperties.has('pageSize');\n const pageSizeOptions = changedProperties.has('pageSizeOptions');\n if (length || pageSize || pageSizeOptions) {\n this._pageSize =\n ((_a = this._pageSizeOptions) === null || _a === void 0 ? void 0 : _a.length) &&\n !this._pageSizeOptions.includes(this._pageSize)\n ? this._pageSizeOptions[0]\n : this._pageSize;\n this._reset();\n this.requestUpdate();\n }\n }\n render() {\n var _a;\n return html `\n <div class=\"pagination__container\">\n <span class=\"pagination__results\"\n >${this._length} ${this._resultsText}</span\n >\n <div class=\"pagination__divider\"></div>\n ${((_a = this._pageSizeOptions) === null || _a === void 0 ? void 0 : _a.length)\n ? html `\n <div class=\"pagination__row-page\">\n <span class=\"pagination__text\">${this._rowsPerPageText}</span>\n <div class=\"pagination__select\">\n <select\n id=\"pagination-select\"\n @change=${this._handleChange}\n aria-label=\"Seleccionar la mida de la pàgina\"\n >\n ${this._pageSizeOptions.map((option) => html `\n <option\n value=\"${option}\"\n .selected=${this._pageSize === option}\n >\n ${option}\n </option>\n `)}\n </select>\n <span class=\"material-symbols-rounded pagination__arrow-down\">\n keyboard_arrow_down\n </span>\n </div>\n </div>\n <span class=\"pagination__text\">\n ${this._startIndex}-${this._endIndex} of ${this._length}\n </span>\n <div class=\"pagination__buttons\">\n <button\n type=\"button\"\n class=\"pagination__button ${this._currentIndex}\"\n @click=${this._prev}\n ?disabled=${+this._currentIndex === 1}\n >\n <span>keyboard_arrow_left</span>\n </button>\n <button\n type=\"button\"\n class=\"pagination__button\"\n @click=${this._next}\n ?disabled=${+this._currentIndex === this._totalPages}\n >\n <span>keyboard_arrow_right</span>\n </button>\n </div>\n `\n : html `\n <button\n type=\"button\"\n class=\"pagination__button\"\n @click=${this._prev}\n ?disabled=${+this._currentIndex === 1}\n >\n <span>keyboard_arrow_left</span>\n </button>\n <span class=\"pagination__text\">\n ${this._startIndex}-${this._endIndex} of ${this._length}\n </span>\n <button\n type=\"button\"\n class=\"pagination__button\"\n @click=${this._next}\n ?disabled=${+this._currentIndex === this._totalPages}\n >\n <span>keyboard_arrow_right</span>\n </button>\n `}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Number })\n], TablePagination.prototype, \"length\", null);\n__decorate([\n property({ type: Number })\n], TablePagination.prototype, \"pageSize\", null);\n__decorate([\n property({ type: Array })\n], TablePagination.prototype, \"pageSizeOptions\", null);\n__decorate([\n property({ type: String })\n], TablePagination.prototype, \"currentIndex\", null);\n__decorate([\n property({ type: String })\n], TablePagination.prototype, \"rowsPerPageText\", null);\n__decorate([\n property({ type: String })\n], TablePagination.prototype, \"resultsText\", null);\nTablePagination = __decorate([\n customElement('dss-table-pagination')\n], TablePagination);\nexport { TablePagination };\n//# sourceMappingURL=table-pagination.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nlet Textarea = class Textarea extends LitElement {\n constructor() {\n super(...arguments);\n this._maxLength = 0;\n this._isTextareaFocused = false;\n this._isGroupFocusedVisible = false;\n this._showError = false;\n }\n static get styles() {\n return css `\n ::slotted(label) {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n cursor: text;\n position: absolute;\n }\n ::slotted(textarea) {\n resize: vertical;\n outline: none;\n border: 0;\n font-size: 14px;\n line-height: 24px;\n font-style: normal;\n color: #1d1d1d;\n width: 100%;\n text-overflow: ellipsis;\n font-family: var(--font-family);\n }\n\n ::slotted(textarea)::placeholder {\n color: #9f9f9f;\n }\n\n .dss-textarea {\n display: flex;\n flex-direction: column;\n color: #656565;\n }\n\n .dss-textarea--disabled {\n opacity: 0.6;\n }\n\n .dss-textarea--disabled .dss-textarea__group::after {\n background: #f5f5f5;\n }\n\n .dss-textarea--gap {\n gap: 4px;\n }\n\n .dss-textarea__content {\n display: flex;\n align-items: flex-start;\n flex: 1;\n }\n\n .dss-textarea--disabled .dss-textarea__group,\n .dss-textarea--disabled ::slotted(textarea) {\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n .dss-textarea--disabled ::slotted(label),\n .dss-textarea--disabled ::slotted(textarea) {\n cursor: not-allowed;\n }\n\n .dss-textarea__group {\n position: relative;\n background: #ffffff;\n border: var(--dss-border-width-sm) solid var(--color-neutral-100);\n border-radius: 8px;\n padding: 12px;\n display: flex;\n gap: 8px;\n min-height: 24px;\n }\n\n .dss-textarea__group::after {\n pointer-events: none;\n content: 'height';\n font-family: 'Material Symbols Rounded';\n font-size: 0px;\n position: absolute;\n height: 0px;\n width: 0px;\n text-align: center;\n bottom: 4px;\n right: 3px;\n z-index: 2;\n border-radius: 8px;\n background: transparent;\n }\n\n .dss-textarea__group--required ::slotted(label)::before {\n content: '*';\n }\n\n .dss-textarea__group:focus-visible,\n .dss-textarea__group--focused-visible,\n .dss-textarea--invalid .dss-textarea__group:focus-visible {\n border-color: var(--color-blue-200);\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n box-shadow: none;\n background-color: #ffffff;\n }\n\n .dss-textarea__group--readOnly {\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-radius: 0;\n }\n\n .dss-textarea--invalid\n .dss-textarea__group:focus-visible\n ::slotted(textarea) {\n background-color: #ffffff;\n }\n\n .dss-textarea__group--focused {\n padding: 4px 12px;\n }\n\n .dss-textarea__group--focused .dss-textarea__content ::slotted(label) {\n font-size: 12px;\n line-height: 16px;\n transition: 0.3s;\n top: 4px;\n }\n\n .dss-textarea__group--focused .dss-textarea__content ::slotted(textarea),\n .dss-textarea__group--focused .dss-textarea__content ::slotted(textarea) {\n margin-top: 16px !important;\n }\n\n .dss-textarea--invalid ::slotted(textarea) {\n background-color: #fff6f6;\n color: #1d1d1d;\n }\n\n .dss-textarea--invalid ::slotted(textarea)::placeholder {\n color: #d36262;\n }\n\n .dss-textarea--invalid .dss-textarea__group {\n box-shadow: inset 0 0 0 1px #b60000;\n }\n\n .dss-textarea--invalid .dss-textarea__group,\n .dss-textarea--invalid .dss-textarea__group::after {\n background-color: #fff6f6;\n color: #b60000;\n }\n\n .dss-textarea__help {\n font-style: normal;\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n display: flex;\n padding: 0 12px;\n gap: 8px;\n }\n\n .dss-textarea__help .dss-textarea__description {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .dss-textarea--invalid .dss-textarea__help,\n .dss-textarea--invalid .dss-textarea__help::after {\n color: #b60000;\n }\n `;\n }\n set showError(showError) {\n const oldValue = this._showError;\n this._showError = showError;\n this.requestUpdate('showError', oldValue);\n }\n get _label() {\n var _a;\n const label = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"label\"]')) || undefined;\n return label === null || label === void 0 ? void 0 : label.assignedElements()[0];\n }\n get _textarea() {\n var _a;\n const textarea = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"textarea\"]')) || undefined;\n return textarea === null || textarea === void 0 ? void 0 : textarea.assignedElements()[0];\n }\n get _description() {\n var _a;\n const description = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"description\"]')) || undefined;\n return description === null || description === void 0 ? void 0 : description.assignedElements()[0];\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n const { maxLength } = this._textarea;\n this._maxLength = maxLength > 0 ? maxLength : 0;\n this._addEventListeners();\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _addEventListeners() {\n this._textarea.addEventListener('input', this._handleInput.bind(this));\n this._textarea.addEventListener('focus', this._handleFocus.bind(this));\n this._textarea.addEventListener('focusout', this._handleFocusOut.bind(this));\n this._textarea.addEventListener('blur', this._handleBlur.bind(this));\n this._label.addEventListener('click', this._handelLabelClick.bind(this));\n this._textarea.addEventListener('keyup', this._handleKeyup.bind(this));\n }\n _handleInput() {\n this.requestUpdate();\n }\n _handleKeyup(e) {\n const code = e.keyCode ? e.keyCode : e.which;\n if (code === 9) {\n this._handleFocus();\n }\n }\n _handleFocus() {\n // if (this._textarea?.readOnly) {\n // return;\n // }\n this._isGroupFocusedVisible = true;\n this._isTextareaFocused = true;\n this.requestUpdate();\n }\n _handleFocusOut() {\n this._handleBlur();\n this._isGroupFocusedVisible = false;\n this._isTextareaFocused = false;\n this.requestUpdate();\n }\n _handleBlur() {\n this._isTextareaFocused = false;\n this.requestUpdate();\n }\n _handelLabelClick() {\n this._textarea.focus();\n this.requestUpdate();\n }\n _handleSlotChange() {\n this.requestUpdate();\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g;\n const containerClass = {\n 'dss-textarea--invalid': this._showError,\n 'dss-textarea--disabled': (_a = this._textarea) === null || _a === void 0 ? void 0 : _a.disabled,\n 'dss-textarea--gap': this._maxLength || !!this._description,\n };\n const cssClass = {\n 'dss-textarea__group--focused': ((_b = this._textarea) === null || _b === void 0 ? void 0 : _b.value) ||\n this._isTextareaFocused ||\n ((_c = this._textarea) === null || _c === void 0 ? void 0 : _c.placeholder),\n 'dss-textarea__group--focused-visible': this._isGroupFocusedVisible,\n 'dss-textarea__group--required': (_d = this._textarea) === null || _d === void 0 ? void 0 : _d.required,\n 'dss-textarea__group--readOnly': (_e = this._textarea) === null || _e === void 0 ? void 0 : _e.readOnly,\n };\n return html `\n <div class=\"dss-textarea ${classMap(containerClass)}\">\n <div class=\"dss-textarea__group ${classMap(cssClass)}\">\n <div class=\"dss-textarea__content\">\n <slot name=\"label\"></slot>\n <slot\n name=\"textarea\"\n @focusin=${this._handleFocus}\n @focusout=${this._handleFocusOut}\n ></slot>\n </div>\n </div>\n <div class=\"dss-textarea__help\">\n <div class=\"dss-textarea__description\">\n <slot\n name=\"description\"\n @slotchange=${this._handleSlotChange}\n ></slot>\n </div>\n ${this._maxLength\n ? html `<span\n >${(_g = (_f = this._textarea) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.length}/${this._maxLength}</span\n >`\n : null}\n </div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], Textarea.prototype, \"showError\", null);\nTextarea = __decorate([\n customElement('dss-textarea')\n], Textarea);\nexport { Textarea };\n//# sourceMappingURL=textarea.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nconst booleanType = {\n type: Boolean,\n converter: {\n fromAttribute: value => value !== 'false',\n toAttribute: value => (value ? '' : undefined),\n },\n};\nlet DropDownList = class DropDownList extends LitElement {\n constructor() {\n super(...arguments);\n this._elements = null;\n this._copyElements = null;\n this._tick = true;\n this._type = 'default';\n this._style = null;\n this._boxStyle = null;\n this._inputStyle = null;\n this._selectedValue = null;\n this._multiple = false;\n this._openWithSearch = false;\n this._deselectable = false;\n this._icon = 'search';\n this._label = '';\n this._placeHolder = '';\n this._showSelector = false;\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n this._labelSelectAll = 'Seleccionar-ho tot';\n this._labelDeselectAll = 'Deseleccionar-ho tot';\n this._selectAll = false;\n this._selectElements = 0;\n this._isFocused = false;\n this._isGroupFocusedVisible = false;\n this._isFirstEmptySelected = true;\n }\n static get styles() {\n return css `\n :host {\n width: fit-content;\n height: fit-content;\n position: relative;\n }\n\n label {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 24px;\n cursor: text;\n position: absolute;\n }\n\n input {\n outline: none;\n border: 0;\n font-size: 14px;\n line-height: 24px;\n font-style: normal;\n color: #1d1d1d;\n width: 100%;\n text-overflow: ellipsis;\n }\n\n input::placeholder {\n color: #9f9f9f;\n }\n\n .dss-input {\n display: flex;\n flex-direction: column;\n color: #656565;\n position: relative;\n }\n\n .dss-input--disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .dss-input__content {\n display: flex;\n align-items: center;\n flex: 1;\n overflow: hidden;\n position: relative;\n }\n\n .dss-input--disabled .dss-input__group,\n .dss-input--disabled input {\n background-color: #f5f5f5;\n cursor: not-allowed;\n }\n\n .dss-input--disabled label,\n .dss-input--disabled input {\n cursor: not-allowed;\n }\n\n .dss-input__group {\n position: relative;\n background: #ffffff;\n box-shadow: inset 0 0 0 1px #d8d8d8;\n border-radius: 8px;\n padding: 12px;\n display: flex;\n gap: 8px;\n }\n\n :host([small]) .dss-input__group {\n padding: 8px 12px;\n }\n\n .dss-input__group--required label::before {\n content: '*';\n }\n\n .dss-input--invalid .dss-input__group:focus-visible input {\n background-color: #ffffff;\n }\n\n .dss-input__group--focused {\n padding: 4px 12px;\n }\n\n :host([small]) .dss-input__group--focused {\n padding: 1px 12px;\n }\n\n .dss-input__group--focused .dss-input__content label {\n font-size: 12px;\n line-height: 16px;\n transition: 0.3s;\n top: 4px;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content label {\n top: 2px;\n }\n\n .dss-input__group--focused .dss-input__content input,\n .dss-input__group--focused .dss-input__content input {\n margin-top: 16px !important;\n font-family: var(--font-family);\n padding-left: 0 !important;\n }\n\n :host([small]) .dss-input__group--focused .dss-input__content input {\n margin-top: 14px !important;\n }\n\n .dss-input--invalid .dss-input__group {\n box-shadow: inset 0 0 0 1px #b60000;\n }\n\n .dss-input--invalid .dss-input__group,\n .dss-input--invalid .dss-icon-button,\n .dss-input--invalid .dss-input__group input,\n .dss-input--invalid .dss-input__group .dss-icon-button:hover span {\n background-color: transparent;\n color: #b60000;\n }\n\n .dss-input--invalid .dss-input__group input {\n color: #1d1d1d;\n }\n\n .dss-input__group:focus-visible,\n .dss-input__group--active {\n box-shadow: 0 0 0 4px #8ec7e5;\n background-color: #ffffff;\n outline: none;\n }\n\n .dss-input--invalid .dss-input__group--active {\n box-shadow: 0 0 0 4px #8ec7e5;\n }\n\n .dss-input--invalid input::placeholder {\n color: #d36262;\n }\n\n .dss-input__icon {\n font-family: 'Material Symbols Rounded';\n display: flex;\n align-items: center;\n font-size: 24px;\n }\n\n .dss-selector {\n position: absolute;\n top: 50px;\n z-index: 100;\n display: contents;\n }\n\n .dss-input__group--disabled .dss-icon-button {\n pointer-events: none;\n }\n\n :host([small]) dss-selector {\n top: 40px;\n }\n\n .dss-icon-button {\n font-size: 1rem;\n font-family: 'Material Symbols Rounded';\n align-items: center;\n border: none;\n cursor: pointer;\n display: flex;\n background-color: transparent;\n color: #0073e6;\n padding: 0;\n height: fit-content;\n margin: auto;\n border-radius: 100%;\n }\n\n .dss-icon-button span {\n padding: 0.25rem;\n background-color: transparent;\n border-radius: 100%;\n transition: all 0.3s ease-in;\n }\n\n .dss-icon-button:hover:enabled span {\n background-color: #bfddfa;\n }\n\n .dss-icon-button:active:enabled span {\n background-color: #eff7ff;\n transition: none;\n }\n\n .dss-icon-button:disabled {\n cursor: not-allowed;\n }\n\n .dss-input__group--readOnly .dss-icon-button {\n pointer-events: none;\n }\n\n .dss-input__group--disabled .dss-icon-button {\n pointer-events: none;\n }\n\n .dss-icon-button:focus-visible:enabled {\n outline: none;\n }\n `;\n }\n get _input() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n }\n get _DSSinput() {\n var _a;\n return (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.dss-input');\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('label', oldValue);\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n set placeHolder(placeHolder) {\n const oldValue = this._placeHolder;\n this._placeHolder = placeHolder;\n this.requestUpdate('placeHolder', oldValue);\n }\n set required(required) {\n const oldValue = this._required;\n this._required = required;\n this.requestUpdate('required', oldValue);\n }\n set disabled(disabled) {\n const oldValue = this._disabled;\n this._disabled = disabled;\n this.requestUpdate('disabled', oldValue);\n }\n set readonly(readonly) {\n const oldValue = this._readonly;\n this._readonly = readonly;\n this.requestUpdate('readonly', oldValue);\n }\n set elements(elements) {\n const oldValue = this._elements;\n this._elements = elements;\n this.requestUpdate('elements', oldValue);\n }\n set multiple(multiple) {\n const oldValue = this._multiple;\n this._multiple = multiple;\n this.requestUpdate('multiple', oldValue);\n }\n set openWithSearch(openWithSearch) {\n const oldValue = this._openWithSearch;\n this._openWithSearch = openWithSearch;\n this.requestUpdate('openWithSearch', oldValue);\n }\n set tick(tick) {\n const oldValue = this._tick;\n this._tick = tick;\n this.requestUpdate('tick', oldValue);\n }\n set deselectable(deselectable) {\n const oldValue = this._deselectable;\n this._deselectable = deselectable;\n this.requestUpdate('deselectable', oldValue);\n }\n set selectedValue(elements) {\n const oldValue = this._selectedValue;\n this._selectedValue = elements;\n this.requestUpdate('selectedValue', oldValue);\n }\n set type(value) {\n const oldValue = this._type;\n if (value === 'default' || value === 'green')\n this._type = value;\n else\n this._type = 'default';\n this.requestUpdate('type', oldValue);\n }\n set boxStyle(boxStyle) {\n const oldValue = this._boxStyle;\n this._boxStyle = boxStyle;\n this.requestUpdate('boxStyle', oldValue);\n }\n set inputStyle(inputStyle) {\n const oldValue = this._inputStyle;\n this._inputStyle = inputStyle;\n this._inputStyle = `${this._inputStyle} box-sizing: border-box;`;\n this.requestUpdate('inputStyle', oldValue);\n }\n set labelSelectAll(labelSelectAll) {\n const oldValue = this._labelSelectAll;\n if (labelSelectAll !== '') {\n this._labelSelectAll = labelSelectAll;\n }\n this.requestUpdate('labelSelectAll', oldValue);\n }\n set labelDeselectAll(labelDeselectAll) {\n const oldValue = this._labelDeselectAll;\n if (labelDeselectAll !== '') {\n this._labelDeselectAll = labelDeselectAll;\n }\n this.requestUpdate('labelDeselectAll', oldValue);\n }\n set SelectAll(selectAll) {\n const oldValue = this._selectAll;\n this._selectAll = selectAll;\n this.requestUpdate('selectAll', oldValue);\n }\n get _filteredElements() {\n var _a;\n const filtro = this._input.value.toLowerCase();\n return (_a = this._elements) === null || _a === void 0 ? void 0 : _a.filter(elemento => elemento.label.toLowerCase().includes(filtro));\n }\n get _showPlaceHolder() {\n return ifDefined(this._placeHolder) && !this._showSelector\n ? undefined\n : this._placeHolder;\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._copyElements = JSON.parse(JSON.stringify(this._elements));\n this._initElementsSelected();\n if (!this._openWithSearch && !this._disabled) {\n document.addEventListener('click', e => {\n this._clickedOutsideDropdown(this, e);\n });\n }\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n if (this._openWithSearch) {\n this._onclick(true);\n }\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _initElementsSelected() {\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n }\n _clickedOutsideDropdown(dropdown, event) {\n if (dropdown !== event.target) {\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n this._showSelector = false;\n this.requestUpdate();\n }\n }\n _handleInput() {\n this.requestUpdate();\n }\n _handleFocus() {\n if (this._readonly) {\n return;\n }\n this._isFocused = true;\n this._isGroupFocusedVisible = true;\n this.requestUpdate();\n }\n _handleBlurEsc() {\n if (this._readonly || this._openWithSearch) {\n return;\n }\n this._isFocused = true;\n this._showSelector = false;\n this.requestUpdate();\n }\n _handleBlur() {\n this._isFocused = false;\n this._isGroupFocusedVisible = false;\n this.requestUpdate();\n }\n _handleBlurComponent(dropdown, event) {\n var _a;\n if (dropdown !== event.target) {\n if (this._openWithSearch) {\n return;\n }\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this._handleBlurEsc();\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n }\n }\n _onCancel() {\n this._showSelector = false;\n this._isFocused = false;\n this.requestUpdate();\n }\n _cleanInput() {\n this._input.value = '';\n this.requestUpdate();\n }\n _onclick(firstTime, e) {\n var _a, _b;\n if (!firstTime) {\n this._isFocused = true;\n }\n let style = '';\n if (this._boxStyle) {\n style += this._boxStyle;\n if (!style.endsWith(';')) {\n style += ';';\n }\n }\n this._style = `${style} overflow: auto;${!this._openWithSearch\n ? 'box-shadow: 0 1px 3px 0 #0000001a, 0 4px 8px 3px #0000000d;'\n : ''}`;\n if (!this._openWithSearch) {\n this._handleKeyInput(e);\n }\n else {\n this._showSelector = true;\n }\n if (this._showSelector) {\n this._input.value = '';\n if (!firstTime) {\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n else {\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n if (!e || (e.key !== 'Enter' && e.key !== ' ' && e.key !== 'Escape')) {\n (_b = this._input) === null || _b === void 0 ? void 0 : _b.blur();\n this._onCancel();\n }\n }\n this.requestUpdate();\n }\n _handleKeyInput(e) {\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter' || (e === null || e === void 0 ? void 0 : e.key) === ' ') {\n this._showSelector = true;\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._handleBlurEsc();\n }\n else {\n this._showSelector = !this._showSelector;\n }\n }\n _dispatchValueChange() {\n if (this._input.value) {\n const options = {\n detail: this._input.value,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onValueChange', options));\n }\n }\n _onSelectorChanges(e) {\n this._selectedValue = e.detail;\n this._dispatchValueChange();\n if (!this._multiple && !this._openWithSearch && !this._disabled) {\n this._clickedOutsideDropdown(this, e);\n }\n this.requestUpdate();\n }\n _showSelectValuesInInput(e) {\n var _a, _b, _c, _d;\n if (!this._multiple && Array.isArray(e) && e.length > 1) {\n e.splice(1);\n }\n const matchingObjects = (_a = this._elements) === null || _a === void 0 ? void 0 : _a.filter(objeto => e.includes(objeto.value));\n this._elements = [...this._copyElements];\n if (!this._openWithSearch) {\n this._selectElements = (matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects.length)\n ? matchingObjects.length\n : 0;\n }\n else {\n this._selectElements = 0;\n }\n if (matchingObjects && matchingObjects.length > 0) {\n const sel = this._elements.filter(objeto => matchingObjects.includes(objeto));\n sel.push(...this._elements.filter(objeto => !matchingObjects.includes(objeto)));\n this._elements = [...sel];\n }\n if (!this._multiple) {\n this._input.value = (_c = (_b = matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects[0]) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : '';\n return;\n }\n const matchingValues = matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects.map(objeto => objeto.label);\n this._input.value = (_d = matchingValues === null || matchingValues === void 0 ? void 0 : matchingValues.join(', ')) !== null && _d !== void 0 ? _d : '';\n }\n _evalueFocus(event) {\n var _a;\n if (((_a = event.target) === null || _a === void 0 ? void 0 : _a.id) !== 'dss-dropdownlist') {\n if (this._showSelector) {\n this._handleFocus();\n }\n }\n }\n _handleKeyup(e) {\n const code = e.keyCode ? e.keyCode : e.which;\n if (code === 9) {\n this._isGroupFocusedVisible = true;\n this._isFocused = true;\n this._handelLabelClick();\n }\n }\n _handelLabelClick() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this.requestUpdate();\n }\n render() {\n var _a, _b, _c, _d;\n const containerClass = {\n 'dss-input--disabled': this._disabled,\n };\n const selectorContainerClass = {\n 'dss-selector': !this._openWithSearch,\n 'dss-selector--disabled': this._disabled,\n 'dss-selector-dropdown': true,\n };\n const cssClass = {\n 'dss-input__group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) || this._showPlaceHolder || this._showSelector,\n 'dss-input__group--focused-visible': this._isGroupFocusedVisible,\n 'dss-input__group--required': this._required,\n 'dss-input__group--active': this._isFocused,\n 'dss-input__group--readOnly': this._readonly,\n 'dss-input__group--disabled': this._disabled,\n };\n return html ` <div\n id=\"previous-input\"\n class=\"dss-input ${classMap(containerClass)}\"\n style=${ifDefined(this._inputStyle)}\n >\n <div\n class=\"dss-input__group ${classMap(cssClass)}\"\n tabindex=\"0\"\n @keyup=${this._handleKeyup}\n >\n <span class=\"dss-input__icon\">${this._icon}</span>\n <div class=\"dss-input__content\">\n <label>${this._label}</label>\n <input\n aria-label=\"${this._label}\"\n ?disabled=${this._disabled}\n ?required=${this._required}\n ?readonly=${this._readonly || !this._showSelector}\n @input=${this._handleInput}\n @focus=\"${this._evalueFocus}\"\n @keydown=\"${(e) => {\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'Escape')\n this._onclick(false, e);\n }}\"\n @blur=${this._handleBlur}\n placeholder=${this._showPlaceHolder}\n type=\"text\"\n />\n </div>\n ${!this._openWithSearch\n ? html `\n <button\n type=\"button\"\n class=\"dss-icon-button\"\n @click=${this._onclick}\n ?disabled=${(_b = this._input) === null || _b === void 0 ? void 0 : _b.disabled}\n tabindex=\"-1\"\n >\n <span\n >${this._showSelector\n ? 'keyboard_arrow_up'\n : 'keyboard_arrow_down'}</span\n >\n </button>\n `\n : html `\n <button\n type=\"button\"\n class=\"dss-icon-button\"\n @click=${this._cleanInput}\n ?disabled=${(_c = this._input) === null || _c === void 0 ? void 0 : _c.disabled}\n tabindex=\"-1\"\n >\n <span>close</span>\n </button>\n `}\n </div>\n ${this._showSelector &&\n this._filteredElements &&\n ((_d = this._filteredElements) === null || _d === void 0 ? void 0 : _d.length) > 0\n ? html `\n <dss-selector\n class=\"${classMap(selectorContainerClass)}\"\n .multiple=${this._multiple}\n .tick=${this._tick}\n .deselectable=${this._deselectable}\n .disabled=${this._disabled}\n .elements=${this._filteredElements}\n .filtre=${this._input.value}\n .selectedValue=${this._selectedValue}\n .type=${this._type}\n .labelSelectAll=${this._labelSelectAll}\n .labelDeselectAll=${this._labelDeselectAll}\n .selectAll=${this._selectAll}\n boxStyle=${this._style}\n elementsSelected=${this._selectElements}\n @onValueChange=\"${this._onSelectorChanges}\"\n @keydown=\"${(e) => {\n if (e.key === 'Escape')\n this._handleBlurComponent(this, e);\n }}\"\n >\n </dss-selector>\n `\n : null}\n </div>`;\n }\n};\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"placeHolder\", null);\n__decorate([\n property({ type: Boolean })\n], DropDownList.prototype, \"required\", null);\n__decorate([\n property({ type: Boolean })\n], DropDownList.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], DropDownList.prototype, \"readonly\", null);\n__decorate([\n property({ type: Array })\n], DropDownList.prototype, \"elements\", null);\n__decorate([\n property(booleanType)\n], DropDownList.prototype, \"multiple\", null);\n__decorate([\n property(booleanType)\n], DropDownList.prototype, \"openWithSearch\", null);\n__decorate([\n property(booleanType)\n], DropDownList.prototype, \"tick\", null);\n__decorate([\n property(booleanType)\n], DropDownList.prototype, \"deselectable\", null);\n__decorate([\n property({ type: Array })\n], DropDownList.prototype, \"selectedValue\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"boxStyle\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"inputStyle\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"labelSelectAll\", null);\n__decorate([\n property({ type: String })\n], DropDownList.prototype, \"labelDeselectAll\", null);\n__decorate([\n property(booleanType)\n], DropDownList.prototype, \"SelectAll\", null);\nDropDownList = __decorate([\n customElement('dss-dropdownlist')\n], DropDownList);\nexport { DropDownList };\n//# sourceMappingURL=dropdown-list.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { buttonStyles } from './shared-styles/button.style';\nimport { symbolStyles } from './shared-styles/symbol.style';\nlet TabsList = class TabsList extends LitElement {\n constructor() {\n super(...arguments);\n this._dssTabsId = '';\n this._label = 'Tabs component name';\n this._tabs = [];\n this._tabsElements = window.document.querySelectorAll(\"[role='tab']\");\n this._firstTab = document.createElement('div');\n this._lastTab = document.createElement('div');\n this._addTabEnabled = false;\n this._addTabText = 'Afegir Tab';\n }\n static get styles() {\n return [\n buttonStyles,\n symbolStyles,\n css `\n :host {\n width: 100%;\n height: fit-content;\n }\n\n :not(:defined) {\n display: none;\n }\n\n .dss-tabs-list__header {\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: var(--dss-border-width-sm) solid\n var(--color-neutral-200);\n }\n\n .dss-tabs-item {\n display: flex;\n align-items: center;\n font-family: var(--font-family);\n font-size: 14px;\n font-weight: 600;\n line-height: 24px;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n padding: var(--dss-spacing-sm);\n\n &:focus-visible {\n outline: var(--color-primary-200) solid var(--dss-border-width-lg);\n border-radius: var(--dss-radius-xs);\n }\n\n &[aria-selected='true'] {\n border-bottom: var(--dss-border-width-md) solid\n var(--color-primary-500);\n }\n }\n\n .dss-tabs-button {\n margin: 0 var(--dss-spacing-sm) 0 var(--dss-spacing-xs);\n }\n\n ::slotted(dss-icon-badge) {\n display: inline;\n margin-right: var(--dss-spacing-xs) !important;\n }\n `,\n ];\n }\n set dssTabsId(value) {\n const oldValue = this._dssTabsId;\n this._dssTabsId = value;\n this.requestUpdate('dssTabsId', oldValue);\n }\n set label(value) {\n const oldValue = this._label;\n this._label = value;\n this.requestUpdate('selectedTab', oldValue);\n }\n set tabs(data) {\n const oldValue = this._tabs;\n this._tabs = data;\n this.requestUpdate('tabs', oldValue);\n }\n set addTabText(value) {\n const oldValue = this._addTabText;\n this._addTabText = value;\n this.requestUpdate('addTabText', oldValue);\n }\n set addTabEnabled(value) {\n const oldValue = this._addTabEnabled;\n this._addTabEnabled = value;\n this.requestUpdate('addTabEnabled', oldValue);\n }\n updated(changedProperties) {\n if (changedProperties.has('tabs')) {\n this.changeTabWatch();\n }\n }\n async changeTabWatch() {\n this._tabsElements = this.renderRoot.querySelectorAll(\"[role='tab']\");\n this._tabsElements.forEach(tab => {\n tab.addEventListener('keydown', event => {\n this._handleKeydown(event);\n });\n tab.addEventListener('click', event => {\n this.setSelectedTab(event.currentTarget);\n });\n });\n this.setFirstAndLastTabs();\n }\n setFirstAndLastTabs() {\n let firstDefined = false;\n this._tabsElements.forEach(tab => {\n if (!firstDefined) {\n this._firstTab = tab;\n firstDefined = true;\n }\n this._lastTab = tab;\n });\n }\n changeTab(selectedPanel) {\n const options = {\n detail: { selectedPanel },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onChangeDssTab', options));\n this.updatePanels(selectedPanel);\n }\n updatePanels(selectedPanel) {\n const dssPanels = window.document.querySelectorAll('dss-tabs-panel');\n dssPanels.forEach(panel => {\n const panelId = panel.getAttribute('panelId');\n const linkedTo = panel.getAttribute('linkedTo');\n if (linkedTo === this._dssTabsId) {\n if (panelId === selectedPanel) {\n panel.setAttribute('selected', 'true');\n }\n else {\n panel.removeAttribute('selected');\n }\n }\n });\n }\n _handleKeydown(event) {\n const keyboardEvent = event;\n const tgt = event.currentTarget;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowLeft':\n this.moveFocusToPreviousTab(tgt);\n flag = true;\n break;\n case 'ArrowRight':\n this.moveFocusToNextTab(tgt);\n flag = true;\n break;\n case 'Home':\n this.moveFocusToTab(this._firstTab);\n flag = true;\n break;\n case 'End':\n this.moveFocusToTab(this._lastTab);\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n // eslint-disable-next-line class-methods-use-this\n moveFocusToTab(currentTab) {\n if (currentTab) {\n currentTab.focus();\n }\n }\n moveFocusToPreviousTab(currentTab) {\n let index = 0;\n if (currentTab === this._firstTab) {\n this.moveFocusToTab(this._lastTab);\n }\n else {\n this._tabsElements.forEach((tab, i) => {\n if (tab === currentTab) {\n index = i;\n }\n });\n this.moveFocusToTab(this._tabsElements[index - 1]);\n }\n }\n moveFocusToNextTab(currentTab) {\n let index = 0;\n if (currentTab === this._lastTab) {\n this.moveFocusToTab(this._firstTab);\n }\n else {\n this._tabsElements.forEach((tab, i) => {\n if (tab === currentTab) {\n index = i;\n }\n });\n this.moveFocusToTab(this._tabsElements[index + 1]);\n }\n }\n setSelectedTab(currentTab) {\n for (let i = 0; i < this._tabsElements.length; i += 1) {\n const tab = this._tabsElements[i];\n if (currentTab === tab) {\n tab.setAttribute('aria-selected', 'true');\n tab.removeAttribute('tabindex');\n }\n else {\n tab.setAttribute('aria-selected', 'false');\n tab.setAttribute('tabindex', '-1');\n }\n }\n }\n addNewTab() {\n const options = {\n detail: {},\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onAddDssTab', options));\n }\n render() {\n return html `\n <div\n role=\"tablist\"\n aria-label=\"${this._label}\"\n class=\"dss-tabs-list__header\"\n >\n ${this._tabs.map(tab => html `\n <button\n id=\"${tab.id}\"\n class=\"dss-tabs-item\"\n type=\"button\"\n part=\"button\"\n role=\"tab\"\n aria-selected=\"${ifDefined(tab.selected ? tab.selected : 'false')}\"\n tabindex=\"${ifDefined(tab.selected ? 0 : -1)}\"\n @click=${() => this.changeTab(tab.panel)}\n >\n <slot name=\"badge-${tab.id}\" class=\"tab-badge\"></slot>\n <span class=\"tab-text focus\"> ${tab.text} </span>\n </button>\n `)}\n ${this._addTabEnabled\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary dss-button--icon-left dss-tabs-button\"\n @click=${this.addNewTab}\n >\n <span class=\"material-symbols-rounded\">add</span>${this\n ._addTabText}\n </button>\n `\n : null}\n </div>\n <div class=\"dss-tabs-list__content\">\n <slot></slot>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], TabsList.prototype, \"dssTabsId\", null);\n__decorate([\n property({ type: String })\n], TabsList.prototype, \"label\", null);\n__decorate([\n property({ type: Array })\n], TabsList.prototype, \"tabs\", null);\n__decorate([\n property({ type: String })\n], TabsList.prototype, \"addTabText\", null);\n__decorate([\n property({ type: Boolean })\n], TabsList.prototype, \"addTabEnabled\", null);\nTabsList = __decorate([\n customElement('dss-tabs-list')\n], TabsList);\nexport { TabsList };\n//# sourceMappingURL=tabs-list.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nlet TabsPanel = class TabsPanel extends LitElement {\n constructor() {\n super(...arguments);\n this._panelId = '';\n this._label = '';\n this._linkedTo = '';\n this._selected = false;\n }\n static get styles() {\n return css `\n :host {\n width: 100%;\n height: fit-content;\n }\n\n :not(:defined) {\n display: none;\n }\n\n [role='tabpanel'] {\n width: 100%;\n overflow: auto;\n display: none;\n }\n\n [role='tabpanel'].selected {\n display: block;\n }\n `;\n }\n set panelId(id) {\n const oldValue = this._panelId;\n this._panelId = id;\n this.requestUpdate('panelId', oldValue);\n }\n set label(value) {\n const oldValue = this._label;\n this._label = value;\n this.requestUpdate('label', oldValue);\n }\n set linkedTo(id) {\n const oldValue = this._linkedTo;\n this._linkedTo = id;\n this.requestUpdate('linkedTo', oldValue);\n }\n set selected(value) {\n const oldValue = this._selected;\n this._selected = value;\n this.requestUpdate('selected', oldValue);\n }\n render() {\n return html `\n <div\n id=\"${this._panelId}\"\n role=\"tabpanel\"\n aria-label=\"${this._label}\"\n linkedTo=\"${this._linkedTo}\"\n class=\"${this._selected ? 'selected' : 'is-hidden'}\"\n >\n <slot></slot>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], TabsPanel.prototype, \"panelId\", null);\n__decorate([\n property({ type: String })\n], TabsPanel.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], TabsPanel.prototype, \"linkedTo\", null);\n__decorate([\n property({ type: Boolean })\n], TabsPanel.prototype, \"selected\", null);\nTabsPanel = __decorate([\n customElement('dss-tabs-panel')\n], TabsPanel);\nexport { TabsPanel };\n//# sourceMappingURL=tabs-panel.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { inputStyles } from './shared-styles/input.style';\nimport { scrollbarStyles } from './shared-styles/scrollbar.style';\nimport { buttonStyles } from './shared-styles/button.style';\nlet Timepicker = class Timepicker extends LitElement {\n constructor() {\n super(...arguments);\n this._value = '';\n this._placeholder = '';\n this._inputSize = 'lg';\n this._dropdown = '';\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n this._invalid = false;\n this._showDropdown = false;\n this._helpText = '';\n this._oldHelpText = '';\n this._errorTimeFormatText = \"Format d'hora no vàlid\";\n this._errorTimeOptionText = 'Opció de temps no disponible';\n this._manualHourSelector = '';\n this._manualMinuteSelector = '';\n this._minutesRange = 1;\n this._minHour = 0;\n this._maxHour = 24;\n this._timeListOptions = [];\n this._customTimeListOptions = [];\n this._timeManualHourOptions = [];\n this._timeManualMinutesOptions = [];\n this._icon = 'schedule';\n this._inputValidity = true;\n this._isFirstUpdated = true;\n // Options for the observer (which mutations to observe)\n this.observerConfig = { attributes: true, childList: true, subtree: true };\n // Callback function to execute when mutations are observed\n this.callback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n this._checkInputAttributes();\n this.requestUpdate();\n }\n }\n };\n // Create an observer instance linked to the callback function\n this.observer = new MutationObserver(this.callback);\n this._timePattern = /^\\d{0,4}$/g;\n this._timeSeparator = ':';\n this._timeInputOldValue = '';\n }\n static get styles() {\n return [\n symbolStyles,\n inputStyles,\n scrollbarStyles,\n buttonStyles,\n css `\n .dss-timepicker {\n position: relative;\n }\n\n .dss-timepicker-help {\n font-family: var(--font-family);\n }\n\n .dss-timepicker-help {\n font-family: inherit;\n font-size: 12px;\n color: var(--color-neutral-700);\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n }\n\n .dss-timepicker-help--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-timepicker-help--invalid {\n color: var(--color-red-500);\n }\n\n .dss-timepicker-dropdown {\n display: none;\n margin-top: 8px;\n position: absolute;\n top: 52px;\n left: 0;\n background-color: var(--color-white);\n width: 100%;\n border-radius: var(--dss-radius-sm);\n box-shadow: 0 4px 8px 3px rgba(0 0 0 / 5%),\n 0 1px 3px rgba(0 0 0 / 10%);\n z-index: 900;\n overflow: hidden;\n }\n\n .dss-input-group--dropdown input {\n min-width: 289px;\n }\n\n .dss-timepicker-dropdown--manual {\n min-width: 289px;\n\n // justify-content: center;\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-timepicker-dropdown--open {\n display: block;\n }\n\n .dss-timepicker-dropdown--md {\n top: 44px;\n }\n\n .dss-timepicker-dropdown--lg {\n top: 52px;\n }\n\n .dss-timepicker-dropdown__container {\n overflow: auto;\n min-height: 70px;\n max-height: 280px;\n width: 100%;\n }\n\n .dss-timepicker-dropdown__option {\n cursor: pointer;\n position: relative;\n width: 100%;\n }\n\n .dss-timepicker-dropdown__label {\n width: 100%;\n height: 40px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n padding: var(--dss-spacing-xs) var(--dss-spacing-sm);\n font-size: 14px;\n color: var(--color-neutral-900);\n cursor: pointer;\n background-color: var(--color-white);\n }\n\n .dss-timepicker-dropdown__label:hover {\n background-color: var(--color-primary-600);\n color: var(--color-white);\n }\n\n .dss-timepicker-dropdown__label:active {\n background-color: var(--color-primary-400);\n color: var(--color-white);\n transition: background-color 0.3s;\n }\n\n .option--busy .dss-timepicker-dropdown__label {\n background-color: var(--color-red-50);\n }\n\n .option--busy .dss-timepicker-dropdown__label:hover {\n background-color: var(--color-red-600);\n }\n\n .option--busy .dss-timepicker-dropdown__label:active {\n background-color: var(--color-red-400);\n }\n\n .option--busy\n .dss-timepicker-dropdown__label\n .dss-timepicker-dropdown__icon {\n color: var(--color-neutral-900);\n }\n\n .dss-timepicker-dropdown__label:focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n .dss-timepicker-dropdown__label:disabled {\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-500);\n cursor: not-allowed;\n }\n\n .dss-timepicker-dropdown__input-radio {\n display: none;\n }\n\n .dss-timepicker-dropdown__input-radio:checked\n + .dss-timepicker-dropdown__icon {\n display: block;\n }\n\n .dss-timepicker-dropdown__icon {\n display: none;\n color: var(--color-primary-500);\n }\n\n .dss-timepicker-dropdown__label:hover .dss-timepicker-dropdown__icon {\n color: var(--color-white);\n }\n\n .dss-timepicker-dropdown__label:focus-visible {\n box-shadow: inset 0 0 0 var(--dss-border-width-lg)\n var(--color-primary-200);\n border-radius: var(--dss-radius-xs);\n outline: none;\n }\n\n .dss-timepicker-dropdown__manual {\n height: calc(220px - var(--dss-spacing-xs) - var(--dss-spacing-xs));\n display: flex;\n justify-content: center;\n gap: var(--dss-spacing-xs);\n overflow: hidden;\n padding: var(--dss-spacing-xs) 0;\n }\n\n .dss-timepicker-dropdown__items {\n box-sizing: border-box;\n height: 100%;\n width: 55px;\n overflow-y: auto;\n scrollbar-width: none;\n }\n\n .dss-timepicker-dropdown__items:hover {\n scrollbar-width: thin;\n }\n\n .dss-timepicker-dropdown__actions {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 64px;\n gap: 17px;\n border-top: var(--dss-border-width-sm) solid var(--color-neutral-200);\n }\n\n .dss-timepicker-manual-item {\n }\n\n .dss-timepicker-manual-item__label {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n font-weight: var(--font-semibold);\n font-size: 16px;\n color: var(--color-neutral-900);\n border-radius: var(--dss-radius-xs);\n background-color: var(--color-white);\n cursor: pointer;\n }\n\n .dss-timepicker-manual-item__label:focus-visible {\n box-shadow: inset 0 0 0 var(--dss-border-width-lg)\n var(--color-primary-200);\n border-radius: var(--dss-radius-xs);\n outline: none;\n }\n\n .dss-timepicker-manual-item__label:hover {\n color: var(--color-white);\n background-color: var(--color-primary-600);\n }\n\n .dss-timepicker-manual-item__label:active {\n color: var(--color-white);\n background-color: var(--color-primary-400);\n transition: background-color 0.3s;\n }\n\n .dss-timepicker-manual-item__input-radio {\n display: none;\n }\n\n .dss-timepicker-manual-item__input-radio:checked\n + .dss-timepicker-manual-item__label {\n color: var(--color-white);\n background-color: var(--color-primary-500);\n }\n `,\n ];\n }\n get _input() {\n var _a;\n const input = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"input\"]')) || undefined;\n this.requestUpdate();\n return input === null || input === void 0 ? void 0 : input.assignedElements()[0];\n }\n get _label() {\n var _a;\n const label = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"label\"]')) || undefined;\n this.requestUpdate();\n return label === null || label === void 0 ? void 0 : label.assignedElements()[0];\n }\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n if (this._input) {\n this._input.value = value;\n }\n this.requestUpdate('value', oldValue);\n }\n set invalid(invalid) {\n const oldValue = this._invalid;\n this._invalid = invalid;\n this.requestUpdate('invalid', oldValue);\n }\n set inputSize(size) {\n const oldValue = this._inputSize;\n if (size === 'md') {\n this._inputSize = size;\n }\n else {\n this._inputSize = 'lg';\n }\n this.requestUpdate('inputSize', oldValue);\n }\n set helpText(text) {\n const oldValue = this._helpText;\n this._helpText = text;\n this._oldHelpText = text;\n this.requestUpdate('helpText', oldValue);\n }\n set errorTimeFormatText(text) {\n const oldValue = this._errorTimeFormatText;\n this._errorTimeFormatText = text;\n this.requestUpdate('errorTimeFormatText', oldValue);\n }\n set errorTimeOptionText(text) {\n const oldValue = this._errorTimeOptionText;\n this._errorTimeOptionText = text;\n this.requestUpdate('errorTimeOptionText', oldValue);\n }\n set dropdown(value) {\n const oldValue = this._dropdown;\n this._dropdown = value;\n this.requestUpdate('dropdown', oldValue);\n }\n set showDropdown(state) {\n const oldValue = this._showDropdown;\n this._showDropdown = state;\n this.requestUpdate('showDropdown', oldValue);\n }\n set minutesRange(value) {\n const oldValue = this._minutesRange;\n this._minutesRange = value;\n if (!this._isFirstUpdated) {\n this._updateTimeOptions();\n }\n this.requestUpdate('minutesRange', oldValue);\n }\n set minHour(value) {\n const oldValue = this._minHour;\n this._minHour = value;\n if (!this._isFirstUpdated) {\n this._updateTimeOptions();\n }\n this.requestUpdate('minHour', oldValue);\n }\n set maxHour(value) {\n const oldValue = this._maxHour;\n this._maxHour = value;\n if (!this._isFirstUpdated) {\n this._updateTimeOptions();\n }\n this.requestUpdate('maxHour', oldValue);\n }\n set customTimeListOptions(options) {\n const oldValue = this._customTimeListOptions;\n this._customTimeListOptions = options;\n this.requestUpdate('customTimeListOptions', oldValue);\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._closeDropdown();\n if (this._input) {\n this._checkInputAttributes();\n // Start observing the target node for configured mutations\n this.observer.observe(this._input, this.observerConfig);\n }\n this._updateTimeOptions();\n this._isFirstUpdated = false;\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _updateTimeOptions() {\n if (this._dropdown) {\n // Generate List options\n this._timeListOptions = this._generateTimeListOptions();\n // Generate Manual options\n this._timeManualHourOptions = this._generateTimeManualHoursOptions();\n this._timeManualMinutesOptions = this._generateTimeManualMinutesOptions();\n }\n }\n _checkInputAttributes() {\n var _a, _b, _c, _d, _e, _f, _g;\n // Check slot input attributes (before this _input is null)\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (inputPlaceholder)\n this._placeholder = inputPlaceholder;\n const inputReadOnly = (_b = this._input) === null || _b === void 0 ? void 0 : _b.getAttribute('readonly');\n if (inputReadOnly !== null)\n this._readonly = true;\n const disabled = (_c = this._input) === null || _c === void 0 ? void 0 : _c.getAttribute('disabled');\n if (disabled !== null)\n this._disabled = true;\n const required = (_d = this._input) === null || _d === void 0 ? void 0 : _d.getAttribute('required');\n if (required !== null)\n this._required = true;\n const inputValue = (_e = this._input) === null || _e === void 0 ? void 0 : _e.getAttribute('value');\n if (inputValue !== null)\n this._value = inputValue;\n // const inputId = this._input?.getAttribute('id');\n // if (inputId) this._inputId = inputId;\n if (((_f = this._input) === null || _f === void 0 ? void 0 : _f.value) && ((_g = this._input) === null || _g === void 0 ? void 0 : _g.value) !== '') {\n this._handleValidity();\n }\n this.requestUpdate();\n }\n _handleValidity() {\n var _a;\n const validity = (_a = this._input) === null || _a === void 0 ? void 0 : _a.checkValidity();\n if (validity !== undefined)\n this._inputValidity = validity;\n }\n _closeDropdown() {\n // Click outside component\n document.addEventListener('click', event => {\n if (!event.composedPath().includes(this)) {\n if (this._showDropdown) {\n this._showDropdown = false;\n this.requestUpdate();\n }\n }\n });\n // Focusout inside component\n this.addEventListener('focusout', event => {\n // eslint-disable-next-line prefer-destructuring\n const relatedTarget = event.relatedTarget;\n if (relatedTarget !== null &&\n relatedTarget !== this &&\n relatedTarget !== this._input &&\n relatedTarget !== this._label) {\n if (this._showDropdown) {\n this._showDropdown = false;\n }\n this.requestUpdate();\n }\n });\n }\n // eslint-disable-next-line class-methods-use-this\n _timeMask(value, limit, separator) {\n const output = [];\n for (let i = 0; i < value.length; i += 1) {\n if (i !== 0 && i % limit === 0) {\n output.push(separator);\n }\n output.push(value[i]);\n }\n return output.join('');\n }\n // eslint-disable-next-line class-methods-use-this\n _timeUnmask(value) {\n return value.replace(/[^\\d]/g, '');\n }\n _timeValidate(value) {\n const hour = value.slice(0, 2);\n const minutes = value.slice(3, 5);\n if (this._input &&\n +hour >= 0 &&\n +hour <= 23 &&\n +minutes >= 0 &&\n +minutes <= 59) {\n this._invalid = false;\n this._helpText = this._oldHelpText;\n // If dropdown, check if time match with an option\n if (this._dropdown &&\n this._dropdown === 'list' &&\n !this._timeListOptions.includes(this._input.value)) {\n this._helpText = this._errorTimeOptionText;\n this._invalid = true;\n }\n else if (this._dropdown &&\n this._dropdown === 'manual' &&\n (!this._timeManualHourOptions.includes(hour) ||\n !this._timeManualMinutesOptions.includes(minutes))) {\n this._helpText = this._errorTimeOptionText;\n this._invalid = true;\n }\n else {\n this._showDropdown = false;\n }\n }\n else {\n this._helpText = this._errorTimeFormatText;\n this._invalid = true;\n }\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _dispatchValueChange() {\n if (this._input) {\n const options = {\n detail: {\n value: this._input.value,\n status: this._invalid ? 'INVALID' : 'VALID',\n },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onTimepickerChange', options));\n }\n }\n _handleClick() {\n this._showDropdown = true;\n // If value is already defined then scroll+check\n if (this._value) {\n if (this._dropdown && this._dropdown === 'list') {\n this._timeListOptionsScrollTo();\n }\n if (this._dropdown && this._dropdown === 'manual') {\n const predefinedHour = this._value.slice(0, 2);\n this._timeManualOptionsScrollTo(predefinedHour); // Check Hour\n setTimeout(() => {\n this._timeManualOptionsScrollTo(); // Check minutes\n }, 500);\n }\n }\n this.requestUpdate();\n }\n _handleInput() {\n if (this._input) {\n let newValue = this._input.value;\n newValue = this._timeUnmask(newValue);\n if (newValue.match(this._timePattern)) {\n newValue = this._timeMask(newValue, 2, this._timeSeparator);\n this._input.value = newValue;\n }\n else {\n this._input.value = this._timeInputOldValue;\n }\n if (this._input.value.length === 5) {\n this._timeValidate(this._input.value);\n this._handleValidity();\n }\n // If dropdown open try to scrollTo\n if (this._dropdown && this._dropdown === 'list') {\n this._timeListOptionsScrollTo();\n }\n if (this._dropdown && this._dropdown === 'manual') {\n this._timeManualOptionsScrollTo();\n }\n }\n }\n _handleKeyDown(e) {\n if (this._input) {\n // Store last value to apply mask again in _handleInput\n this._timeInputOldValue = this._input.value;\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter' || (e === null || e === void 0 ? void 0 : e.key) === ' ') {\n this._showDropdown = true;\n this.requestUpdate();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._showDropdown = false;\n this.requestUpdate();\n }\n }\n }\n _handleFocus() {\n this._placeholder = '00:00';\n if (this._input) {\n this._input.setAttribute('placeholder', this._placeholder);\n }\n this.requestUpdate();\n }\n _handleBlur() {\n this._placeholder = '';\n if (this._input) {\n this._input.removeAttribute('placeholder');\n }\n // this._showDropdown = false;\n this.requestUpdate();\n }\n _focusInput() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this._handleClick();\n }\n _generateTimeListOptions() {\n const options = [];\n for (let hour = this._minHour; hour < this._maxHour; hour += 1) {\n for (let min = 0; min < 60; min += this._minutesRange) {\n const hourStr = hour.toString().padStart(2, '0');\n const minStr = min.toString().padStart(2, '0');\n options.push(`${hourStr}:${minStr}`);\n }\n }\n return options;\n }\n _generateTimeListOptionsHTML(options, customOptions) {\n let isFirstOption = true;\n const isCustomList = customOptions && customOptions.length > 0;\n const iterableOptions = isCustomList\n ? customOptions\n : options;\n const output = iterableOptions.map(option => {\n const moveFocusToOption = (currentOption) => {\n if (currentOption) {\n currentOption.focus();\n }\n };\n const moveFocusToPreviousOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.dss-timepicker-dropdown__label');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[0]) {\n moveFocusToOption(availableOptions[lastIndex]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index - 1]);\n }\n };\n const moveFocusToNextOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll('.dss-timepicker-dropdown__label');\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[lastIndex]) {\n moveFocusToOption(availableOptions[0]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index + 1]);\n }\n };\n const onClickOption = (e) => {\n if (this._input) {\n // const clickPath = e.composedPath();\n // const clicked = (clickPath[0] as Element).getAttribute('value');\n const clicked = e.target.getAttribute('value');\n if (clicked) {\n this._input.value = clicked;\n this._helpText = this._oldHelpText;\n this._invalid = false;\n this._showDropdown = false;\n this._handleValidity();\n this.requestUpdate();\n this._dispatchValueChange();\n }\n }\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n moveFocusToPreviousOption(tgt);\n flag = true;\n break;\n case 'ArrowDown':\n moveFocusToNextOption(tgt);\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const optionInput = e.target.querySelector('input');\n // Change tabIndex from current to clicked\n const tabIndexOption = this.renderRoot.querySelector('.dss-timepicker-dropdown__label[tabindex=\"0\"]');\n tabIndexOption === null || tabIndexOption === void 0 ? void 0 : tabIndexOption.setAttribute('tabindex', '-1');\n e.target.setAttribute('tabindex', '0');\n optionInput === null || optionInput === void 0 ? void 0 : optionInput.click();\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const stateClass = {\n 'option--busy': typeof option === 'object' && option.state === 'ocupat',\n };\n const radioInput = html `\n <div class=\"dss-timepicker-dropdown__option ${classMap(stateClass)}\">\n <label\n class=\"dss-timepicker-dropdown__label\"\n tabindex=\"${isFirstOption ? 0 : -1}\"\n @keydown=${onKeyDown}\n >\n ${isCustomList && typeof option === 'object'\n ? option.value\n : option}\n\n <input\n class=\"dss-timepicker-dropdown__input-radio\"\n name=\"timeList\"\n type=\"radio\"\n @click=\"${onClickOption}\"\n .value=\"${isCustomList && typeof option === 'object'\n ? option.value\n : option}\"\n />\n <span class=\"dss-icon dss-icon--md dss-timepicker-dropdown__icon\"\n >check</span\n >\n </label>\n </div>\n `;\n isFirstOption = false;\n return radioInput;\n });\n return output;\n }\n _generateTimeManualHoursOptions() {\n const options = [];\n for (let hour = this._minHour; hour < this._maxHour; hour += 1) {\n const hourStr = hour.toString().padStart(2, '0');\n options.push(hourStr);\n }\n return options;\n }\n _generateTimeManualMinutesOptions() {\n const options = [];\n for (let min = 0; min < 60; min += this._minutesRange) {\n const minStr = min.toString().padStart(2, '0');\n options.push(minStr);\n }\n return options;\n }\n _generateTimeManualOptionsHTML(inputName, options) {\n let isFirstOption = true;\n const output = options.map(option => {\n const onClickOption = (e) => {\n const clicked = e.target.getAttribute('value');\n if (clicked) {\n if (inputName === 'timepickerManualHour') {\n this._manualHourSelector = clicked;\n }\n else if (inputName === 'timepickerManualMinutes') {\n this._manualMinuteSelector = clicked;\n }\n this.requestUpdate();\n }\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n const moveFocusToOption = (currentOption) => {\n if (currentOption) {\n currentOption.focus();\n }\n };\n const moveFocusToPreviousOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll(`.dss-timepicker-manual-item__label.${inputName}`);\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[0]) {\n moveFocusToOption(availableOptions[lastIndex]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index - 1]);\n }\n };\n const moveFocusToNextOption = (currentOption) => {\n let index = 0;\n const availableOptions = this.renderRoot.querySelectorAll(`.dss-timepicker-manual-item__label.${inputName}`);\n const lastIndex = availableOptions.length - 1;\n if (currentOption === availableOptions[lastIndex]) {\n moveFocusToOption(availableOptions[0]);\n }\n else {\n availableOptions.forEach((availableOption, i) => {\n if (availableOption === currentOption) {\n index = i;\n }\n });\n moveFocusToOption(availableOptions[index + 1]);\n }\n };\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n moveFocusToPreviousOption(tgt);\n flag = true;\n break;\n case 'ArrowDown':\n moveFocusToNextOption(tgt);\n flag = true;\n break;\n case 'Enter':\n const optionParent = e.target.parentElement;\n const optionInput = optionParent === null || optionParent === void 0 ? void 0 : optionParent.querySelector('input');\n // Change tabIndex from current to clicked\n const tabIndexOption = this.renderRoot.querySelector(`.dss-timepicker-manual-item__label[tabindex=\"0\"].${inputName}`);\n tabIndexOption === null || tabIndexOption === void 0 ? void 0 : tabIndexOption.setAttribute('tabindex', '-1');\n e.target.setAttribute('tabindex', '0');\n optionInput === null || optionInput === void 0 ? void 0 : optionInput.click();\n // If user enter on hour, focus to minutes\n if (inputName === 'timepickerManualHour') {\n const minuteOption = this.renderRoot.querySelector(`.dss-timepicker-manual-item__label[tabindex=\"0\"].timepickerManualMinutes`);\n moveFocusToOption(minuteOption);\n }\n else if (inputName === 'timepickerManualMinutes') {\n const selectButton = this.renderRoot.querySelector(`.dss-timepicker-dropdown__actions-select`);\n setTimeout(() => {\n selectButton.focus();\n }, 0);\n }\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const radioInput = html `\n <div class=\"dss-timepicker-manual-item\">\n <input\n id=\"${inputName + option}\"\n class=\"dss-timepicker-manual-item__input-radio\"\n name=\"${inputName}\"\n type=\"radio\"\n @click=\"${onClickOption}\"\n .value=\"${option}\"\n />\n <label\n for=\"${inputName + option}\"\n class=\"dss-timepicker-manual-item__label ${inputName}\"\n tabindex=\"${isFirstOption ? 0 : -1}\"\n @keydown=${onKeyDown}\n >\n ${option}\n </label>\n </div>\n `;\n isFirstOption = false;\n return radioInput;\n });\n return output;\n }\n _checkDisableTimeManualSelector() {\n return this._manualHourSelector === '' || this._manualMinuteSelector === '';\n }\n /* eslint no-param-reassign: \"off\" */\n _timeManualSelectorCancel() {\n const checkedOptions = this.renderRoot.querySelectorAll('.dss-timepicker-manual-item__input-radio:checked');\n if (checkedOptions.length) {\n checkedOptions.forEach(checkedOption => {\n checkedOption.checked = false;\n });\n }\n this._manualHourSelector = '';\n this._manualMinuteSelector = '';\n this._showDropdown = false;\n this._handleValidity();\n this.requestUpdate();\n }\n _timeManualSelectorAccept() {\n if (this._input) {\n this._input.value = `${this._manualHourSelector}:${this._manualMinuteSelector}`;\n this._helpText = this._oldHelpText;\n this._invalid = false;\n this._showDropdown = false;\n this._handleValidity();\n this.requestUpdate();\n this._dispatchValueChange();\n }\n }\n /* eslint no-param-reassign: \"off\" */\n _timeListOptionsScrollTo() {\n if (this._input) {\n const inputText = this._input.value.trim();\n const options = this.renderRoot.querySelectorAll('.dss-timepicker-dropdown__input-radio');\n let foundMatch = false;\n options.forEach(option => {\n const optionValue = option.value;\n if (!foundMatch && optionValue.startsWith(inputText)) {\n const label = option.closest('label');\n foundMatch = true;\n if (label) {\n setTimeout(() => {\n label.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'nearest',\n });\n }, 0);\n if (optionValue === inputText) {\n option.checked = true;\n }\n }\n }\n });\n }\n }\n _timeManualOptionsScrollTo(value) {\n if (this._input) {\n const inputText = value ? value.trim() : this._input.value.trim();\n if (inputText.length <= 2) {\n const options = this.renderRoot.querySelectorAll('.dss-timepicker-dropdown__items--hour .dss-timepicker-manual-item__label');\n // Scroll HOUR\n let foundMatch = false;\n options.forEach(option => {\n const optionValue = option.innerHTML\n .replace(/<!--[\\s\\S]*?-->/g, '')\n .trim();\n if (!foundMatch && optionValue.startsWith(inputText)) {\n foundMatch = true;\n setTimeout(() => {\n option.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'nearest',\n });\n }, 0);\n // If option value is equal then select option\n if (optionValue === inputText) {\n option.click();\n }\n }\n });\n }\n else {\n const minutesText = inputText.slice(3);\n const options = this.renderRoot.querySelectorAll('.dss-timepicker-dropdown__items--minute .dss-timepicker-manual-item__label');\n // Scroll HOUR\n let foundMatch = false;\n options.forEach(option => {\n const optionValue = option.innerHTML\n .replace(/<!--[\\s\\S]*?-->/g, '')\n .trim();\n if (!foundMatch && optionValue.startsWith(minutesText)) {\n foundMatch = true;\n option.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'nearest',\n });\n if (optionValue === minutesText) {\n option.click();\n }\n }\n });\n }\n }\n }\n render() {\n var _a;\n const inputGroupClass = {\n 'dss-input-group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) || this._placeholder,\n 'dss-input-group--lg': this._inputSize === 'lg',\n 'dss-input-group--md': this._inputSize === 'md',\n 'dss-input-group--dropdown': this._dropdown === 'manual',\n 'dss-input-group--invalid': this._invalid || !this._inputValidity,\n 'dss-input-group--required': this._required,\n 'dss-input-group--disabled': this._disabled,\n 'dss-input-group--read-only': this._readonly,\n };\n const helpClass = {\n 'dss-timepicker-help--invalid': this._invalid || !this._inputValidity,\n 'dss-timepicker-help--disabled': this._disabled,\n };\n const dropdownClass = {\n 'dss-timepicker-dropdown--open': this._showDropdown,\n 'dss-timepicker-dropdown--lg': this._inputSize === 'lg',\n 'dss-timepicker-dropdown--md': this._inputSize === 'md',\n };\n return html `\n <div class=\"dss-timepicker\">\n ${this._dropdown === ''\n ? html `\n <div\n class=\"dss-input-group dss-input-group--has-icon ${classMap(inputGroupClass)}\"\n >\n <span class=\"dss-icon dss-icon--md dss-input-icon\"\n >${this._icon}</span\n >\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @focusin=${this._handleFocus}\n @focusout=${this._handleBlur}\n @keydown=${this._handleKeyDown}\n ></slot>\n\n <slot name=\"label\" @click=${this._focusInput}></slot>\n </div>\n `\n : html `\n <div\n class=\"dss-input-group dss-input-group--has-icon ${classMap(inputGroupClass)}\"\n role=\"combobox\"\n aria-controls=\"timepicker-options\"\n aria-expanded=${ifDefined(this._showDropdown)}\n >\n <span class=\"dss-icon dss-icon--md dss-input-icon\"\n >${this._icon}</span\n >\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @focusin=${this._handleFocus}\n @focusout=${this._handleBlur}\n @keydown=${this._handleKeyDown}\n ></slot>\n\n <slot name=\"label\" @click=${this._focusInput}></slot>\n </div>\n `}\n ${this._helpText\n ? html `\n <div class=\"dss-timepicker-help ${classMap(helpClass)}\">\n ${this._helpText}\n </div>\n `\n : null}\n ${this._dropdown && this._dropdown === 'list'\n ? html `\n <div\n id=\"timepicker-options\"\n class=\"dss-timepicker-dropdown dss-timepicker-dropdown--list ${classMap(dropdownClass)}\"\n role=\"listbox\"\n aria-label=\"Timepicker Options\"\n >\n <div class=\"dss-timepicker-dropdown__container\">\n ${html `${this._generateTimeListOptionsHTML(this._timeListOptions, this._customTimeListOptions)}`}\n </div>\n </div>\n `\n : null}\n ${this._dropdown && this._dropdown === 'manual'\n ? html `\n <div\n id=\"timepicker-options\"\n class=\"dss-timepicker-dropdown dss-timepicker-dropdown--manual ${classMap(dropdownClass)}\"\n role=\"listbox\"\n aria-label=\"Timepicker Options\"\n >\n <div class=\"dss-timepicker-dropdown__manual\">\n <div\n class=\"dss-timepicker-dropdown__items dss-timepicker-dropdown__items--hour\"\n >\n ${this._generateTimeManualOptionsHTML('timepickerManualHour', this._timeManualHourOptions)}\n </div>\n <div\n class=\"dss-timepicker-dropdown__items dss-timepicker-dropdown__items--minute\"\n >\n ${this._generateTimeManualOptionsHTML('timepickerManualMinutes', this._timeManualMinutesOptions)}\n </div>\n </div>\n <div class=\"dss-timepicker-dropdown__actions\">\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary dss-timepicker-dropdown__actions-cancel\"\n @click=${this._timeManualSelectorCancel}\n >\n Cancel-lar\n </button>\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--primary dss-timepicker-dropdown__actions-select\"\n ?disabled=${this._checkDisableTimeManualSelector()}\n @click=${this._timeManualSelectorAccept}\n >\n Seleccionar\n </button>\n </div>\n </div>\n `\n : null}\n <div></div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String, attribute: true })\n], Timepicker.prototype, \"value\", null);\n__decorate([\n property({ type: Boolean })\n], Timepicker.prototype, \"invalid\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"inputSize\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"helpText\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"errorTimeFormatText\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"errorTimeOptionText\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"dropdown\", null);\n__decorate([\n property({ type: Boolean })\n], Timepicker.prototype, \"showDropdown\", null);\n__decorate([\n property({ type: Number })\n], Timepicker.prototype, \"minutesRange\", null);\n__decorate([\n property({ type: Number })\n], Timepicker.prototype, \"minHour\", null);\n__decorate([\n property({ type: Number })\n], Timepicker.prototype, \"maxHour\", null);\n__decorate([\n property({ type: Array })\n], Timepicker.prototype, \"customTimeListOptions\", null);\n__decorate([\n property({ type: String })\n], Timepicker.prototype, \"icon\", null);\nTimepicker = __decorate([\n customElement('dss-timepicker')\n], Timepicker);\nexport { Timepicker };\n//# sourceMappingURL=timepicker.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { inputStyles } from './shared-styles/input.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nlet Input = class Input extends LitElement {\n constructor() {\n super(...arguments);\n this._label = 'Label';\n this._icon = 'add_box';\n this._placeholder = '';\n this._inputSize = 'lg';\n this._maxLength = undefined;\n this._invalid = false;\n this._helpText = '';\n this._isFocused = false;\n this._isTypeNumeric = false;\n this._inputValidity = true;\n // Methods\n // Options for the observer (which mutations to observe)\n this.observerConfig = { attributes: true, childList: true, subtree: true };\n // Callback function to execute when mutations are observed\n this.callback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n this._checkInputAttributes();\n this.requestUpdate();\n }\n }\n };\n // Create an observer instance linked to the callback function\n this.observer = new MutationObserver(this.callback);\n }\n static get styles() {\n return [symbolStyles, inputStyles, iconButtonStyles, css ``];\n }\n // Properties\n get _input() {\n var _a;\n const input = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"input\"]')) || undefined;\n this.requestUpdate();\n return input === null || input === void 0 ? void 0 : input.assignedElements()[0];\n }\n set label(label) {\n const oldValue = this._label;\n this._label = label;\n this.requestUpdate('label', oldValue);\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n set inputSize(size) {\n const oldValue = this._inputSize;\n if (size === 'md') {\n this._inputSize = size;\n }\n else {\n this._inputSize = 'lg';\n }\n this.requestUpdate('inputSize', oldValue);\n }\n set helpText(text) {\n const oldValue = this._helpText;\n this._helpText = text;\n this.requestUpdate('helpText', oldValue);\n }\n set invalid(status) {\n const oldValue = this._invalid;\n this._invalid = status;\n this.requestUpdate('invalid', oldValue);\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n _handleClick() {\n this.requestUpdate();\n }\n _handleInput() {\n // Check number + maxlenght\n if (this._isTypeNumeric && this._maxLength && this._input) {\n this._input.value = this._input.value.slice(0, this._maxLength);\n }\n this._handleValidity();\n this.requestUpdate();\n }\n _handleFocusIn() {\n this._isFocused = true;\n this.requestUpdate();\n }\n _handleFocusOut() {\n this._isFocused = false;\n this.requestUpdate();\n }\n _focusInput() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n }\n _handleValidity() {\n var _a;\n // Check internal validity\n const validity = (_a = this._input) === null || _a === void 0 ? void 0 : _a.checkValidity();\n if (validity !== undefined)\n this._inputValidity = validity;\n }\n _stepUp() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.stepUp();\n this._handleValidity();\n // this._value = this._input?.value || '';\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _stepDown() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.stepDown();\n this._handleValidity();\n // this._value = this._input?.value || '';\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _dispatchValueChange() {\n if (this._input) {\n const options = {\n detail: this._input.value,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onInputChange', options));\n }\n }\n _checkInputAttributes() {\n var _a, _b, _c, _d, _e;\n // Check slot input attributes (before this _input is null)\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (inputPlaceholder)\n this._placeholder = inputPlaceholder;\n // Check type numeric\n if (((_b = this._input) === null || _b === void 0 ? void 0 : _b.getAttribute('type')) === 'number') {\n this._isTypeNumeric = true;\n }\n const maxlength = (_c = this._input) === null || _c === void 0 ? void 0 : _c.getAttribute('maxlength');\n this._maxLength = maxlength ? +maxlength : undefined;\n if (((_d = this._input) === null || _d === void 0 ? void 0 : _d.value) && ((_e = this._input) === null || _e === void 0 ? void 0 : _e.value) !== '') {\n this._handleValidity();\n }\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n if (this._input) {\n this._checkInputAttributes();\n // Start observing the target node for configured mutations\n this.observer.observe(this._input, this.observerConfig);\n }\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n render() {\n var _a, _b, _c, _d, _e, _f, _g;\n const inputGroupClass = {\n 'dss-input-group--invalid': this._invalid || !this._inputValidity,\n 'dss-input-group--disabled': (_a = this._input) === null || _a === void 0 ? void 0 : _a.disabled,\n 'dss-input-group--required': (_b = this._input) === null || _b === void 0 ? void 0 : _b.required,\n 'dss-input-group--read-only': (_c = this._input) === null || _c === void 0 ? void 0 : _c.readOnly,\n 'dss-input-group--focused': ((_d = this._input) === null || _d === void 0 ? void 0 : _d.value) || this._placeholder || this._isFocused,\n 'dss-input-group--lg': this._inputSize === 'lg',\n 'dss-input-group--md': this._inputSize === 'md',\n 'dss-input-group--numeric': this._isTypeNumeric,\n 'dss-input-group--has-icon': this._icon && this._icon !== '',\n };\n const helpClass = {\n 'dss-input-help--invalid': this._invalid,\n 'dss-input-help--disabled': (_e = this._input) === null || _e === void 0 ? void 0 : _e.disabled,\n };\n return html `\n <div class=\"dss-input-wrapper\">\n <div class=\"dss-input-group ${classMap(inputGroupClass)}\">\n ${this._icon\n ? html `\n <span class=\"dss-icon dss-icon--md dss-input-icon\">\n ${this._icon}\n </span>\n `\n : null}\n\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n ></slot>\n\n <slot name=\"label\" @click=${this._focusInput}></slot>\n\n ${this._isTypeNumeric\n ? html `\n <div class=\"dss-input__numeric-buttons\">\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary \"\n @click=${this._stepUp}\n ?disabled=${this._input.disabled || this._input.readOnly}\n tabindex=\"-1\"\n >\n <span class=\"dss-icon\">keyboard_arrow_up</span>\n </button>\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary\"\n @click=${this._stepDown}\n ?disabled=${this._input.disabled || this._input.readOnly}\n tabindex=\"-1\"\n >\n <span class=\"dss-icon\">keyboard_arrow_down</span>\n </button>\n </div>\n `\n : null}\n </div>\n ${this._helpText\n ? html `\n <div class=\"dss-input-help ${classMap(helpClass)}\">\n <span>${this._helpText}</span>\n ${this._maxLength\n ? html `<span>\n ${(_g = (_f = this._input) === null || _f === void 0 ? void 0 : _f.value) === null || _g === void 0 ? void 0 : _g.length}/${this._maxLength}\n </span>`\n : null}\n </div>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Input.prototype, \"label\", null);\n__decorate([\n property({ type: String })\n], Input.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], Input.prototype, \"inputSize\", null);\n__decorate([\n property({ type: String })\n], Input.prototype, \"helpText\", null);\n__decorate([\n property({ type: Boolean })\n], Input.prototype, \"invalid\", null);\nInput = __decorate([\n customElement('dss-input')\n], Input);\nexport { Input };\n//# sourceMappingURL=input.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { inputStyles } from './shared-styles/input.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nconst booleanType = {\n type: Boolean,\n converter: {\n fromAttribute: value => value !== 'false',\n toAttribute: value => (value ? '' : undefined),\n },\n};\nlet InputDropdown = class InputDropdown extends LitElement {\n constructor() {\n super(...arguments);\n this._elements = null;\n this._copyElements = null;\n this._tick = true;\n this._type = 'default';\n this._boxStyle = null;\n this._selectedValue = null;\n this._multiple = false;\n this._openWithSearch = false;\n this._deselectable = false;\n this._icon = 'search';\n // private _label: string = '';\n this._placeHolder = '';\n this._showDropdown = false;\n this._required = false;\n this._disabled = false;\n this._readonly = false;\n this._labelSelectAll = 'Seleccionar-ho tot';\n this._labelDeselectAll = 'Deseleccionar-ho tot';\n this._selectAll = false;\n this._selectElements = 0;\n this._isFocused = false;\n this._helpText = '';\n this._invalid = false;\n this._inputSize = 'lg';\n this._inputValidity = true;\n this._filteredElements = [];\n this._dropdownPlaceholder = 'Seleccionar';\n this._selectorStyle = '';\n // Options for the observer (which mutations to observe)\n this.observerConfig = { attributes: true, childList: true, subtree: true };\n // Callback function to execute when mutations are observed\n this.callback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n if (this._input) {\n this._checkInputAttributes();\n }\n this.requestUpdate();\n }\n }\n };\n // Create an observer instance linked to the callback function\n this.observer = new MutationObserver(this.callback);\n }\n static get styles() {\n return [\n symbolStyles,\n inputStyles,\n iconButtonStyles,\n css `\n .dss-wrapper {\n position: relative;\n }\n\n .dss-icon-button {\n position: absolute;\n top: 8px;\n right: var(--dss-spacing-xxs);\n z-index: 800;\n }\n\n .dss-selector {\n position: absolute;\n top: 52px;\n z-index: 900;\n width: 100%;\n }\n\n .dss-selector--md {\n top: 44px;\n }\n\n .dss-input-group__action-button--sm {\n top: var(--dss-spacing-sm);\n }\n `,\n ];\n }\n get _input() {\n var _a;\n const input = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"input\"]')) || undefined;\n this.requestUpdate();\n return input === null || input === void 0 ? void 0 : input.assignedElements()[0];\n }\n get _label() {\n var _a;\n const label = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"label\"]')) || undefined;\n this.requestUpdate();\n return label === null || label === void 0 ? void 0 : label.assignedElements()[0];\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n set placeHolder(placeHolder) {\n const oldValue = this._placeHolder;\n this._placeHolder = placeHolder;\n this.requestUpdate('placeHolder', oldValue);\n }\n set elements(elements) {\n const oldValue = this._elements;\n this._elements = elements;\n // Fix: move here from firstUpdate as we need to update items dynamically\n if (elements) {\n if (this._input) {\n this._input.value = ''; // reset input value if we get new elements\n }\n this._filteredElements = this._getFilteredElements();\n this._copyElements = JSON.parse(JSON.stringify(this._elements));\n // this._copyElements = this._elements;\n this._initElementsSelected();\n this.requestUpdate();\n }\n this.requestUpdate('elements', oldValue);\n }\n set multiple(multiple) {\n const oldValue = this._multiple;\n this._multiple = multiple;\n this.requestUpdate('multiple', oldValue);\n }\n set tick(tick) {\n const oldValue = this._tick;\n this._tick = tick;\n this.requestUpdate('tick', oldValue);\n }\n set openWithSearch(openWithSearch) {\n const oldValue = this._openWithSearch;\n this._openWithSearch = openWithSearch;\n if (openWithSearch) {\n this._showDropdown = openWithSearch;\n this._isFocused = true;\n }\n this.requestUpdate('openWithSearch', oldValue);\n }\n set showDropdown(state) {\n const oldValue = this._showDropdown;\n this._showDropdown = state;\n this.requestUpdate('showDropdown', oldValue);\n }\n set deselectable(deselectable) {\n const oldValue = this._deselectable;\n this._deselectable = deselectable;\n this.requestUpdate('deselectable', oldValue);\n }\n set selectedValue(elements) {\n const oldValue = this._selectedValue;\n if (elements)\n this._selectedValue = elements;\n if (this._elements && this._selectedValue) {\n if (this._selectedValue.length > 0) {\n this._isFocused = true;\n }\n this._initElementsSelected();\n }\n this.requestUpdate('selectedValue', oldValue);\n }\n set type(value) {\n const oldValue = this._type;\n if (value === 'default' || value === 'green')\n this._type = value;\n else\n this._type = 'default';\n this.requestUpdate('type', oldValue);\n }\n set boxStyle(boxStyle) {\n const oldValue = this._boxStyle;\n this._boxStyle = boxStyle;\n this.requestUpdate('boxStyle', oldValue);\n }\n set selectorStyle(style) {\n const oldValue = this._selectorStyle;\n this._selectorStyle = style;\n this.requestUpdate('selectorStyle', oldValue);\n }\n set labelSelectAll(labelSelectAll) {\n const oldValue = this._labelSelectAll;\n if (labelSelectAll !== '') {\n this._labelSelectAll = labelSelectAll;\n }\n this.requestUpdate('labelSelectAll', oldValue);\n }\n set labelDeselectAll(labelDeselectAll) {\n const oldValue = this._labelDeselectAll;\n if (labelDeselectAll !== '') {\n this._labelDeselectAll = labelDeselectAll;\n }\n this.requestUpdate('labelDeselectAll', oldValue);\n }\n set selectAll(selectAll) {\n const oldValue = this._selectAll;\n this._selectAll = selectAll;\n this.requestUpdate('selectAll', oldValue);\n }\n set invalid(invalid) {\n const oldValue = this._invalid;\n this._invalid = invalid;\n this.requestUpdate('invalid', oldValue);\n }\n set inputSize(size) {\n const oldValue = this._inputSize;\n if (size === 'md') {\n this._inputSize = size;\n }\n else {\n this._inputSize = 'lg';\n }\n this.requestUpdate('inputSize', oldValue);\n }\n set helpText(text) {\n const oldValue = this._helpText;\n this._helpText = text;\n // this._oldHelpText = text;\n this.requestUpdate('helpText', oldValue);\n }\n set dropdownPlaceholder(placeholder) {\n const oldValue = this._dropdownPlaceholder;\n this._dropdownPlaceholder = placeholder;\n this.requestUpdate('dropdownPlaceholder', oldValue);\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n // eslint-disable-next-line consistent-return\n _getFilteredElements() {\n var _a, _b;\n if (this._input && this._input.value) {\n const filter = (_a = this._input) === null || _a === void 0 ? void 0 : _a.value.toLowerCase();\n if (filter) {\n return (_b = this._elements) === null || _b === void 0 ? void 0 : _b.filter(element => element.label.toLowerCase().includes(filter));\n }\n }\n else {\n return this._elements;\n }\n }\n async firstUpdated() {\n var _a;\n try {\n await this.updateComplete;\n if (this._input) {\n // Start observing the target node for configured mutations\n this.observer.observe(this._input, this.observerConfig);\n this._checkInputAttributes();\n }\n // Init selector requirements\n if (this._elements) {\n this._filteredElements = this._getFilteredElements();\n // this._copyElements = JSON.parse(JSON.stringify(this._elements));\n this._copyElements = this._elements;\n this._initElementsSelected();\n }\n if (this._openWithSearch && this._input) {\n this._input.value = '';\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (!inputPlaceholder) {\n this._input.setAttribute('placeholder', this._dropdownPlaceholder);\n }\n }\n if (!this._openWithSearch && !this._disabled) {\n document.addEventListener('click', e => {\n this._clickedOutsideDropdown(this, e);\n });\n }\n this.requestUpdate();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _initElementsSelected() {\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n }\n _clickedOutsideDropdown(dropdown, event) {\n if (this._showDropdown) {\n if (!event.composedPath().includes(dropdown)) {\n // if (event.target !== dropdown && event.target !== this._input && event.target !== this._label) {\n if (this._input) {\n this._input.value = '';\n }\n this._initElementsSelected();\n if (!this._selectedValue || this._selectedValue.length <= 0) {\n this._filteredElements = this._getFilteredElements();\n }\n this._hidePlaceholder();\n this._showDropdown = false;\n this._isFocused = false;\n this.requestUpdate();\n }\n }\n }\n _handleInput() {\n this._filteredElements = this._getFilteredElements();\n this.requestUpdate();\n }\n _handleBlurEsc() {\n if (this._readonly || this._openWithSearch) {\n return;\n }\n this._isFocused = true;\n this._showDropdown = false;\n this.requestUpdate();\n }\n _handleBlurSelector(dropdown, event) {\n var _a;\n if (dropdown !== event.target) {\n if (this._openWithSearch) {\n return;\n }\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this._handleBlurEsc();\n this._showSelectValuesInInput(this._selectedValue ? this._selectedValue : []);\n }\n }\n _toggleDropdown() {\n var _a;\n if (this._showDropdown && this._input) {\n this._initElementsSelected();\n if (!this._selectedValue || this._selectedValue.length <= 0) {\n this._filteredElements = this._getFilteredElements();\n }\n }\n else if (!this._showDropdown && this._input) {\n this._input.value = '';\n this._showPlaceholder();\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n }\n this._showDropdown = !this._showDropdown;\n this.requestUpdate();\n }\n _handleKeyInput(e) {\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter') {\n this._showDropdown = true;\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._handleBlurEsc();\n }\n else {\n this._showDropdown = !this._showDropdown;\n }\n }\n _dispatchValueChange() {\n if (this._input) {\n const options = {\n detail: {\n inputValue: this._input.value,\n selectedValue: this._selectedValue,\n },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onInputDropdownChange', options));\n }\n }\n _onSelectorChanges(e) {\n const newValue = e.detail;\n this._selectedValue = typeof newValue === 'string' ? [e.detail] : e.detail;\n if (!this._multiple && !this._openWithSearch && !this._disabled) {\n this._showDropdown = false;\n this._initElementsSelected();\n this._handleValidity();\n }\n this._dispatchValueChange();\n this.requestUpdate();\n }\n _showSelectValuesInInput(e) {\n var _a, _b, _c, _d;\n if (!this._multiple && Array.isArray(e) && e.length > 1) {\n e.splice(1);\n }\n const matchingObjects = (_a = this._elements) === null || _a === void 0 ? void 0 : _a.filter(objeto => e.includes(objeto.value));\n this._elements = [...this._copyElements];\n if (!this._openWithSearch) {\n this._selectElements = (matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects.length)\n ? matchingObjects.length\n : 0;\n }\n else {\n this._selectElements = 0;\n }\n if (matchingObjects && matchingObjects.length > 0) {\n const sel = this._elements.filter(objeto => matchingObjects.includes(objeto));\n sel.push(...this._elements.filter(objeto => !matchingObjects.includes(objeto)));\n this._elements = [...sel];\n // Reset filtered elements\n this._filteredElements = this._elements;\n }\n if (!this._multiple && this._input) {\n this._input.value = (_c = (_b = matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects[0]) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : '';\n return;\n }\n const matchingValues = matchingObjects === null || matchingObjects === void 0 ? void 0 : matchingObjects.map(objeto => objeto.label);\n if (this._input) {\n this._input.value = (_d = matchingValues === null || matchingValues === void 0 ? void 0 : matchingValues.join(', ')) !== null && _d !== void 0 ? _d : '';\n }\n }\n _checkInputAttributes() {\n var _a, _b, _c, _d, _e, _f;\n // Check slot input attributes (before this _input is null)\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (inputPlaceholder)\n this._placeHolder = inputPlaceholder;\n const inputReadOnly = (_b = this._input) === null || _b === void 0 ? void 0 : _b.getAttribute('readonly');\n this._readonly = inputReadOnly !== null;\n const disabled = (_c = this._input) === null || _c === void 0 ? void 0 : _c.getAttribute('disabled');\n this._disabled = disabled !== null;\n const required = (_d = this._input) === null || _d === void 0 ? void 0 : _d.getAttribute('required');\n this._required = required !== null;\n if (((_e = this._input) === null || _e === void 0 ? void 0 : _e.value) && ((_f = this._input) === null || _f === void 0 ? void 0 : _f.value) !== '') {\n this._handleValidity();\n }\n this.requestUpdate();\n }\n _handleFocusIn() {\n this._isFocused = true;\n this.requestUpdate();\n }\n _handleFocusOut(event) {\n var _a, _b;\n // eslint-disable-next-line prefer-destructuring\n const relatedTarget = event.relatedTarget;\n // Fix MatDialog issue: check if the new focus target contains the component\n if (relatedTarget instanceof HTMLElement && relatedTarget.contains(this))\n return;\n const dssSelector = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('dss-selector');\n const dssButtonArrow = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.dss-input-group__action-button');\n if (relatedTarget !== null &&\n relatedTarget !== this._input &&\n relatedTarget !== dssSelector &&\n relatedTarget !== dssButtonArrow) {\n if (this._selectedValue) {\n this._initElementsSelected();\n }\n this._showDropdown = false;\n this._isFocused = false;\n this._hidePlaceholder();\n }\n this.requestUpdate();\n }\n _handleKeyDown(e) {\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter') {\n this._handleClick();\n this.requestUpdate();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._showDropdown = false;\n this._initElementsSelected();\n this._hidePlaceholder();\n this.requestUpdate();\n }\n }\n _handleClick() {\n if (!this._disabled && !this._readonly) {\n if (this._input) {\n if (!this._openWithSearch) {\n this._input.value = '';\n }\n this._showPlaceholder();\n }\n this._isFocused = true;\n this._showDropdown = true;\n this.requestUpdate();\n }\n }\n _focusInput() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n this._handleClick();\n }\n _showPlaceholder() {\n var _a;\n if (!this._placeHolder) {\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.setAttribute('placeholder', this._dropdownPlaceholder);\n }\n }\n _hidePlaceholder() {\n var _a;\n if (!this._placeHolder) {\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.removeAttribute('placeholder');\n }\n }\n _handleValidity() {\n var _a;\n const validity = (_a = this._input) === null || _a === void 0 ? void 0 : _a.checkValidity();\n if (validity !== undefined)\n this._inputValidity = validity;\n }\n _cleanInput() {\n if (this._input) {\n this._input.value = '';\n this._filteredElements = this._getFilteredElements();\n this.requestUpdate();\n }\n }\n render() {\n var _a, _b;\n const selectorContainerClass = {\n 'dss-selector': !this._openWithSearch,\n 'dss-selector--disabled': this._disabled,\n 'dss-selector-dropdown': true,\n 'dss-selector--md': !this._openWithSearch && this._inputSize === 'md',\n };\n const inputGroupClass = {\n 'dss-input-group--invalid': this._invalid || !this._inputValidity,\n 'dss-input-group--required': this._required,\n 'dss-input-group--disabled': this._disabled,\n 'dss-input-group--focused': ((_a = this._input) === null || _a === void 0 ? void 0 : _a.value) || this._placeHolder || this._isFocused,\n 'dss-input-group--lg': this._inputSize === 'lg',\n 'dss-input-group--md': this._inputSize === 'md',\n 'dss-input-group--dropdown': true,\n 'dss-input-group--read-only': this._readonly,\n 'dss-input-group--has-icon': this._icon && this._icon !== '',\n };\n const helpClass = {\n 'dss-input-help--invalid': this._invalid,\n 'dss-input-help--disabled': this._disabled,\n };\n return html ` <div class=\"dss-wrapper\" style=${ifDefined(this._boxStyle)}>\n <div\n class=\"dss-input-group dss-input-group--dropdown ${classMap(inputGroupClass)}\"\n role=\"combobox\"\n aria-controls=\"dropdown-options\"\n aria-expanded=${ifDefined(this._showDropdown)}\n >\n ${this._icon !== ''\n ? html `\n <span class=\"dss-icon dss-icon--md dss-input-icon\"\n >${this._icon}</span\n >\n `\n : null}\n\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n @keydown=${this._handleKeyDown}\n ></slot>\n\n <slot name=\"label\" @click=${this._focusInput}></slot>\n\n ${!this._openWithSearch\n ? html `\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md dss-input-group__action-button\"\n @click=${this._toggleDropdown}\n ?disabled=${this._disabled || this._readonly}\n tabindex=\"-1\"\n >\n <span class=\"dss-icon\"\n >${this._showDropdown\n ? 'keyboard_arrow_up'\n : 'keyboard_arrow_down'}</span\n >\n </button>\n `\n : html `\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--sm dss-input-group__action-button dss-input-group__action-button--sm\"\n @click=${this._cleanInput}\n ?disabled=${this._disabled || this._readonly}\n tabindex=\"-1\"\n >\n <span class=\"dss-icon\">close</span>\n </button>\n `}\n </div>\n\n ${this._helpText && !this._openWithSearch\n ? html `\n <div class=\"dss-input-help ${classMap(helpClass)}\">\n <span>${this._helpText}</span>\n </div>\n `\n : null}\n ${this._showDropdown && this._filteredElements\n ? html `\n <dss-selector\n class=\"${classMap(selectorContainerClass)}\"\n .multiple=${this._multiple}\n .tick=${this._tick}\n .deselectable=${this._deselectable}\n .disabled=${this._disabled}\n .elements=${this._filteredElements}\n .filtre=${(_b = this._input) === null || _b === void 0 ? void 0 : _b.value}\n .selectedValue=${this._selectedValue}\n .type=${this._type}\n .labelSelectAll=${this._labelSelectAll}\n .labelDeselectAll=${this._labelDeselectAll}\n .selectAll=${this._selectAll}\n elementsSelected=${this._selectElements}\n boxStyle=${this._selectorStyle}\n @onValueChange=\"${this._onSelectorChanges}\"\n @keydown=\"${(e) => {\n if (e.key === 'Escape')\n this._handleBlurSelector(this, e);\n }}\"\n @focusout=${this._handleFocusOut}\n >\n </dss-selector>\n `\n : null}\n </div>`;\n }\n};\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"placeHolder\", null);\n__decorate([\n property({ type: Array })\n], InputDropdown.prototype, \"elements\", null);\n__decorate([\n property(booleanType)\n], InputDropdown.prototype, \"multiple\", null);\n__decorate([\n property(booleanType)\n], InputDropdown.prototype, \"tick\", null);\n__decorate([\n property(booleanType)\n], InputDropdown.prototype, \"openWithSearch\", null);\n__decorate([\n property({ type: Boolean })\n], InputDropdown.prototype, \"showDropdown\", null);\n__decorate([\n property(booleanType)\n], InputDropdown.prototype, \"deselectable\", null);\n__decorate([\n property({ type: Array })\n], InputDropdown.prototype, \"selectedValue\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"boxStyle\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"selectorStyle\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"labelSelectAll\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"labelDeselectAll\", null);\n__decorate([\n property(booleanType)\n], InputDropdown.prototype, \"selectAll\", null);\n__decorate([\n property({ type: Boolean })\n], InputDropdown.prototype, \"invalid\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"inputSize\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"helpText\", null);\n__decorate([\n property({ type: String })\n], InputDropdown.prototype, \"dropdownPlaceholder\", null);\nInputDropdown = __decorate([\n customElement('dss-input-dropdown')\n], InputDropdown);\nexport { InputDropdown };\n//# sourceMappingURL=input-dropdown.js.map","import { css } from 'lit';\n// Badge Status variations\nexport const badgeStyles = css `\n .dss-badge--danger {\n background-color: var(--color-red-100);\n border-color: var(--color-red-100);\n color: var(--color-red-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--danger-low {\n background-color: var(--color-white);\n border-color: var(--color-red-500);\n color: var(--color-red-900);\n }\n\n .dss-badge--danger-high {\n background-color: var(--color-red-500);\n border-color: var(--color-red-500);\n color: var(--color-white);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--moderate {\n background-color: var(--color-orange-100);\n border-color: var(--color-orange-100);\n color: var(--color-orange-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--moderate-low {\n background-color: var(--color-white);\n border-color: var(--color-orange-500);\n color: var(--color-orange-900);\n }\n\n .dss-badge--moderate-high {\n background-color: var(--color-orange-500);\n border-color: var(--color-orange-500);\n color: var(--color-orange-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--slight {\n background-color: var(--color-yellow-100);\n border-color: var(--color-yellow-100);\n color: var(--color-yellow-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--slight-low {\n background-color: var(--color-white);\n border-color: var(--color-yellow-500);\n color: var(--color-yellow-900);\n }\n\n .dss-badge--slight-high {\n background-color: var(--color-yellow-500);\n border-color: var(--color-yellow-500);\n color: var(--color-yellow-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--correct {\n background-color: var(--color-green-100);\n border-color: var(--color-green-100);\n color: var(--color-green-900);\n font-variation-settings: 'FILL' 1;\n }\n\n .dss-badge--undeterminated {\n background-color: var(--color-neutral-100);\n border-color: var(--color-neutral-900);\n color: var(--color-neutral-900);\n }\n\n .dss-badge--critic {\n background-color: var(--color-red-500);\n border-color: var(--color-red-500);\n color: var(--color-white);\n }\n\n .dss-badge--critic-outlined {\n background-color: var(--color-red-50);\n border-color: var(--color-red-800);\n color: var(--color-red-800);\n }\n\n .dss-badge--alert {\n background-color: var(--color-yellow-500);\n border-color: var(--color-yellow-500);\n color: var(--color-black);\n }\n\n .dss-badge--alert-outlined {\n background-color: var(--color-yellow-50);\n border-color: var(--color-yellow-800);\n color: var(--color-yellow-800);\n }\n\n .dss-badge--ideal {\n background-color: var(--color-green-500);\n border-color: var(--color-green-500);\n color: var(--color-white);\n }\n\n .dss-badge--ideal-outlined {\n background-color: var(--color-green-50);\n border-color: var(--color-green-800);\n color: var(--color-green-800);\n }\n\n .dss-badge--info {\n background-color: var(--color-blue-500);\n border-color: var(--color-blue-500);\n color: var(--color-white);\n }\n\n .dss-badge--info-outlined {\n background-color: var(--color-blue-50);\n border-color: var(--color-blue-800);\n color: var(--color-blue-800);\n }\n\n .dss-badge--info-alt {\n background-color: var(--color-purple-500);\n border-color: var(--color-purple-500);\n color: var(--color-white);\n }\n\n .dss-badge--info-alt-outlined {\n background-color: var(--color-purple-50);\n border-color: var(--color-purple-800);\n color: var(--color-purple-800);\n }\n\n .dss-badge--neutral {\n background-color: var(--color-neutral-500);\n border-color: var(--color-neutral-500);\n color: var(--color-white);\n }\n\n .dss-badge--neutral-outlined {\n background-color: var(--color-neutral-50);\n border-color: var(--color-neutral-900);\n color: var(--color-neutral-900);\n }\n\n .dss-badge--disabled {\n cursor: not-allowed;\n border-color: var(--color-neutral-500);\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-500);\n }\n\n .dss-badge--dot {\n display: inline-block;\n padding: 0 !important;\n min-width: var(--dss-spacing-md);\n width: var(--dss-spacing-md);\n height: var(--dss-spacing-md);\n border-radius: 100%;\n margin: auto;\n width: 16px;\n height: 16px;\n }\n\n .dss-badge--dot > * {\n display: none;\n padding: 0;\n }\n\n .dss-badge--danger.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-red-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n width: 16px;\n height: 14px;\n background: url('data:image/svg+xml,<svg width=\"16\" height=\"14\" viewBox=\"0 0 16 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.56588 1.2675C7.75783 0.931588 8.24218 0.931588 8.43412 1.26749L14.7109 12.2519C14.9014 12.5853 14.6607 13 14.2768 13H1.72318C1.33927 13 1.09859 12.5853 1.28906 12.2519L7.56588 1.2675Z\" fill=\"%23F0C5C5\" stroke=\"%23651D1D\"/></svg>');\n }\n\n .dss-badge--danger-low.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-red-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n width: 16px;\n height: 14px;\n background: url('data:image/svg+xml,<svg width=\"16\" height=\"14\" viewBox=\"0 0 16 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.56588 1.2675C7.75783 0.931588 8.24218 0.931588 8.43412 1.26749L14.7109 12.2519C14.9014 12.5853 14.6607 13 14.2768 13H1.72318C1.33927 13 1.09859 12.5853 1.28906 12.2519L7.56588 1.2675Z\" fill=\"%23FFFFFF\" stroke=\"%23B60000\"/></svg>');\n }\n\n .dss-badge--danger-high.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-red-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n width: 16px;\n height: 14px;\n background: url('data:image/svg+xml,<svg width=\"16\" height=\"14\" viewBox=\"0 0 16 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.56588 1.2675C7.75783 0.931588 8.24218 0.931588 8.43412 1.26749L14.7109 12.2519C14.9014 12.5853 14.6607 13 14.2768 13H1.72318C1.33927 13 1.09859 12.5853 1.28906 12.2519L7.56588 1.2675Z\" fill=\"%23B60000\" stroke=\"%23651D1D\"/></svg>');\n }\n\n .dss-badge--moderate.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-orange-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n background: url('data:image/svg+xml, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.06066 8.35355C0.865398 8.15829 0.865397 7.84171 1.06066 7.64645L7.64645 1.06066C7.84171 0.865398 8.15829 0.865398 8.35355 1.06066L14.9393 7.64645C15.1346 7.84171 15.1346 8.15829 14.9393 8.35355L8.35355 14.9393C8.15829 15.1346 7.84171 15.1346 7.64645 14.9393L1.06066 8.35355Z\" fill=\"%23FFE1A6\" stroke=\"%23391B00\"/></svg>');\n }\n\n .dss-badge--moderate-low.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-orange-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n background: url('data:image/svg+xml, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.06066 8.35355C0.865398 8.15829 0.865397 7.84171 1.06066 7.64645L7.64645 1.06066C7.84171 0.865398 8.15829 0.865398 8.35355 1.06066L14.9393 7.64645C15.1346 7.84171 15.1346 8.15829 14.9393 8.35355L8.35355 14.9393C8.15829 15.1346 7.84171 15.1346 7.64645 14.9393L1.06066 8.35355Z\" fill=\"%23FFFFFF\" stroke=\"%23391B00\"/></svg>');\n }\n\n .dss-badge--moderate-high.dss-badge--dot {\n border: 0;\n box-shadow: inset 0 0 0 var(--dss-border-width-sm) var(--color-orange-900);\n border-radius: 0;\n box-shadow: none;\n background-repeat: no-repeat;\n background: url('data:image/svg+xml, <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.06066 8.35355C0.865398 8.15829 0.865397 7.84171 1.06066 7.64645L7.64645 1.06066C7.84171 0.865398 8.15829 0.865398 8.35355 1.06066L14.9393 7.64645C15.1346 7.84171 15.1346 8.15829 14.9393 8.35355L8.35355 14.9393C8.15829 15.1346 7.84171 15.1346 7.64645 14.9393L1.06066 8.35355Z\" fill=\"%23FDB322\" stroke=\"%23391B00\"/></svg>');\n }\n\n .dss-badge--slight.dss-badge--dot {\n border-color: var(--color-yellow-900);\n }\n\n .dss-badge--slight-low.dss-badge--dot {\n border-color: var(--color-yellow-900);\n }\n\n .dss-badge--slight-high.dss-badge--dot {\n border-color: var(--color-yellow-900);\n }\n\n .dss-badge--correct.dss-badge--dot {\n border-color: var(--color-green-900);\n }\n\n .dss-badge--undeterminated.dss-badge--dot {\n border-color: var(--color-neutral-900);\n }\n`;\n//# sourceMappingURL=badge.style.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { badgeStyles } from './shared-styles/badge.style';\nlet IconBadge = class IconBadge extends LitElement {\n constructor() {\n super(...arguments);\n this._icon = 'warning';\n this._size = 'sm';\n this._state = '';\n this._disabled = false;\n this._isIconDefined = false;\n this._outlined = false;\n this._bubble = false;\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n .dss-wrapper {\n position: relative;\n }\n\n .dss-icon-badge {\n cursor: default;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 20px;\n width: 20px;\n border: var(--dss-border-width-sm) solid var(--color-neutral-500);\n padding: var(--dss-spacing-tiny);\n border-radius: var(--dss-radius-xs);\n font-size: 16px;\n color: var(--color-neutral-500);\n background-color: var(--color-white);\n }\n\n .dss-icon-badge--bubble {\n border-radius: var(--dss-radius-full);\n }\n\n .dss-icon-badge--sm {\n }\n\n .dss-icon-badge--md {\n height: 24px;\n width: 32px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n }\n\n .dss-icon-badge--lg {\n height: 32px;\n width: 40px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n border-radius: var(--dss-radius-sm);\n font-size: 24px;\n }\n\n .dss-icon-badge--xl {\n height: 40px;\n width: 40px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n border-radius: var(--dss-radius-sm);\n font-size: 24px;\n }\n\n ::slotted(dss-tooltip) {\n display: none;\n }\n\n .dss-icon-badge:hover + ::slotted(dss-tooltip) {\n display: block;\n }\n `,\n badgeStyles, // Fix: Last position to override default icon badge style\n ];\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this._isIconDefined = true;\n this.requestUpdate('icon', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n set state(state) {\n const oldValue = this._state;\n this._state = state;\n // Set icons\n if (state && !this._isIconDefined) {\n if (state.includes('danger')) {\n this._icon = 'warning';\n }\n else if (state.includes('moderate')) {\n this._icon = 'emergency_home';\n }\n else if (state.includes('slight')) {\n this._icon = 'error';\n }\n else if (state.includes('correct')) {\n this._icon = 'check_circle';\n }\n else if (state.includes('undeterminated')) {\n this._icon = 'circle';\n }\n else if (state.includes('critic')) {\n this._icon = 'cancel';\n }\n else if (state.includes('alert')) {\n this._icon = 'report';\n }\n else if (state.includes('ideal')) {\n this._icon = 'check_circle';\n }\n else if (state.includes('info')) {\n this._icon = 'info';\n }\n else if (state.includes('neutral')) {\n this._icon = 'circle';\n }\n }\n this.requestUpdate('state', oldValue);\n }\n set disabled(value) {\n const oldValue = this._disabled;\n this._disabled = value;\n this.requestUpdate('disabled', oldValue);\n }\n set outlined(value) {\n const oldValue = this._outlined;\n this._outlined = value;\n this.requestUpdate('outlined', oldValue);\n }\n set bubble(value) {\n const oldValue = this._bubble;\n this._bubble = value;\n this.requestUpdate('bubble', oldValue);\n }\n render() {\n const badgeClassMap = {\n 'dss-icon-badge--xl': this._size === 'xl',\n 'dss-icon-badge--lg': this._size === 'lg',\n 'dss-icon-badge--md': this._size === 'md',\n 'dss-icon-badge--sm': this._size === 'sm',\n 'dss-badge--danger': this._state === 'danger',\n 'dss-badge--danger-low': this._state === 'danger-low',\n 'dss-badge--danger-high': this._state === 'danger-high',\n 'dss-badge--moderate': this._state === 'moderate',\n 'dss-badge--moderate-low': this._state === 'moderate-low',\n 'dss-badge--moderate-high': this._state === 'moderate-high',\n 'dss-badge--slight': this._state === 'slight',\n 'dss-badge--slight-low': this._state === 'slight-low',\n 'dss-badge--slight-high': this._state === 'slight-high',\n 'dss-badge--correct': this._state === 'correct',\n 'dss-badge--undeterminated': this._state === 'undeterminated',\n 'dss-badge--critic': this._state === 'critic' && !this._outlined,\n 'dss-badge--critic-outlined': this._state === 'critic' && this._outlined,\n 'dss-badge--alert': this._state === 'alert' && !this._outlined,\n 'dss-badge--alert-outlined': this._state === 'alert' && this._outlined,\n 'dss-badge--ideal': this._state === 'ideal' && !this._outlined,\n 'dss-badge--ideal-outlined': this._state === 'ideal' && this._outlined,\n 'dss-badge--info': this._state === 'info' && !this._outlined,\n 'dss-badge--info-outlined': this._state === 'info' && this._outlined,\n 'dss-badge--info-alt': this._state === 'info-alt' && !this._outlined,\n 'dss-badge--info-alt-outlined': this._state === 'info-alt' && this._outlined,\n 'dss-badge--neutral': this._state === 'neutral' && !this._outlined,\n 'dss-badge--neutral-outlined': this._state === 'neutral' && this._outlined,\n 'dss-badge--disabled': this._disabled,\n 'dss-icon-badge--bubble': this._bubble,\n };\n return html `\n <div class=\"dss-wrapper\">\n <span class=\"dss-icon-badge dss-icon ${classMap(badgeClassMap)}\">\n ${this._icon}\n </span>\n <slot name=\"tooltip\"></slot>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], IconBadge.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], IconBadge.prototype, \"size\", null);\n__decorate([\n property({ type: String })\n], IconBadge.prototype, \"state\", null);\n__decorate([\n property({ type: Boolean })\n], IconBadge.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], IconBadge.prototype, \"outlined\", null);\n__decorate([\n property({ type: Boolean })\n], IconBadge.prototype, \"bubble\", null);\nIconBadge = __decorate([\n customElement('dss-icon-badge')\n], IconBadge);\nexport { IconBadge };\n//# sourceMappingURL=icon-badge.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { badgeStyles } from './shared-styles/badge.style';\nlet Badge = class Badge extends LitElement {\n constructor() {\n super(...arguments);\n this._icon = 'warning';\n this._size = 'sm';\n this._text = '';\n this._state = '';\n this._disabled = false;\n this._isIconDefined = false;\n this._outlined = false;\n this._dot = false;\n this._hideIcon = false;\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n .dss-wrapper {\n position: relative;\n }\n\n .dss-badge {\n width: fit-content;\n height: fit-content;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: var(--font-semibold);\n font-size: 12px;\n line-height: 16px;\n border: var(--dss-border-width-sm) solid var(--color-neutral-500);\n }\n .dss-badge .dss-badge__icon {\n font-size: 16px;\n font-variation-settings: inherit;\n }\n\n .dss-badge--dot {\n display: inline-block;\n padding: 0;\n min-width: var(--dss-spacing-md);\n width: var(--dss-spacing-md);\n height: var(--dss-spacing-md);\n border-radius: 100%;\n margin: auto;\n }\n\n .dss-badge--dot > * {\n display: none;\n padding: 0;\n }\n\n .dss-badge--sm {\n padding: 0 var(--dss-spacing-xs);\n border-radius: var(--dss-radius-xs);\n }\n\n .dss-badge--sm > :not(span) {\n display: none;\n }\n\n .dss-badge--sm .dss-badge__icon {\n display: none;\n }\n\n .dss-badge--md {\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n border-radius: var(--dss-radius-xs);\n }\n\n .dss-badge--md:has(.dss-badge__icon) {\n padding-left: var(--dss-spacing-xs);\n }\n\n .dss-badge--md:has(.dss-badge__icon) .dss-badge__text {\n margin-left: var(--dss-spacing-xs);\n }\n\n .dss-badge--md:has(.dss-icon-button) {\n padding-right: var(--dss-spacing-tiny);\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .dss-badge--md:has(.dss-icon-button) .dss-badge__text {\n margin-right: var(--dss-spacing-tiny);\n }\n\n .dss-badge--lg {\n font-size: 14px;\n line-height: 24px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-md);\n border-radius: var(--dss-radius-sm);\n }\n\n .dss-badge--lg:has(.dss-badge__icon) {\n padding-left: var(--dss-spacing-sm);\n }\n\n .dss-badge--lg:has(.dss-badge__icon) .dss-badge__text {\n margin-left: var(--dss-spacing-xs);\n }\n\n .dss-badge--lg:has(.dss-icon-button) {\n padding-right: var(--dss-spacing-xxs);\n }\n\n .dss-badge--lg:has(.dss-icon-button) .dss-badge__text {\n margin-right: var(--dss-spacing-xs);\n }\n\n ::slotted(dss-tooltip) {\n display: none;\n }\n\n .dss-badge:hover + ::slotted(dss-tooltip) {\n display: block;\n }\n `,\n badgeStyles, // Fix: Last position to override default icon badge style\n ];\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this._isIconDefined = true;\n this.requestUpdate('icon', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n set text(text) {\n const oldValue = this._text;\n this._text = text;\n this.requestUpdate('text', oldValue);\n }\n set state(state) {\n const oldValue = this._state;\n this._state = state;\n // Set icons\n if (state && !this._isIconDefined) {\n if (state.includes('danger')) {\n this._icon = 'warning';\n }\n else if (state.includes('moderate')) {\n this._icon = 'emergency_home';\n }\n else if (state.includes('slight')) {\n this._icon = 'error';\n }\n else if (state.includes('correct')) {\n this._icon = 'check_circle';\n }\n else if (state.includes('undeterminated')) {\n this._icon = 'circle';\n }\n else if (state.includes('critic')) {\n this._icon = 'cancel';\n }\n else if (state.includes('alert')) {\n this._icon = 'report';\n }\n else if (state.includes('ideal')) {\n this._icon = 'check_circle';\n }\n else if (state.includes('info')) {\n this._icon = 'info';\n }\n else if (state.includes('neutral')) {\n this._icon = 'circle';\n }\n }\n this.requestUpdate('state', oldValue);\n }\n set disabled(value) {\n const oldValue = this._disabled;\n this._disabled = value;\n this.requestUpdate('disabled', oldValue);\n }\n set outlined(value) {\n const oldValue = this._outlined;\n this._outlined = value;\n this.requestUpdate('outlined', oldValue);\n }\n set dot(value) {\n const oldValue = this._dot;\n this._dot = value;\n this.requestUpdate('dot', oldValue);\n }\n set hideIcon(value) {\n const oldValue = this._hideIcon;\n this._hideIcon = value;\n this.requestUpdate('hideIcon', oldValue);\n }\n render() {\n const badgeClassMap = {\n 'dss-badge--lg': this._size === 'lg',\n 'dss-badge--md': this._size === 'md',\n 'dss-badge--sm': this._size === 'sm',\n 'dss-badge--danger': this._state === 'danger',\n 'dss-badge--danger-low': this._state === 'danger-low',\n 'dss-badge--danger-high': this._state === 'danger-high',\n 'dss-badge--moderate': this._state === 'moderate',\n 'dss-badge--moderate-low': this._state === 'moderate-low',\n 'dss-badge--moderate-high': this._state === 'moderate-high',\n 'dss-badge--slight': this._state === 'slight',\n 'dss-badge--slight-low': this._state === 'slight-low',\n 'dss-badge--slight-high': this._state === 'slight-high',\n 'dss-badge--correct': this._state === 'correct',\n 'dss-badge--undeterminated': this._state === 'undeterminated',\n 'dss-badge--critic': this._state === 'critic' && !this._outlined,\n 'dss-badge--critic-outlined': this._state === 'critic' && this._outlined,\n 'dss-badge--alert': this._state === 'alert' && !this._outlined,\n 'dss-badge--alert-outlined': this._state === 'alert' && this._outlined,\n 'dss-badge--ideal': this._state === 'ideal' && !this._outlined,\n 'dss-badge--ideal-outlined': this._state === 'ideal' && this._outlined,\n 'dss-badge--info': this._state === 'info' && !this._outlined,\n 'dss-badge--info-outlined': this._state === 'info' && this._outlined,\n 'dss-badge--info-alt': this._state === 'info-alt' && !this._outlined,\n 'dss-badge--info-alt-outlined': this._state === 'info-alt' && this._outlined,\n 'dss-badge--neutral': this._state === 'neutral' && !this._outlined,\n 'dss-badge--neutral-outlined': this._state === 'neutral' && this._outlined,\n 'dss-badge--disabled': this._disabled,\n 'dss-badge--dot': this._dot,\n };\n return html `\n <div class=\"dss-wrapper\">\n <div class=\"dss-badge ${classMap(badgeClassMap)}\">\n ${this._hideIcon\n ? null\n : html `\n <span class=\"dss-icon dss-badge__icon\">${this._icon}</span>\n `}\n <span class=\"dss-badge__text\">${this._text}</span>\n </div>\n <slot name=\"tooltip\"></slot>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Badge.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], Badge.prototype, \"size\", null);\n__decorate([\n property({ type: String })\n], Badge.prototype, \"text\", null);\n__decorate([\n property({ type: String })\n], Badge.prototype, \"state\", null);\n__decorate([\n property({ type: Boolean })\n], Badge.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], Badge.prototype, \"outlined\", null);\n__decorate([\n property({ type: Boolean })\n], Badge.prototype, \"dot\", null);\n__decorate([\n property({ type: Boolean })\n], Badge.prototype, \"hideIcon\", null);\nBadge = __decorate([\n customElement('dss-badge')\n], Badge);\nexport { Badge };\n//# sourceMappingURL=badge.js.map","import { css } from 'lit';\n// Scrollbar variations\nexport const chipStyles = css `\n .dss-chip {\n box-sizing: border-box;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n font-size: 14px;\n font-weight: var(--font-semibold);\n border-radius: var(--dss-radius-xl);\n border: var(--dss-border-width-sm) solid var(--color-primary-700);\n color: var(--color-primary-700);\n display: flex;\n align-items: center;\n line-height: var(--line-24);\n background-color: var(--color-white);\n transition: 0.3s all ease-in;\n gap: var(--dss-spacing-xxs);\n cursor: default;\n width: fit-content;\n height: 32px;\n overflow: hidden;\n text-wrap: nowrap;\n }\n\n .dss-chip__icon {\n font-size: 16px;\n }\n\n .dss-chip.disabled {\n cursor: not-allowed;\n outline: none;\n border-color: var(--color-neutral-500);\n color: var(--color-neutral-500);\n background-color: var(--color-white);\n }\n\n .dss-chip.disabled .dss-chip__icon-button {\n pointer-events: none;\n color: var(--color-neutral-500);\n }\n\n .dss-chip.dss-chip--sm {\n height: 24px;\n font-size: 12px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n line-height: var(--line-16);\n gap: var(--dss-spacing-xxs);\n }\n\n .dss-chip.dss-chip--sm:has(.dss-chip__icon-button) {\n padding-right: var(--dss-spacing-xxs);\n }\n\n .dss-chip.dss-chip--sm:has(.dss-chip__icon) {\n padding-left: var(--dss-spacing-xxs);\n }\n\n .dss-chip.dss-chip--selected,\n .dss-chip.dss-chip--active {\n box-shadow: none;\n background-color: var(--color-primary-100);\n }\n\n .dss-chip.dss-chip--selected.disabled,\n .dss-chip.dss-chip--active.disabled {\n background-color: var(--color-white);\n }\n\n .dss-chip:not(.disabled):focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n transition: none;\n box-shadow: none;\n }\n\n .dss-chip:not(.disabled):hover {\n box-shadow: none;\n background-color: var(--color-primary-50);\n }\n\n .dss-chip:not(.disabled):active {\n background-color: var(--color-primary-50);\n transition: none;\n }\n\n .dss-chip:has(.dss-chip__icon-button) {\n padding-right: var(--dss-spacing-xs);\n }\n\n .dss-chip:has(.dss-chip__icon) {\n padding-left: var(--dss-spacing-sm);\n }\n`;\n//# sourceMappingURL=chip.style.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nimport { chipStyles } from './shared-styles/chip.style';\nlet SearchBar = class SearchBar extends LitElement {\n constructor() {\n super(...arguments);\n this._multiple = false;\n this._icon = 'search';\n this._placeholder = 'Escriu per cercar';\n this._inputSize = 'lg';\n this._invalid = false;\n this._helpText = '';\n this._isFocused = false;\n this._showClearButton = false;\n this._threshold = 3;\n this._searchTerms = [];\n this._catalog = [];\n this._filteredCatalog = [];\n this._showDropdown = false;\n this._isCatalogLoading = false;\n this._emptyDropdownText = 'Sense resultats per';\n this._recentSearches = false;\n this._recentSearchesText = 'Últimes cerques';\n this._dropdownStyle = '';\n this._searchboxStyle = '';\n this._showAllChips = false;\n // Options for the observer (which mutations to observe)\n this.observerConfig = { attributes: true, childList: true, subtree: true };\n // Callback function to execute when mutations are observed\n this.callback = (mutationList) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'attributes') {\n this.requestUpdate();\n }\n }\n };\n // Create an observer instance linked to the callback function\n this.observer = new MutationObserver(this.callback);\n }\n static get styles() {\n return [\n iconButtonStyles,\n chipStyles,\n symbolStyles,\n css `\n :host {\n width: 100%;\n }\n\n .dss-search {\n position: relative;\n }\n\n .dss-search-bar {\n position: relative;\n display: grid;\n grid-template-columns: 30px 1fr;\n min-height: 48px;\n height: auto;\n width: 100%;\n box-sizing: border-box;\n padding: var(--dss-spacing-sm);\n padding-right: calc(\n (var(--dss-spacing-sm) * 2) + var(--icon-size-md)\n );\n background-color: var(--color-white);\n border-radius: var(--dss-radius-sm);\n border: var(--dss-border-width-sm) solid var(--color-neutral-100);\n font-size: 14px;\n font-family: inherit;\n }\n\n .dss-search-bar--md {\n min-height: 40px;\n padding-top: var(--dss-spacing-tiny);\n padding-bottom: var(--dss-spacing-tiny);\n }\n\n .dss-search-bar--focused {\n border-color: var(--color-blue-200);\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n .dss-search-bar--read-only {\n border-top: 0;\n border-left: 0;\n border-right: 0;\n border-radius: 0;\n }\n\n .dss-search-bar--invalid {\n background-color: var(--color-red-50);\n border-color: var(--color-red-500);\n }\n\n .dss-search-bar--disabled {\n cursor: not-allowed;\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-500);\n }\n\n .dss-search-bar__icon {\n color: var(--color-neutral-700);\n box-sizing: border-box;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n }\n\n .dss-search-bar--default .dss-search-bar__container {\n display: block;\n }\n\n .dss-search-bar--md.dss-search-bar--default\n .dss-search-bar__container\n ::slotted(input) {\n min-height: 40px;\n }\n\n .dss-search-bar--multiple .dss-search-bar__container {\n display: grid;\n grid-template-columns: auto minmax(min-content, 1fr);\n gap: var(--dss-spacing-xs);\n }\n\n .dss-search-bar--multiple .dss-search-bar__chips {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n\n .dss-search-bar__chips .dss-chip {\n display: inline-flex;\n }\n\n .dss-search-bar__input {\n min-width: 200px;\n }\n\n ::slotted(label) {\n display: none;\n visibility: hidden;\n width: 0;\n }\n\n ::slotted(input) {\n height: 100%;\n width: 100%;\n margin: 0;\n border: 0;\n border-radius: 0;\n color: var(--color-neutral-900);\n box-sizing: border-box;\n background-color: transparent;\n }\n\n ::slotted(input:focus-visible) {\n outline: 0;\n }\n\n .dss-search-bar__clear {\n display: none;\n position: absolute;\n top: 0;\n right: var(--dss-spacing-sm);\n height: 100%;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n }\n\n .dss-search-bar--has-value:not(.dss-search-bar--disabled):not(\n .dss-search-bar--read-only\n )\n .dss-search-bar__clear {\n display: flex;\n }\n\n .dss-search-help {\n display: flex;\n justify-content: space-between;\n font-family: var(--font-family);\n font-size: 12px;\n color: var(--color-neutral-700);\n padding: var(--dss-spacing-xxs) var(--dss-spacing-sm);\n }\n\n .dss-search-bar--invalid + .dss-search-help {\n color: var(--color-red-500);\n }\n\n .dss-search-dropdown {\n margin-top: 8px;\n position: absolute;\n top: 52px;\n left: 0;\n background-color: var(--color-white);\n width: 100%;\n border-radius: var(--dss-radius-sm);\n box-shadow: 0 4px 8px 3px rgba(0 0 0 / 5%),\n 0 1px 3px rgba(0 0 0 / 10%);\n z-index: 800;\n overflow: hidden;\n }\n\n .dss-search-catalog--empty {\n height: 150px;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--dss-spacing-xs);\n color: var(--color-blue-800);\n }\n\n .dss-search-catalog--empty .text {\n font-size: 14px;\n }\n\n .dss-catalog-item {\n box-sizing: border-box;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: var(--dss-spacing-sm) var(--dss-spacing-md);\n gap: var(--dss-spacing-xs);\n cursor: pointer;\n }\n\n .dss-catalog-item:hover {\n background-color: var(--color-neutral-50);\n }\n\n .dss-catalog-item--selected {\n background-color: var(--color-primary-50);\n }\n\n .dss-catalog-item:focus-visible {\n border: var(--dss-border-width-lg) solid var(--color-blue-200);\n outline: 0;\n }\n\n .dss-search-title {\n padding: var(--dss-spacing-sm) var(--dss-spacing-md) 0;\n font-weight: var(--font-semibold);\n font-size: 14px;\n color: var(--color-black);\n }\n\n .dss-catalog-item__icon {\n color: var(--color-neutral-900);\n }\n\n .dss-catalog-item__text {\n color: var(--color-neutral-900);\n font-size: 16px;\n }\n\n .dss-search-bar:not(.dss-search-bar--show-chips)\n .dss-search-bar__chips\n .dss-chip.dss-chip--hide {\n display: none;\n }\n\n .dss-search-bar__chips .dss-chip__counter {\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n font-weight: var(--font-semibold);\n border-radius: var(--dss-radius-xl);\n border: var(--dss-border-width-sm) solid var(--color-primary-700);\n box-shadow: none;\n background-color: var(--color-primary-100);\n transition: 0.3s all ease-in;\n height: 24px;\n font-size: 12px;\n padding: var(--dss-spacing-xxs) var(--dss-spacing-xs);\n line-height: var(--line-16);\n }\n\n .dss-search-bar__chips .dss-chip__counter:hover {\n background-color: var(--color-primary-50);\n }\n\n .dss-chip__tooltip {\n display: none;\n }\n\n .dss-chip__tooltip-item {\n margin-right: var(--dss-spacing-xxs);\n }\n\n .dss-chip__tooltip-item:not(:last-child)::after {\n content: ',';\n }\n\n .dss-search-bar__chips .dss-chip__counter:hover .dss-chip__tooltip {\n display: block;\n }\n `,\n ];\n }\n get _input() {\n var _a;\n const input = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"input\"]')) || undefined;\n this.requestUpdate();\n return input === null || input === void 0 ? void 0 : input.assignedElements()[0];\n }\n set multiple(value) {\n const oldValue = this._multiple;\n this._multiple = value;\n this.requestUpdate('multiple', oldValue);\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n set inputSize(size) {\n const oldValue = this._inputSize;\n if (size === 'md') {\n this._inputSize = size;\n }\n else {\n this._inputSize = 'lg';\n }\n this.requestUpdate('inputSize', oldValue);\n }\n set helpText(text) {\n const oldValue = this._helpText;\n this._helpText = text;\n this.requestUpdate('helpText', oldValue);\n }\n set invalid(status) {\n const oldValue = this._invalid;\n if (status) {\n this._invalid = status;\n }\n else {\n this._invalid = this._inputValidity ? status : true;\n }\n this.requestUpdate('invalid', oldValue);\n }\n set threshold(value) {\n const oldValue = this._threshold;\n this._threshold = value;\n this.requestUpdate('threshold', oldValue);\n }\n set searchTerms(data) {\n const oldValue = this._searchTerms;\n this._searchTerms = data;\n this.requestUpdate('searchTerms', oldValue);\n }\n set catalog(data) {\n const oldValue = this._catalog;\n this._catalog = data;\n this.requestUpdate('catalog', oldValue);\n }\n set emptyDropdownText(text) {\n const oldValue = this._emptyDropdownText;\n this._emptyDropdownText = text;\n this.requestUpdate('emptyDropdownText', oldValue);\n }\n set recentSearchesText(text) {\n const oldValue = this._recentSearchesText;\n this._recentSearchesText = text;\n this.requestUpdate('recentSearchesText', oldValue);\n }\n set recentSearches(value) {\n const oldValue = this._recentSearches;\n this._recentSearches = value;\n this.requestUpdate('recentSearches', oldValue);\n }\n set isCatalogLoading(value) {\n const oldValue = this._isCatalogLoading;\n this._isCatalogLoading = value;\n this.requestUpdate('isCatalogLoading', oldValue);\n }\n set dropdownStyle(style) {\n const oldValue = this._dropdownStyle;\n this._dropdownStyle = style;\n this.requestUpdate('dropdownStyle', oldValue);\n }\n _getSearchStyle() {\n const searchBarItems = this.renderRoot.querySelectorAll('.dss-search-bar');\n const searchBarBox = searchBarItems[0];\n return `top: ${searchBarBox.offsetHeight + 4}px; ${this._dropdownStyle}`;\n }\n get _inputValidity() {\n var _a;\n if (this._input && this._input.value !== '') {\n return (_a = this._input) === null || _a === void 0 ? void 0 : _a.checkValidity();\n // eslint-disable-next-line no-else-return\n }\n else {\n return true;\n }\n }\n _handleClick() {\n this.requestUpdate();\n }\n _handleInput() {\n let currentSearch = this._input.value;\n const searchLength = currentSearch.length;\n if (searchLength >= this._threshold) {\n this._showDropdown = true;\n this._filteredCatalog = this._getFilterCatalog(currentSearch);\n if (this._multiple) {\n if (currentSearch.endsWith(',')) {\n currentSearch = currentSearch.slice(0, -1);\n this._searchTerms.push(currentSearch);\n this._input.value = '';\n if (this._searchTerms.length) {\n this._dispatchSearchChange();\n }\n }\n }\n this._searchboxStyle = this._getSearchStyle();\n this.requestUpdate();\n }\n else {\n this._hideDropdown();\n }\n this.requestUpdate();\n }\n _handleFocusIn() {\n this._isFocused = true;\n this._showClearButton = true;\n this.requestUpdate();\n }\n _handleFocusOut() {\n this._isFocused = false;\n this._showClearButton = false;\n this.requestUpdate();\n }\n _handleKeyDown(e) {\n if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter') {\n this._showDropdown = true;\n if (!this._multiple && this._input.value !== '') {\n this._searchTerms = [];\n this._searchTerms.push(this._input.value);\n this._dispatchSearchChange();\n this._showDropdown = false;\n }\n this._searchboxStyle = this._getSearchStyle();\n }\n else if ((e === null || e === void 0 ? void 0 : e.key) === 'Escape') {\n this._showDropdown = false;\n }\n this.requestUpdate();\n }\n _focusInput() {\n var _a;\n (_a = this._input) === null || _a === void 0 ? void 0 : _a.focus();\n }\n _clearSearch() {\n if (this._input) {\n this._input.value = '';\n this._input.focus();\n }\n this._searchTerms = [];\n this._dispatchSearchChange();\n this._hideDropdown();\n this.requestUpdate();\n }\n _hideDropdown() {\n this._showDropdown = false;\n this._filteredCatalog = [];\n }\n _getFilterCatalog(filter) {\n return this._catalog.filter(item => item.value.toLowerCase().includes(filter.toLowerCase()));\n }\n _generateSearchChips() {\n let chipsCounter = 0;\n const output = this._searchTerms.map(term => {\n var _a, _b, _c, _d, _e;\n const onClickOption = (e) => {\n const termClicked = e.target.getAttribute('term');\n this._searchTerms = this._searchTerms.filter(item => item !== termClicked);\n this._dispatchSearchChange();\n this.requestUpdate();\n };\n chipsCounter += 1;\n const chipClass = {\n disabled: ((_a = this._input) === null || _a === void 0 ? void 0 : _a.disabled) || ((_b = this._input) === null || _b === void 0 ? void 0 : _b.readOnly),\n 'dss-chip--selected': !((_c = this._input) === null || _c === void 0 ? void 0 : _c.disabled) && !((_d = this._input) === null || _d === void 0 ? void 0 : _d.readOnly),\n 'dss-chip--hide': chipsCounter > 5,\n };\n const chip = html `\n <span tabindex=\"0\" class=\"dss-chip dss-chip--sm ${classMap(chipClass)}\">\n ${term}\n <button\n class=\"dss-chip__icon-button dss-icon-button dss-icon-button--primary dss-icon-button--sm\"\n ?disabled=${(_e = this._input) === null || _e === void 0 ? void 0 : _e.disabled}\n @click=\"${onClickOption}\"\n >\n <span class=\"dss-icon\" term=\"${term}\">cancel</span>\n </button>\n </span>\n `;\n return chip;\n });\n return output;\n }\n _generateFilterCatalog() {\n let isFirstItem = true;\n const output = this._filteredCatalog.map(item => {\n const onClickOption = (e) => {\n const clicked = e.target.getAttribute('value');\n if (clicked) {\n if (this._multiple) {\n const found = this._searchTerms.includes(clicked);\n if (!found) {\n this._searchTerms.push(clicked);\n }\n else {\n this._searchTerms = this._searchTerms.filter(term => term !== clicked);\n }\n }\n else {\n this._input.value = clicked;\n this._showDropdown = false;\n this._searchTerms = [];\n this._searchTerms.push(clicked);\n }\n this.requestUpdate();\n this._dispatchSearchChange();\n }\n };\n const moveFocusToOption = (currentItem) => {\n if (currentItem) {\n currentItem.focus();\n }\n };\n const moveFocusToPreviousOption = (currentItem) => {\n let index = 0;\n const availableItems = this.renderRoot.querySelectorAll('.dss-catalog-item');\n const lastIndex = availableItems.length - 1;\n if (currentItem === availableItems[0]) {\n moveFocusToOption(availableItems[lastIndex]);\n }\n else {\n availableItems.forEach((availableItem, i) => {\n if (availableItem === currentItem) {\n index = i;\n }\n });\n moveFocusToOption(availableItems[index - 1]);\n }\n };\n const moveFocusToNextOption = (currentItem) => {\n let index = 0;\n const availableItems = this.renderRoot.querySelectorAll('.dss-catalog-item');\n const lastIndex = availableItems.length - 1;\n if (currentItem === availableItems[lastIndex]) {\n moveFocusToOption(availableItems[0]);\n }\n else {\n availableItems.forEach((availableItem, i) => {\n if (availableItem === currentItem) {\n index = i;\n }\n });\n moveFocusToOption(availableItems[index + 1]);\n }\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n moveFocusToPreviousOption(tgt);\n flag = true;\n break;\n case 'ArrowDown':\n moveFocusToNextOption(tgt);\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const itemElement = e.target;\n const tabIndexItem = this.renderRoot.querySelector('.dss-catalog-item[tabindex=\"0\"]');\n tabIndexItem === null || tabIndexItem === void 0 ? void 0 : tabIndexItem.setAttribute('tabindex', '-1');\n e.target.setAttribute('tabindex', '0');\n itemElement.click();\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const itemClass = {\n 'dss-catalog-item--selected': this._searchTerms.includes(item.value),\n // 'disabled': this._input?.disabled,\n // 'dss-chip--selected': !this._input?.disabled,\n };\n const itemHtml = html `\n <div\n class=\"dss-catalog-item ${classMap(itemClass)}\"\n value=\"${item.value}\"\n tabindex=\"${isFirstItem ? 0 : -1}\"\n @click=\"${onClickOption}\"\n @keydown=${onKeyDown}\n >\n ${item.icon\n ? html `\n <span\n class=\"dss-icon dss-icon--md dss-catalog-item__icon\"\n value=\"${item.value}\"\n >${item.icon}</span\n >\n `\n : null}\n <span class=\"dss-catalog-item__text\" value=\"${item.value}\"\n >${item.value}</span\n >\n </div>\n `;\n isFirstItem = false;\n return itemHtml;\n });\n return output;\n }\n _dispatchSearchChange() {\n const options = {\n detail: this._searchTerms,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onSearchChange', options));\n }\n _closeDropdown() {\n // Click outside component\n document.addEventListener('click', event => {\n if (event.target !== this && event.target !== this._input) {\n this._showDropdown = false;\n this.requestUpdate();\n }\n });\n // Focus out component\n document.addEventListener('focusout', event => {\n // eslint-disable-next-line prefer-destructuring\n const relatedTarget = event.relatedTarget;\n if (relatedTarget !== null &&\n relatedTarget !== this &&\n relatedTarget !== this._input) {\n this._showDropdown = false;\n this.requestUpdate();\n }\n });\n }\n disconnectedCallback() {\n this.observer.disconnect();\n }\n async firstUpdated() {\n var _a, _b;\n try {\n await this.updateComplete;\n if (this._input) {\n // Start observing the target node for configured mutations\n this.observer.observe(this._input, this.observerConfig);\n const inputPlaceholder = (_a = this._input) === null || _a === void 0 ? void 0 : _a.getAttribute('placeholder');\n if (!inputPlaceholder)\n (_b = this._input) === null || _b === void 0 ? void 0 : _b.setAttribute('placeholder', this._placeholder);\n this._closeDropdown();\n this._searchboxStyle = this._getSearchStyle();\n this.requestUpdate();\n }\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n render() {\n var _a, _b, _c, _d;\n const searchBarClass = {\n 'dss-search-bar--invalid': this._invalid || !this._inputValidity,\n 'dss-search-bar--disabled': (_a = this._input) === null || _a === void 0 ? void 0 : _a.disabled,\n 'dss-search-bar--required': (_b = this._input) === null || _b === void 0 ? void 0 : _b.required,\n 'dss-search-bar--read-only': (_c = this._input) === null || _c === void 0 ? void 0 : _c.readOnly,\n 'dss-search-bar--focused': this._isFocused,\n 'dss-search-bar--default': !this._multiple,\n 'dss-search-bar--multiple': this._multiple,\n 'dss-search-bar--show-chips': this._showAllChips,\n 'dss-search-bar--md': this._inputSize === 'md',\n 'dss-search-bar--has-value': this._showClearButton ||\n ((_d = this._input) === null || _d === void 0 ? void 0 : _d.value) ||\n this._searchTerms.length > 0,\n };\n const helpClass = {\n // 'dss-input-help--invalid': this._invalid,\n // 'dss-input-help--disabled': this._disabled,\n };\n const dropdownClass = {\n // 'dss-timepicker-dropdown--open': this._showDropdown,\n // 'dss-timepicker-dropdown--lg': this._inputSize === 'lg',\n // 'dss-timepicker-dropdown--md': this._inputSize === 'md',\n };\n return html `\n <div class=\"dss-search\">\n <div\n class=\"dss-search-bar ${classMap(searchBarClass)}\"\n role=\"combobox\"\n aria-controls=\"search-catalog\"\n aria-expanded=${ifDefined(this._showDropdown)}\n >\n <div class=\"dss-search-bar__icon\">\n <span class=\"dss-icon dss-icon--md \" @click=${this._focusInput}>\n ${this._icon}\n </span>\n </div>\n\n <div class=\"dss-search-bar__container\">\n ${this._multiple\n ? html `\n <div class=\"dss-search-bar__chips\">\n ${html `${this._generateSearchChips()}`}\n ${!this._showAllChips && this._searchTerms.length > 5\n ? html `\n <div class=\"dss-chip__counter\">\n +${this._searchTerms.length - 5}\n <dss-tooltip\n class=\"dss-chip__tooltip\"\n position=\"bottom\"\n align=\"left\"\n noHeightLimit\n >\n ${this._searchTerms\n .slice(5, this._searchTerms.length)\n .map(term => html `<span class=\"dss-chip__tooltip-item\">\n ${term}\n </span>`)}\n </dss-tooltip>\n </div>\n `\n : null}\n </div>\n `\n : null}\n\n <div class=\"dss-search-bar__input\">\n <slot name=\"label\" @click=${this._focusInput}></slot>\n <slot\n name=\"input\"\n @click=${this._handleClick}\n @input=${this._handleInput}\n @keydown=${this._handleKeyDown}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n ></slot>\n </div>\n </div>\n\n <div class=\"dss-search-bar__clear\">\n <button\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md\"\n @click=\"${this._clearSearch}\"\n >\n <span class=\"dss-icon\">cancel</span>\n </button>\n </div>\n </div>\n\n ${this._helpText\n ? html `\n <div class=\"dss-search-help ${classMap(helpClass)}\">\n <span>${this._helpText}</span>\n </div>\n `\n : null}\n ${this._showDropdown &&\n this._catalog &&\n this._input.value.length >= this._threshold\n ? html `\n <div\n id=\"search-catalog\"\n class=\"dss-search-dropdown ${classMap(dropdownClass)}\"\n style=${ifDefined(this._searchboxStyle)}\n role=\"listbox\"\n aria-label=\"Search Catalog\"\n >\n ${this._isCatalogLoading\n ? html `\n <div class=\"dss-search-catalog--empty\">\n <dss-spinner size=\"md\"></dss-spinner>\n </div>\n `\n : html `\n ${this._filteredCatalog.length > 0\n ? html `\n ${this._recentSearches\n ? html `\n <div class=\"dss-search-title\">\n ${this._recentSearchesText}\n </div>\n `\n : null}\n <div class=\"dss-search-catalog\">\n ${html `${this._generateFilterCatalog()}`}\n </div>\n `\n : html `\n <div\n class=\"dss-search-catalog dss-search-catalog--empty\"\n >\n <span class=\"dss-icon dss-icon--sm\">info</span>\n <span class=\"text\">\n ${this._emptyDropdownText}: ${this._input.value}\n </span>\n </div>\n `}\n `}\n </div>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], SearchBar.prototype, \"multiple\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"inputSize\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"helpText\", null);\n__decorate([\n property({ type: Boolean })\n], SearchBar.prototype, \"invalid\", null);\n__decorate([\n property({ type: Number })\n], SearchBar.prototype, \"threshold\", null);\n__decorate([\n property({ type: (Array) })\n], SearchBar.prototype, \"searchTerms\", null);\n__decorate([\n property({ type: (Array) })\n], SearchBar.prototype, \"catalog\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"emptyDropdownText\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"recentSearchesText\", null);\n__decorate([\n property({ type: Boolean })\n], SearchBar.prototype, \"recentSearches\", null);\n__decorate([\n property({ type: Boolean })\n], SearchBar.prototype, \"isCatalogLoading\", null);\n__decorate([\n property({ type: String })\n], SearchBar.prototype, \"dropdownStyle\", null);\nSearchBar = __decorate([\n customElement('dss-search-bar')\n], SearchBar);\nexport { SearchBar };\n//# sourceMappingURL=search-bar.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { buttonStyles } from './shared-styles/button.style';\nlet SplitButton = class SplitButton extends LitElement {\n constructor() {\n super(...arguments);\n this._iconClose = 'expand_more';\n this._iconOpen = 'expand_less';\n this._type = 'primary';\n this._text = '';\n this._disabled = false;\n this._isOpen = false;\n }\n static get styles() {\n return [\n symbolStyles,\n buttonStyles,\n css `\n .dss-split-button {\n display: flex;\n justify-content: center;\n align-items;\n width: fit-content;\n }\n\n .dss-split-button .dss-split-button-main:focus-visible,\n .dss-split-button .dss-split-button-icon:focus-visible {\n z-index: 900;\n }\n\n .dss-split-button-main {\n height: 40px;\n padding-top: var(--dss-spacing-xs);\n padding-right: var(--dss-spacing-sm);\n padding-bottom: var(--dss-spacing-xs);\n padding-left: var(--dss-spacing-lg);\n box-sizing: border-box;\n border-radius: 0;\n border-top-left-radius: var(--dss-radius-xl);\n border-bottom-left-radius: var(--dss-radius-xl);\n }\n\n .dss-split-button--primary .dss-split-button-main {\n border-right: var(--dss-border-width-sm) solid var(--color-white);\n }\n\n .dss-split-button--primary .dss-split-button-main:focus-visible {\n border-right: transparent;\n }\n\n .dss-split-button--primary.dss-split-button--disabled .dss-split-button-main {\n border-right: var(--dss-border-width-sm) solid var(--color-neutral-500);\n }\n\n .dss-split-button-icon {\n height: 40px;\n padding-top: var(--dss-spacing-xs);\n padding-right: var(--dss-spacing-md);\n padding-bottom: var(--dss-spacing-xs);\n padding-left: var(--dss-spacing-xs);\n box-sizing: border-box;\n border-radius: 0;\n border-top-right-radius: var(--dss-radius-xl);\n border-bottom-right-radius: var(--dss-radius-xl);\n border-left: 0;\n }\n\n .dss-split-button-icon:hover:enabled {\n border-left: 0;\n }\n\n .dss-split-button--open.dss-split-button--primary .dss-split-button-icon:not(:disabled) {\n background-color: var(--color-primary-700);\n }\n\n .dss-split-button--open.dss-split-button--secondary .dss-split-button-icon:not(:disabled) {\n background-color: var(--color-primary-100);\n }\n \n `,\n ];\n }\n set iconClose(icon) {\n const oldValue = this._iconClose;\n this._iconClose = icon;\n this.requestUpdate('iconClose', oldValue);\n }\n set iconOpen(icon) {\n const oldValue = this._iconOpen;\n this._iconOpen = icon;\n this.requestUpdate('iconOpen', oldValue);\n }\n set type(value) {\n const oldValue = this._type;\n this._type = value;\n this.requestUpdate('type', oldValue);\n }\n set text(value) {\n const oldValue = this._text;\n this._text = value;\n this.requestUpdate('text', oldValue);\n }\n set disabled(value) {\n const oldValue = this._disabled;\n this._disabled = value;\n this.requestUpdate('disabled', oldValue);\n }\n set isOpen(value) {\n const oldValue = this._isOpen;\n this._isOpen = value;\n this.requestUpdate('disabled', oldValue);\n }\n _dispatchMainClick() {\n const options = {\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onSplitButtonMainClick', options));\n }\n _dispatchIconClick() {\n const options = {\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onSplitButtonIconClick', options));\n }\n render() {\n const splitButtonClassMap = {\n 'dss-split-button--primary': this._type === 'primary',\n 'dss-split-button--secondary': this._type === 'secondary',\n 'dss-split-button--open': this._isOpen,\n 'dss-split-button--disabled': this._disabled,\n };\n const innerButtonClassMap = {\n 'dss-button--primary': this._type === 'primary',\n 'dss-button--secondary': this._type === 'secondary',\n };\n return html `\n <div class=\"dss-split-button ${classMap(splitButtonClassMap)}\">\n <button\n class=\"dss-button ${classMap(innerButtonClassMap)} dss-split-button-main\"\n ?disabled=${this._disabled}\n @click=\"${this._dispatchMainClick}\"\n >\n ${this._text}\n </button>\n <button\n class=\"dss-button ${classMap(innerButtonClassMap)} dss-button--only-icon dss-split-button-icon\"\n ?disabled=${this._disabled}\n @click=\"${this._dispatchIconClick}\"\n >\n <span class=\"dss-icon dss-icon--md\">\n ${this._isOpen\n ? html ` ${this._iconOpen} `\n : html ` ${this._iconClose} `}\n </span>\n </button>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], SplitButton.prototype, \"iconClose\", null);\n__decorate([\n property({ type: String })\n], SplitButton.prototype, \"iconOpen\", null);\n__decorate([\n property({ type: String })\n], SplitButton.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], SplitButton.prototype, \"text\", null);\n__decorate([\n property({ type: Boolean })\n], SplitButton.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], SplitButton.prototype, \"isOpen\", null);\nSplitButton = __decorate([\n customElement('dss-split-button')\n], SplitButton);\nexport { SplitButton };\n//# sourceMappingURL=split-button.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nimport { badgeStyles } from './shared-styles/badge.style';\nlet Accordion = class Accordion extends LitElement {\n constructor() {\n super(...arguments);\n this._icon = '';\n this._type = '';\n this._title = '';\n this._index = undefined;\n this._isOpen = false;\n this._resultats = undefined;\n this._resultatsText = 'Resultats';\n this._accordionStyle = 'box';\n this._hasCheckbox = false;\n this._hasSecondaryAction = false;\n this._secondaryActionIcon = 'add_box';\n }\n static get styles() {\n return [\n symbolStyles,\n iconButtonStyles,\n badgeStyles,\n css `\n :host {\n width: 100%;\n height: fit-content;\n }\n\n .dss-accordion {\n width: 100%;\n }\n\n .dss-accordion--box {\n border: var(--dss-border-width-sm) solid var(--color-neutral-100);\n border-radius: var(--dss-radius-sm);\n background-color: var(--color-white);\n }\n\n .dss-accordion--inner {\n border-bottom: var(--dss-border-width-sm) solid\n var(--color-neutral-100);\n }\n\n .dss-accordion-header {\n display: grid;\n grid-template-columns: 1fr var(--dss-spacing-lg);\n padding: var(--dss-spacing-sm);\n gap: var(--dss-spacing-tiny);\n }\n\n .dss-accordion-header__info {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .dss-accordion-header__action {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n\n .dss-accordion-title {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n\n .dss-accordion-title__icon {\n box-sizing: border-box;\n width: 24px;\n heigth: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: var(--color-primary-50);\n border-radius: var(--dss-radius-xs);\n padding: var(--dss-spacing-xxs);\n }\n\n .dss-accordion-title__checkbox {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n font-size: 14px;\n }\n\n .dss-accordion-title__text {\n color: var(--color-neutral-700);\n font-size: 14px;\n font-weight: var(--font-semibold);\n }\n\n .dss-accordion-resultats {\n margin-right: var(--dss-spacing-sm);\n font-weight: var(--font-semibold);\n }\n\n .dss-accordion-header__secondary-action {\n margin-right: var(--dss-spacing-sm);\n padding-right: var(--dss-spacing-xs);\n border-right: var(--dss-border-width-sm) solid\n var(--color-neutral-400);\n }\n\n .dss-accordion-panel {\n display: none;\n padding: 0 var(--dss-spacing-sm) var(--dss-spacing-sm);\n color: var(--color-neutral-900);\n font-size: 14px;\n }\n\n .dss-accordion--open .dss-accordion-panel {\n display: block;\n }\n `,\n ];\n }\n get _checkbox() {\n var _a;\n const checkbox = ((_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name=\"checkbox\"]')) || undefined;\n this.requestUpdate();\n return checkbox === null || checkbox === void 0 ? void 0 : checkbox.assignedElements()[0];\n }\n set icon(icon) {\n const oldValue = this._icon;\n this._icon = icon;\n this.requestUpdate('icon', oldValue);\n }\n set titleText(text) {\n const oldValue = this._title;\n this._title = text;\n this.requestUpdate('title', oldValue);\n }\n set type(value) {\n const oldValue = this._type;\n this._type = value;\n this.requestUpdate('type', oldValue);\n }\n set index(value) {\n const oldValue = this._index;\n this._index = value;\n this.requestUpdate('index', oldValue);\n }\n set isOpen(value) {\n const oldValue = this._isOpen;\n this._isOpen = value;\n this.requestUpdate('disabled', oldValue);\n }\n set accordionStyle(value) {\n const oldValue = this._accordionStyle;\n if (value === 'inner') {\n this._accordionStyle = value;\n }\n else {\n this._accordionStyle = 'box';\n }\n this.requestUpdate('accordionStyle', oldValue);\n }\n set resultats(value) {\n const oldValue = this._resultats;\n this._resultats = value;\n this.requestUpdate('resultats', oldValue);\n }\n set resultatsText(value) {\n const oldValue = this._resultatsText;\n this._resultatsText = value;\n this.requestUpdate('resultatsText', oldValue);\n }\n set hasCheckbox(value) {\n const oldValue = this._hasCheckbox;\n this._hasCheckbox = value;\n this.requestUpdate('hasCheckbox', oldValue);\n }\n set hasSecondaryAction(value) {\n const oldValue = this._hasSecondaryAction;\n this._hasSecondaryAction = value;\n this.requestUpdate('hasSecondaryAction', oldValue);\n }\n set secondaryActionIcon(value) {\n const oldValue = this._secondaryActionIcon;\n this._secondaryActionIcon = value;\n this.requestUpdate('secondaryActionIcon', oldValue);\n }\n _toggleAccordion() {\n this._isOpen = !this._isOpen;\n this.requestUpdate();\n }\n _dispatchCheckboxChange() {\n const options = {\n detail: this._checkbox.checked,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onAccordionCheckboxChange', options));\n }\n _dispatchSecondaryAction() {\n const options = {\n detail: true,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onAccordionSecondaryAction', options));\n }\n render() {\n const accordionClassMap = {\n 'dss-accordion--open': this._isOpen,\n 'dss-accordion--box': this._accordionStyle === 'box',\n 'dss-accordion--inner': this._accordionStyle === 'inner',\n };\n return html `\n <div class=\"dss-accordion ${classMap(accordionClassMap)}\">\n <div class=\"dss-accordion-header\">\n <div class=\"dss-accordion-header__info\">\n <div class=\"dss-accordion-title\">\n ${this._icon\n ? html `\n <div class=\"dss-accordion-title__icon\">\n <span class=\"dss-icon dss-icon--sm\"> ${this._icon} </span>\n </div>\n `\n : null}\n ${this._hasCheckbox\n ? html `\n <div class=\"dss-accordion-title__checkbox dss-form-field\">\n <slot\n name=\"checkbox\"\n @click=${this._dispatchCheckboxChange}\n ></slot>\n <slot name=\"checkboxLabel\"></slot>\n </div>\n `\n : html `\n <div\n class=\"dss-accordion-title__text\"\n aria-expanded=\"${this._isOpen}\"\n @click=\"${this._toggleAccordion}\"\n >\n ${this._title\n ? html ` ${this._title} `\n : html ` ${this._type} ${this._index} `}\n </div>\n `}\n </div>\n ${this._resultats && !this._hasSecondaryAction\n ? html `\n <div class=\"dss-accordion-resultats\">\n <dss-badge\n size=\"md\"\n state=\"neutral\"\n outlined\n hideIcon\n text=\"${this._resultats} ${this._resultatsText}\"\n ></dss-badge>\n </div>\n `\n : null}\n ${this._hasSecondaryAction\n ? html `\n <div class=\"dss-accordion-header__secondary-action\">\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md\"\n @click=${this._dispatchSecondaryAction}\n >\n <span class=\"dss-icon\"\n >${this._secondaryActionIcon}\n </span>\n </button>\n </div>\n `\n : null}\n </div>\n\n <div class=\"dss-accordion-header__action\">\n <button\n type=\"button\"\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md\"\n aria-label=\"${this._title} accordion\"\n aria-expanded=\"${this._isOpen}\"\n @click=\"${this._toggleAccordion}\"\n >\n <span class=\"dss-icon\"\n >${this._isOpen ? 'expand_less' : 'expand_more'}</span\n >\n </button>\n </div>\n </div>\n\n <div class=\"dss-accordion-panel\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"titleText\", null);\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"type\", null);\n__decorate([\n property({ type: Number })\n], Accordion.prototype, \"index\", null);\n__decorate([\n property({ type: Boolean })\n], Accordion.prototype, \"isOpen\", null);\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"accordionStyle\", null);\n__decorate([\n property({ type: Number })\n], Accordion.prototype, \"resultats\", null);\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"resultatsText\", null);\n__decorate([\n property({ type: Boolean })\n], Accordion.prototype, \"hasCheckbox\", null);\n__decorate([\n property({ type: Boolean })\n], Accordion.prototype, \"hasSecondaryAction\", null);\n__decorate([\n property({ type: String })\n], Accordion.prototype, \"secondaryActionIcon\", null);\nAccordion = __decorate([\n customElement('dss-accordion')\n], Accordion);\nexport { Accordion };\n//# sourceMappingURL=accordion.js.map","// Utils: Keyboard Navigation\nexport function moveFocusToTarget(target) {\n if (target) {\n target.focus();\n }\n}\nexport function moveFocusToPreviousTarget(root, currentTarget, selector) {\n let index = 0;\n const availableTargets = root.querySelectorAll(selector);\n const lastIndex = availableTargets.length - 1;\n if (currentTarget === availableTargets[0]) {\n moveFocusToTarget(availableTargets[lastIndex]);\n }\n else {\n availableTargets.forEach((target, i) => {\n if (target === currentTarget) {\n index = i;\n }\n });\n moveFocusToTarget(availableTargets[index - 1]);\n }\n}\nexport function moveFocusToNextTarget(root, currentTarget, selector) {\n let index = 0;\n const availableTargets = root.querySelectorAll(selector);\n const lastIndex = availableTargets.length - 1;\n if (currentTarget === availableTargets[lastIndex]) {\n moveFocusToTarget(availableTargets[0]);\n }\n else {\n availableTargets.forEach((target, i) => {\n if (target === currentTarget) {\n index = i;\n }\n });\n moveFocusToTarget(availableTargets[index + 1]);\n }\n}\nexport function onKeyboardEnter(root, target, selector) {\n // Change tabIndex from current to clicked\n const currentTabIndex = root.querySelector(`${selector}[tabindex=\"0\"]`);\n currentTabIndex === null || currentTabIndex === void 0 ? void 0 : currentTabIndex.setAttribute('tabindex', '-1');\n target.setAttribute('tabindex', '0');\n target.click();\n}\n//# sourceMappingURL=keyboard-navigation.js.map","import { css } from 'lit';\n// Checkbox variations\nexport const checkboxStyles = css `\n .dss-checkbox {\n border-radius: 2px;\n width: 20px !important;\n height: 20px !important;\n overflow: hidden;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border: var(--dss-border-width-sm) solid var(--color-primary-500);\n position: relative;\n cursor: pointer;\n transition: 0.3s all linear;\n flex-shrink: 0;\n margin: var(--dss-spacing-tiny);\n }\n\n .dss-checkbox:focus-visible:enabled {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n\n .dss-checkbox.dss-checkbox--validate {\n border-color: var(--color-neutral-700);\n }\n\n .dss-checkbox:hover {\n border-color: var(--color-primary-600);\n transition: 0.3s all linear;\n }\n\n .dss-checkbox:hover.dss-checkbox--validate {\n border-color: var(--color-neutral-800);\n }\n\n .dss-checkbox:active {\n border-color: var(--color-primary-400);\n transition: 0.3s all linear;\n }\n\n .dss-checkbox:active.dss-checkbox--validate {\n border-color: var(--color-neutral-500);\n }\n\n .dss-checkbox:checked {\n background-color: var(--color-primary-500);\n }\n\n .dss-checkbox:checked.dss-checkbox--validate {\n border-color: var(--color-green-500);\n background-color: var(--color-green-500);\n }\n\n .dss-checkbox:checked::before {\n font-family: 'Material Symbols Rounded';\n content: 'check';\n position: absolute;\n font-size: 22px;\n color: var(--color-white);\n text-align: center;\n top: -4px;\n left: -2px;\n }\n\n .dss-checkbox:checked:hover {\n border-color: var(--color-primary-600);\n background-color: var(--color-primary-600);\n transition: 0.3s all linear;\n }\n\n .dss-checkbox:checked:hover.dss-checkbox--validate {\n border-color: var(--color-green-600);\n background-color: var(--color-green-600);\n }\n\n .dss-checkbox:checked:active {\n background-color: var(--color-primary-400);\n transition: 0.3s all linear;\n }\n\n .dss-checkbox:checked:active.dss-checkbox--validate {\n border-color: var(--color-green-400);\n background-color: var(--color-green-400);\n }\n\n .dss-checkbox:indeterminate {\n background-color: var(--color-primary-500);\n }\n\n .dss-checkbox:indeterminate::before {\n font-family: 'Material Symbols Rounded';\n font-size: 18px;\n content: 'remove';\n color: var(--color-white);\n position: absolute;\n top: -1px;\n }\n\n .dss-checkbox:indeterminate.dss-checkbox--validate {\n background-color: var(--color-green-500);\n }\n\n .dss-checkbox:disabled {\n cursor: not-allowed;\n color: var(--color-neutral-900);\n border-color: var(--color-neutral-400);\n }\n\n .dss-checkbox:disabled:checked {\n background-color: var(--color-neutral-300);\n }\n\n .dss-checkbox:disabled:checked::before {\n color: var(--color-neutral-900);\n }\n\n .dss-checkbox.dss-checkbox--validate:disabled:checked:hover {\n background-color: var(--color-neutral-300);\n }\n\n .dss-checkbox-label {\n cursor: pointer;\n }\n`;\n//# sourceMappingURL=checkbox.style.js.map","import { css } from 'lit';\n// Checkbox variations\nexport const radioStyles = css `\n .dss-radio {\n -webkit-appearance: none;\n appearance: none;\n background-color: var(--color-white);\n margin: 0;\n color: var(--color-primary-500);\n width: 20px;\n height: 20px;\n border: var(--dss-border-width-sm) solid var(--color-primary-500);\n border-radius: 50%;\n transform: translateY(-0.075em);\n display: grid;\n place-content: center;\n cursor: pointer;\n transition: 0.3s all linear;\n flex-shrink: 0;\n margin: var(--dss-spacing-tiny);\n }\n\n .dss-radio::before {\n content: '';\n width: 10px;\n height: 10px;\n border-radius: 50%;\n transform: scale(0);\n transition: 0.3s transform ease-in-out;\n box-shadow: inset 1rem 1rem var(--color-primary-500);\n background-color: var(--color-white);\n }\n\n .dss-radio:checked {\n border: var(--dss-border-width-sm) solid var(--color-primary-500);\n }\n\n .dss-radio:checked::before {\n transform: scale(1);\n box-shadow: inset 1rem 1rem var(--color-primary-500);\n }\n\n .dss-radio:checked:hover {\n border: var(--dss-border-width-sm) solid var(--color-primary-600);\n transition: 0.3s all linear;\n }\n\n .dss-radio:checked:hover::before {\n transform: scale(1);\n box-shadow: inset 1rem 1rem var(--color-primary-600);\n transition: 0.3s all linear;\n }\n\n .dss-radio:checked:disabled {\n cursor: not-allowed;\n }\n\n .dss-radio:checked:disabled::before {\n box-shadow: inset 1rem 1rem var(--color-neutral-400);\n }\n\n .dss-radio:hover {\n border: var(--dss-border-width-sm) solid var(--color-neutral-600);\n transition: 0.3s all linear;\n }\n\n .dss-radio:disabled {\n cursor: not-allowed;\n border: var(--dss-border-width-sm) solid var(--color-neutral-400);\n }\n\n .dss-radio:focus-visible:enabled {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n`;\n//# sourceMappingURL=radio.style.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\n/* eslint-disable import/extensions */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-nested-ternary */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { moveFocusToPreviousTarget, moveFocusToNextTarget, onKeyboardEnter, } from './utils/keyboard-navigation';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { badgeStyles } from './shared-styles/badge.style';\nimport { buttonStyles } from './shared-styles/button.style';\nimport { chipStyles } from './shared-styles/chip.style';\nimport { checkboxStyles } from './shared-styles/checkbox.style';\nimport { radioStyles } from './shared-styles/radio.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nlet Table = class Table extends LitElement {\n constructor() {\n super(...arguments);\n this._valueMaxLength = 60;\n this._data = [];\n this._customData = undefined;\n this._pipeData = [];\n this._customTableHeader = undefined;\n this._filters = [];\n this._tableHeader = [];\n this._tableHeaderSort = {};\n this._hasPaginator = false;\n this._currentIndex = 1;\n this._pageSize = 10;\n this._pageSizeOptions = '[5,10,20]';\n this._resultstext = 'Resultats';\n this._rowsperpagetext = 'Files per página';\n this._textAlign = 'left';\n this._headerTitle = '';\n this._hideHeader = false;\n this._innerFilters = false;\n this._expandTable = false;\n this._expandLabel = 'Ampliar';\n this._collapseLabel = 'Reduir';\n this._rowsOnCollapsed = 5;\n this._filtersLabel = 'Selecció';\n this._cleanFiltersLabel = 'Netejar filtres';\n this._openFiltersLabel = 'Filtres';\n this._selectedRowsLabel = 'files seleccionades';\n this._selectAllRows = true;\n this._noFiltersLabel = 'No hi ha filtres seleccionats';\n this._footerButtons = 3;\n this._maxContentWidth = false;\n this._stickyColumns = false;\n this._multiselect = false;\n this._radioselect = false;\n this._hasRowButton = false;\n this._rowButtonLabel = 'Button';\n this._hasRowActions = false;\n this._rowActionsIcons = ['add_box', 'add_box', 'add_box'];\n this._footerButtonPrimaryLabel = 'Primary';\n this._footerButtonSecondaryLabel = 'Secondary';\n this._footerButtonAlternativeLabel = 'Alternative';\n this._enableRowActionsOnDeleted = false;\n this._enableRowActionsOnDisabled = false;\n this._currentSortColumn = '';\n this._currentSortType = '';\n this._copyPipeData = [];\n }\n static get styles() {\n return [\n symbolStyles,\n buttonStyles,\n chipStyles,\n checkboxStyles,\n radioStyles,\n iconButtonStyles,\n css `\n .dss-table-header {\n padding: var(--dss-spacing-md) 0;\n }\n\n .dss-table-header-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--dss-spacing-xs);\n margin-bottom: var(--dss-spacing-md);\n }\n\n .dss-table-header-title__text {\n color: var(--color-neutral-900);\n font-weight: var(--font-bold);\n font-size: 20px;\n }\n\n .dss-table-header-title__action {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--dss-spacing-xxs);\n font-size: 14px;\n color: var(--color-primary-700);\n cursor: pointer;\n border-radius: var(--dss-radius-xs);\n font-weight: var(--font-semibold);\n }\n\n .dss-table-header-title__action:hover {\n color: var(--color-primary-600);\n }\n\n .dss-table-header-title__action:active {\n color: var(--color-primary-400);\n }\n\n .dss-table-header-title__action:focus-visible {\n outline: var(--dss-border-width-md) solid var(--color-blue-200);\n }\n\n .dss-table-header-filters {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .dss-table-header-filters__filters {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-md);\n width: 70%;\n box-sizing: border-box;\n }\n\n .dss-table-header-filters--inner .dss-table-header-filters__filters {\n width: 80%;\n }\n\n .filters-label {\n font-size: 14px;\n font-weight: var(--font-bold);\n color: var(--color-neutral-600);\n }\n\n .filters-list {\n display: flex;\n flex-wrap: wrap;\n max-width: 60%;\n gap: var(--dss-spacing-xs);\n }\n\n .filters-list-empty {\n font-size: 14px;\n color: var(--color-neutral-600);\n }\n\n .filters-clean {\n padding-left: var(--dss-spacing-md);\n border-left: var(--dss-border-width-sm) solid var(--color-neutral-100);\n }\n\n .dss-table-header-filters__actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--dss-spacing-md);\n width: 30%;\n box-sizing: border-box;\n }\n\n .dss-table-header-filters--inner .dss-table-header-filters__actions {\n width: 20%;\n }\n\n .dss-table-main {\n background-color: var(--color-white);\n width: 100%;\n overflow-x: auto;\n }\n\n .dss-table-container {\n max-width: 100%;\n overflow: auto;\n }\n\n .dss-table-main .table {\n min-width: 100%;\n margin: 0;\n padding: 0;\n border-collapse: collapse;\n border-spacing: 0;\n table-layout: fixed;\n }\n\n .dss-table-main .table.table--max-content-width {\n width: max-content;\n }\n\n .dss-table-main .table.table--sticky-columns {\n }\n\n .dss-table-main .table-header {\n width: 100%;\n position: sticky;\n top: 0;\n background-color: var(--color-white);\n z-index: 100;\n }\n\n .dss-table-main .table.table--sticky-columns .table-header {\n position: relative;\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-header\n .table-th:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-td:first-child {\n position: sticky;\n left: 0;\n z-index: 100;\n background-color: var(--color-white);\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-body-row:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ):hover\n .table-td:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body-row--selected:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n )\n .table-td:first-child {\n background-color: var(--color-primary-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-body-row:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ):hover\n .table-td:last-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body-row--selected:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n )\n .table-td:last-child {\n background-color: var(--color-primary-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-header\n .table-th:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-body\n .table-td:nth-child(2) {\n position: sticky;\n left: 52px;\n z-index: 100;\n background-color: var(--color-white);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-body-row:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ):hover\n .table-td:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-body-row--selected:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n )\n .table-td:nth-child(2) {\n background-color: var(--color-primary-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-body\n .table-body-row--disabled\n .table-td:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--disabled\n .table-td:nth-child(2) {\n background-color: var(--color-neutral-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--multiselect\n .table-body\n .table-body-row--deleted\n .table-td:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--deleted\n .table-td:nth-child(2) {\n background-color: var(--color-red-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-header\n .table-th:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-body\n .table-td:nth-child(2) {\n position: sticky;\n left: 52px;\n z-index: 100;\n background-color: var(--color-white);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-body-row:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ):hover\n .table-td:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-body-row--selected:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n )\n .table-td:nth-child(2) {\n background-color: var(--color-primary-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-body\n .table-body-row--disabled\n .table-td:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--disabled\n .table-td:nth-child(2) {\n background-color: var(--color-neutral-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns.table--sticky-columns--radioselect\n .table-body\n .table-body-row--deleted\n .table-td:nth-child(2),\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--deleted\n .table-td:nth-child(2) {\n background-color: var(--color-red-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--deleted\n .table-td:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--deleted\n .table-td:last-child {\n background-color: var(--color-red-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--disabled\n .table-td:first-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-body-row--disabled\n .table-td:last-child {\n background-color: var(--color-neutral-50);\n }\n\n .dss-table-main\n .table.table--sticky-columns\n .table-header\n .table-th:last-child,\n .dss-table-main\n .table.table--sticky-columns\n .table-body\n .table-td:last-child {\n position: sticky;\n right: 0;\n z-index: 100;\n background-color: var(--color-white);\n }\n\n .dss-table-main .table-header-row {\n width: 100%;\n }\n\n .dss-table-main .table-th {\n box-sizing: border-box;\n height: 56px;\n }\n\n .dss-table-main .table-th--checkbox {\n width: 52px;\n }\n\n .dss-table-main .table-th--radio {\n width: 52px;\n }\n\n .dss-table-main .table-th--review {\n width: 52px;\n }\n\n .dss-table-main .table-th--button {\n }\n\n .dss-table-main .table-th--actions {\n width: 140px;\n max-width: 140px;\n }\n\n .dss-table-main .table-th--icons-1 {\n width: 64px;\n max-width: 64px;\n }\n\n .dss-table-main .table-th--icons-2 {\n width: 100px;\n max-width: 100px;\n }\n\n .dss-table-main .table-header-column {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n margin: 0;\n padding: 0 var(--dss-spacing-md);\n border-bottom: var(--dss-border-width-md) solid\n var(--color-neutral-700);\n box-sizing: border-box;\n height: 100%;\n }\n\n .dss-table-main .table-header-column--clickable {\n cursor: pointer;\n }\n\n .dss-table-main\n .table-header-column--clickable\n .table-header-column__icon {\n box-sizing: border-box;\n padding: var(--dss-spacing-tiny);\n background-color: transparent;\n border-radius: var(--dss-radius-xs);\n transition: all 0.3s ease-in;\n }\n\n .dss-table-main .table-header-column--clickable:focus-visible {\n box-shadow: inset 0 0 0 var(--dss-border-width-lg)\n var(--color-blue-200);\n outline: 0;\n }\n\n .dss-table-main\n .table-header-column--clickable:focus-visible\n .table-header-column__icon,\n .dss-table-main\n .table-header-column--clickable:hover\n .table-header-column__icon {\n color: var(--color-white);\n background-color: var(--color-primary-500);\n }\n\n .dss-table-main .table-header-column__title {\n font-size: 14px;\n line-height: 24px;\n font-weight: var(--font-semibold);\n text-transform: capitalize;\n }\n\n .dss-table-main .table-header-column--checkbox {\n justify-content: center;\n max-width: 52px;\n }\n\n .dss-table-main .table-header-column--radio {\n max-width: 52px;\n }\n\n .dss-table-main .table-header-column--review {\n justify-content: center;\n }\n\n .dss-table-main .table-header-column--button {\n }\n\n .dss-table-main .table-header-column--actions {\n }\n\n .dss-table-main .table-header-column--number {\n justify-content: flex-end;\n }\n\n .dss-table-main .table-body {\n }\n\n .dss-table-main .table-body-row {\n // display: grid;\n }\n\n .dss-table-main .table-body-row + .table-body-row {\n border-top: var(--dss-border-width-sm) solid var(--color-neutral-100);\n }\n\n .dss-table-main\n .table-body-row:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ):hover,\n .dss-table-main\n .table-body-row--selected:not(.table-body-row--disabled):not(\n .table-body-row--deleted\n ) {\n background-color: var(--color-primary-50);\n }\n\n .dss-table-main .table-body-row--disabled {\n background-color: var(--color-neutral-50);\n }\n\n .dss-table-main .table-body-row--disabled .table-body-column {\n color: var(--color-neutral-500);\n }\n\n .dss-table-main .table-body-row--deleted {\n background-color: var(--color-red-50);\n }\n\n .dss-table-main .table-td {\n box-sizing: border-box;\n height: 56px;\n margin: 0;\n padding: 0;\n }\n\n .dss-table-main .table-body-column {\n margin: 0;\n padding: auto var(--dss-spacing-md);\n font-size: 14px;\n color: var(--color-neutral-700);\n height: 56px;\n box-sizing: border-box;\n }\n\n .dss-table-main .table-body-column--custom {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n padding: 0 var(--dss-spacing-md);\n gap: var(--dss-spacing-xs);\n }\n\n .dss-table-main .table-body-column--text {\n justify-content: flex-start;\n }\n\n .dss-table-main .table-body-column--number {\n justify-content: flex-end;\n }\n\n .dss-table-main .table-td--actions {\n box-sizing: border-box;\n max-width: 140px;\n }\n\n .dss-table-main .table-body-column--actions {\n justify-content: flex-end;\n max-width: 140px;\n box-sizing: border-box;\n }\n\n .dss-table-main .table-body-column--result {\n font-weight: var(--font-bold);\n }\n\n .dss-table-main .table-body-column--checkbox {\n max-width: 52px;\n padding-left: 0;\n padding-right: 0;\n justify-content: center;\n }\n\n .dss-table-main .table-body-column--radio {\n max-width: 52px;\n padding-left: 0;\n padding-right: 0;\n justify-content: center;\n }\n\n .dss-table-main .table-body-column--button {\n justify-content: flex-end;\n }\n\n .dss-table-main .table-body-column--review {\n justify-content: center;\n }\n\n .dss-table-main .table-body-column--font-bold {\n font-weight: var(--font-bold);\n }\n\n .dss-table-main .table-body-column--font-black {\n font-weight: var(--font-bold);\n color: var(--color-neutral-900);\n }\n\n .dss-table-main .table-body-column--icon-right {\n flex-direction: row-reverse;\n }\n\n .dss-table-main .table-body-column--text.table-body-column--icon-right {\n justify-content: flex-end;\n }\n\n .dss-table-main\n .table-body-column--number.table-body-column--icon-right {\n justify-content: flex-start;\n }\n\n .table-body--align-center .table-body-column {\n text-align: center;\n }\n\n .table-body--align-right .table-body-column {\n text-align: right;\n }\n\n .table-body--align-justify .table-body-column {\n text-align: justify;\n }\n\n ::slotted(div.dss-table-filters) {\n width: 100%;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n\n .table-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--dss-spacing-xs);\n padding: var(--dss-spacing-md);\n border-top: var(--dss-border-width-sm) solid var(--color-neutral-100);\n margin-top: var(--dss-spacing-md);\n }\n\n .table-footer-description {\n color: var(--color-neutral-900);\n font-size: 16px;\n font-weight: var(--font-bold);\n }\n\n .table-footer-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n\n .column-value {\n position: relative;\n }\n\n .column-value > .value {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .table-body-column--custom dss-tooltip {\n font-weight: var(--font-regular);\n }\n\n .column-value dss-tooltip {\n visibility: hidden;\n }\n\n .column-value:hover dss-tooltip {\n visibility: visible;\n }\n\n .column-value--link {\n color: var(--color-primary-700);\n font-weight: 600;\n text-decoration: none;\n }\n\n .column-value--link:hover {\n color: var(--color-primary-900);\n }\n\n .column-value--link:active {\n color: var(--color-primary-800);\n }\n\n .column-value--link:disabled {\n color: var(--color-neutral-500);\n cursor: not-allowed;\n }\n\n .column-value--link:focus-visible {\n outline: var(--dss-border-width-md) solid var(--color-blue-200);\n border-radius: var(--dss-radius-xs);\n }\n\n .dss-table-main .table .table-body-row:focus-visible {\n box-shadow: inset 0 0 0 var(--dss-border-width-lg)\n var(--color-blue-200);\n outline: 0;\n }\n `,\n badgeStyles, // Fix: Last position to override default icon badge style\n ];\n }\n set hasPaginator(value) {\n const oldValue = this._hasPaginator;\n this._hasPaginator = value;\n this.requestUpdate('hasPaginator', oldValue);\n }\n set data(data) {\n const oldValue = this._data;\n this._data = data;\n this._createTableHeader(data);\n this._pipeData = this._data;\n this._copyPipeData = [...this._data];\n this.requestUpdate('data', oldValue);\n }\n set customData(data) {\n const oldValue = this._customData;\n this._customData = data;\n this._createTableHeader(data);\n this._pipeData = this._customData;\n this._copyPipeData = [...this._customData];\n this.requestUpdate('data', oldValue);\n }\n set customTableHeader(value) {\n const oldValue = this._customTableHeader;\n this._customTableHeader = value;\n this.requestUpdate('customTableHeader', oldValue);\n }\n set filters(filters) {\n const oldValue = this._filters;\n this._filters = filters;\n this.requestUpdate('filters', oldValue);\n }\n set currentIndex(value) {\n const oldValue = this._currentIndex;\n this._currentIndex = value;\n this.requestUpdate('currentIndex', oldValue);\n }\n set pageSize(value) {\n const oldValue = this._pageSize;\n this._pageSize = value;\n this.requestUpdate('pageSize', oldValue);\n }\n set pageSizeOptions(pageSizeOptions) {\n const oldValue = this._pageSizeOptions;\n this._pageSizeOptions = pageSizeOptions;\n this.requestUpdate('pageSizeOptions', oldValue);\n }\n set resultstext(value) {\n const oldValue = this._resultstext;\n this._resultstext = value;\n this.requestUpdate('resultstext', oldValue);\n }\n set rowsperpagetext(value) {\n const oldValue = this._rowsperpagetext;\n this._rowsperpagetext = value;\n this.requestUpdate('rowsperpagetext', oldValue);\n }\n set textAlign(value) {\n const oldValue = this._textAlign;\n this._textAlign = value;\n this.requestUpdate('textAlign', oldValue);\n }\n set headerTitle(value) {\n const oldValue = this._headerTitle;\n this._headerTitle = value;\n this.requestUpdate('headerTitle', oldValue);\n }\n set hideHeader(value) {\n const oldValue = this._hideHeader;\n this._hideHeader = value;\n this.requestUpdate('hideHeader', oldValue);\n }\n set innerFilters(value) {\n const oldValue = this._innerFilters;\n this._innerFilters = value;\n this.requestUpdate('innerFilters', oldValue);\n }\n set expandTable(value) {\n const oldValue = this._expandTable;\n this._expandTable = value;\n this.requestUpdate('expandTable', oldValue);\n }\n set expandLabel(value) {\n const oldValue = this._expandLabel;\n this._expandLabel = value;\n this.requestUpdate('expandLabel', oldValue);\n }\n set collapseLabel(value) {\n const oldValue = this._collapseLabel;\n this._collapseLabel = value;\n this.requestUpdate('collapseLabel', oldValue);\n }\n set rowsOnCollapsed(value) {\n const oldValue = this._rowsOnCollapsed;\n this._rowsOnCollapsed = value;\n this.requestUpdate('rowsOnCollapsed', oldValue);\n }\n set filtersLabel(value) {\n const oldValue = this._filtersLabel;\n this._filtersLabel = value;\n this.requestUpdate('filtersLabel', oldValue);\n }\n set cleanFiltersLabel(value) {\n const oldValue = this._cleanFiltersLabel;\n this._cleanFiltersLabel = value;\n this.requestUpdate('cleanFiltersLabel', oldValue);\n }\n set selectedRowsLabel(value) {\n const oldValue = this._selectedRowsLabel;\n this._selectedRowsLabel = value;\n this.requestUpdate('selectedRowsLabel', oldValue);\n }\n set footerButtons(value) {\n const oldValue = this._footerButtons;\n this._footerButtons = value;\n this.requestUpdate('footerButtons', oldValue);\n }\n set maxContentWidth(value) {\n const oldValue = this._maxContentWidth;\n this._maxContentWidth = value;\n this.requestUpdate('maxContentWidth', oldValue);\n }\n set stickyColumns(value) {\n const oldValue = this._stickyColumns;\n this._stickyColumns = value;\n this.requestUpdate('stickyColumns', oldValue);\n }\n set multiselect(value) {\n const oldValue = this._multiselect;\n this._multiselect = value;\n this.requestUpdate('multiselect', oldValue);\n }\n set radioselect(value) {\n const oldValue = this._radioselect;\n this._radioselect = value;\n this.requestUpdate('radioselect', oldValue);\n }\n set hasRowButton(value) {\n const oldValue = this._hasRowButton;\n this._hasRowButton = value;\n this.requestUpdate('hasRowButton', oldValue);\n }\n set rowButtonLabel(value) {\n const oldValue = this._rowButtonLabel;\n this._rowButtonLabel = value;\n this.requestUpdate('rowButtonLabel', oldValue);\n }\n set hasRowActions(value) {\n const oldValue = this._hasRowActions;\n this._hasRowActions = value;\n this.requestUpdate('hasRowActions', oldValue);\n }\n set rowActionsIcons(icons) {\n const oldValue = this._rowActionsIcons;\n this._rowActionsIcons = icons;\n this.requestUpdate('rowActionsIcons', oldValue);\n }\n set footerButtonPrimaryLabel(value) {\n const oldValue = this._footerButtonPrimaryLabel;\n this._footerButtonPrimaryLabel = value;\n this.requestUpdate('footerButtonPrimaryLabel', oldValue);\n }\n set footerButtonSecondaryLabel(value) {\n const oldValue = this._footerButtonSecondaryLabel;\n this._footerButtonSecondaryLabel = value;\n this.requestUpdate('footerButtonSecondaryLabel', oldValue);\n }\n set footerButtonAlternativeLabel(value) {\n const oldValue = this._footerButtonAlternativeLabel;\n this._footerButtonAlternativeLabel = value;\n this.requestUpdate('footerButtonAlternativeLabel', oldValue);\n }\n set enableRowActionsOnDisabled(value) {\n const oldValue = this._enableRowActionsOnDisabled;\n this._enableRowActionsOnDisabled = value;\n this.requestUpdate('enableRowActionsOnDisabled', oldValue);\n }\n set enableRowActionsOnDeleted(value) {\n const oldValue = this._enableRowActionsOnDeleted;\n this._enableRowActionsOnDeleted = value;\n this.requestUpdate('enableRowActionsOnDeleted', oldValue);\n }\n set valueMaxLength(value) {\n const oldValue = this._valueMaxLength;\n this._valueMaxLength = value;\n this.requestUpdate('valueMaxLength', oldValue);\n }\n get _tableGridStyle() {\n return `grid-template-columns: repeat(${this._tableHeader.length}, 1fr)`;\n }\n get _tableHeight() {\n let tableHeight = 'height:auto;';\n if (!this._expandTable) {\n let collapsedHeight = this._rowsOnCollapsed * 56;\n collapsedHeight += 56; // add header row height\n tableHeight = `height:${collapsedHeight}px;`;\n }\n return tableHeight;\n }\n async firstUpdated() {\n try {\n await this.updateComplete;\n this._clickOutside();\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error('ERROR OCURRED');\n }\n }\n _clickOutside() {\n document.addEventListener('click', event => {\n if (!event.composedPath().includes(this)) {\n this._resetRowsTabIndex();\n }\n else {\n const path = event.composedPath();\n const targetElement = path.find(el => el instanceof HTMLElement && el.classList.contains('table-body'));\n if (!targetElement) {\n this._resetRowsTabIndex();\n }\n }\n });\n }\n _createTableHeader(data) {\n const tableKeys = Object.keys(data[0]);\n if (tableKeys.includes('disabled')) {\n const disabledIndex = tableKeys.indexOf('disabled');\n tableKeys.splice(disabledIndex, 1);\n }\n if (tableKeys.includes('deleted')) {\n const deletedIndex = tableKeys.indexOf('deleted');\n tableKeys.splice(deletedIndex, 1);\n }\n this._tableHeader = tableKeys;\n this._tableHeader.forEach(key => {\n this._tableHeaderSort[key] = 'none';\n });\n }\n _sortBy(key, lastSort) {\n this._currentSortColumn = key;\n // SORT: none => ASC => DSC => none\n if (lastSort === 'none') {\n this._currentSortType = 'ASC';\n }\n else if (lastSort === 'ASC') {\n this._currentSortType = 'DSC';\n }\n else if (lastSort === 'DSC') {\n this._currentSortType = 'none';\n }\n if (this._currentSortType === 'none') {\n this._pipeData = [...this._copyPipeData];\n }\n else {\n this._pipeData = this._pipeData.sort((a, b) => {\n let valueA;\n let valueB;\n if (this._customData) {\n valueA = a[key].value;\n valueB = b[key].value;\n }\n else {\n valueA = a[key];\n valueB = b[key];\n }\n if (valueA < valueB) {\n return this._currentSortType === 'ASC' ? -1 : 1;\n }\n if (valueA > valueB) {\n return this._currentSortType === 'ASC' ? 1 : -1;\n }\n return 0;\n });\n }\n this._tableHeaderSort[key] = this._currentSortType;\n // Reset other column SortBy\n const sortKeys = Object.keys(this._tableHeaderSort);\n sortKeys.forEach(index => {\n if (index !== key) {\n this._tableHeaderSort[index] = 'none';\n }\n });\n this.requestUpdate();\n }\n _paginateTable(event) {\n // eslint-disable-next-line prefer-destructuring\n const startIndex = event.detail.startIndex;\n // eslint-disable-next-line prefer-destructuring\n const endIndex = event.detail.endIndex;\n if (this._customData && endIndex <= this._customData.length) {\n this._pipeData = this._customData.slice(startIndex - 1, endIndex);\n }\n else if (this._data && endIndex <= this._data.length) {\n this._pipeData = this._data.slice(startIndex - 1, endIndex);\n }\n if (event.detail.pageSize) {\n this._pageSize = event.detail.pageSize;\n }\n this._copyPipeData = [...this._pipeData];\n this.requestUpdate();\n }\n _generateTableHeaderHTML() {\n let tableHeaderCheckbox = html ``;\n let tableHeaderRadio = html ``;\n let tableHeaderButtons = html ``;\n let tableHeaderActions = html ``;\n if (this._multiselect) {\n tableHeaderCheckbox = html `\n <th class=\"table-th table-th--checkbox\">\n <div class=\"table-header-column table-header-column--checkbox\">\n <input\n type=\"checkbox\"\n class=\"dss-checkbox\"\n aria-label=\"Seleccionar totes les files\"\n @change=\"${this._onSelectAllRows}\"\n />\n </div>\n </th>\n `;\n }\n if (this._radioselect) {\n tableHeaderRadio = html `\n <th class=\"table-th table-th--radio\">\n <div class=\"table-header-column table-header-column--radio\"></div>\n </th>\n `;\n }\n if (this._hasRowButton) {\n tableHeaderButtons = html `\n <th class=\"table-th table-th--button\">\n <div class=\"table-header-column table-header-column--button\"></div>\n </th>\n `;\n }\n if (this._hasRowActions) {\n tableHeaderActions = html `\n <th\n class=\"table-th table-th--actions table-th--icons-${this\n ._rowActionsIcons.length}\"\n >\n <div class=\"table-header-column table-header-column--actions\"></div>\n </th>\n `;\n }\n let isFirstTh = true;\n const tableHeaderData = this._tableHeader.map((key, index) => {\n const onClick = () => {\n this._sortBy(key, this._tableHeaderSort[key]);\n this.requestUpdate();\n };\n const onKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowLeft':\n moveFocusToPreviousTarget(this.renderRoot, tgt, '.table-header-column--clickable');\n flag = true;\n break;\n case 'ArrowRight':\n moveFocusToNextTarget(this.renderRoot, tgt, '.table-header-column--clickable');\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const headerTitle = e.target;\n onKeyboardEnter(this.renderRoot, headerTitle, '.table-header-column--clickable');\n flag = true;\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n // Check if column is type checkbox\n let columnType = '';\n if (this._customData && this._customData.length > 0) {\n columnType = this._pipeData[0][key].type;\n }\n else if (this._data && this._data.length > 0) {\n columnType = typeof this._pipeData[0][key];\n }\n const tableThClassMap = {\n 'table-th--review': columnType === 'review',\n 'table-th--link': columnType === 'link',\n };\n const tableHeaderColumnClassMap = {\n 'table-header-column--review': columnType === 'review',\n 'table-header-column--number': columnType === 'number',\n 'table-header-column--link': columnType === 'link',\n };\n const dssTh = html `\n <th class=\"table-th ${classMap(tableThClassMap)}\">\n <div\n class=\"table-header-column table-header-column--clickable ${classMap(tableHeaderColumnClassMap)}\"\n tabindex=\"${isFirstTh ? 0 : -1}\"\n @keydown=${onKeyDown}\n @click=${onClick}\n >\n <span class=\"table-header-column__title\">\n ${this._customTableHeader\n ? html `${this._customTableHeader[index]}`\n : html `${key}`}\n </span>\n <span class=\"dss-icon dss-icon--sm table-header-column__icon\">\n ${key === this._currentSortColumn\n ? this._currentSortType === 'ASC'\n ? html `arrow_upward`\n : this._currentSortType === 'DSC'\n ? html `arrow_downward`\n : html `swap_vert`\n : html `swap_vert`}\n </span>\n </div>\n </th>\n `;\n isFirstTh = false;\n return dssTh;\n });\n return html ` <tr class=\"table-header-row\">\n ${tableHeaderCheckbox} ${tableHeaderRadio} ${tableHeaderData}\n ${tableHeaderButtons} ${tableHeaderActions}\n </tr>`;\n }\n _onRowCheckboxChange(row) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n this.requestUpdate();\n }\n _onSelectAllRows() {\n this._pipeData.forEach(row => {\n if (row.disabled) {\n if (this._enableRowActionsOnDisabled) {\n row.checked = this._selectAllRows;\n }\n }\n else if (row.deleted) {\n if (this._enableRowActionsOnDeleted) {\n row.checked = this._selectAllRows;\n }\n }\n else {\n row.checked = this._selectAllRows;\n }\n });\n this._selectAllRows = !this._selectAllRows;\n this.requestUpdate();\n }\n _onRowAction(action, row) {\n const options = {\n detail: { action, row },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onRowAction', options));\n this.requestUpdate();\n }\n _generateTableTdCheckbox(row, checked, disabled, deleted) {\n if (this._enableRowActionsOnDeleted) {\n deleted = false;\n }\n if (this._enableRowActionsOnDisabled) {\n disabled = false;\n }\n let checkboxTd = html ``;\n if (checked) {\n checkboxTd = html `\n <td class=\"table-td table-td--checkbox\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--checkbox\"\n >\n <input\n type=\"checkbox\"\n class=\"dss-checkbox table-body-row__action\"\n aria-label=\"Seleccionar la fila\"\n @change=\"${() => this._onRowCheckboxChange(row)}\"\n checked\n ?disabled=${disabled || deleted}\n />\n </div>\n </td>\n `;\n }\n else {\n checkboxTd = html `\n <td class=\"table-td table-td--checkbox\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--checkbox\"\n >\n <input\n type=\"checkbox\"\n class=\"dss-checkbox table-body-row__action\"\n aria-label=\"Seleccionar la fila\"\n @change=\"${() => this._onRowCheckboxChange(row)}\"\n ?disabled=${disabled || deleted}\n />\n </div>\n </td>\n `;\n }\n return checkboxTd;\n }\n _generateTableTdRadio(checked, disabled, deleted) {\n let radioTd = html ``;\n if (this._enableRowActionsOnDeleted) {\n deleted = false;\n }\n if (this._enableRowActionsOnDisabled) {\n disabled = false;\n }\n if (checked) {\n radioTd = html `\n <td class=\"table-td table-td--radio\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--radio\"\n >\n <input\n type=\"radio\"\n name=\"row-radio\"\n class=\"dss-radio table-body-row__action\"\n aria-label=\"Seleccionar la fila\"\n checked\n ?disabled=${disabled || deleted}\n />\n </div>\n </td>\n `;\n }\n else {\n radioTd = html `\n <td class=\"table-td table-td--radio\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--radio\"\n >\n <input\n type=\"radio\"\n name=\"row-radio\"\n class=\"dss-radio table-body-row__action\"\n aria-label=\"Seleccionar la fila\"\n ?disabled=${disabled || deleted}\n />\n </div>\n </td>\n `;\n }\n return radioTd;\n }\n _generateTableTdButton(row, disabled, deleted) {\n if (this._enableRowActionsOnDeleted) {\n deleted = false;\n }\n if (this._enableRowActionsOnDisabled) {\n disabled = false;\n }\n return html `\n <td class=\"table-td table-td--button\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--button\"\n >\n <button\n type=\"button\"\n class=\"dss-button dss-button--sm dss-button--secondary table-body-row__action\"\n @click=\"${() => this._onRowAction(this._rowButtonLabel, row)}\"\n ?disabled=${disabled || deleted}\n >\n ${this._rowButtonLabel}\n </button>\n </div>\n </td>\n `;\n }\n _generateTableTdActions(row, disabled, deleted) {\n if (this._enableRowActionsOnDeleted) {\n deleted = false;\n }\n if (this._enableRowActionsOnDisabled) {\n disabled = false;\n }\n return html `\n <td class=\"table-td table-td--custom table-td--actions\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--actions\"\n >\n ${this._rowActionsIcons.map((icon, index) => html `\n <button\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md dss-table-actions-icon table-body-row__action\"\n @click=\"${() => this._onRowAction(`rowAction${index + 1}`, row)}\"\n aria-label=\"Row action ${index + 1}\"\n ?disabled=${disabled || deleted}\n >\n <span class=\"dss-icon\">${icon}</span>\n </button>\n `)}\n </div>\n </td>\n `;\n }\n _generateTableTdSelfActions(row, key, cell, disabled, deleted) {\n if (this._enableRowActionsOnDeleted) {\n deleted = false;\n }\n if (this._enableRowActionsOnDisabled) {\n disabled = false;\n }\n return html `\n <td class=\"table-td table-td--custom table-td--actions\">\n <div\n class=\"table-body-column table-body-column--custom table-body-column--actions\"\n >\n ${cell.icons.map((icon, index) => html `\n <button\n class=\"dss-icon-button dss-icon-button--primary dss-icon-button--md dss-table-actions-icon table-body-row__action\"\n @click=\"${() => this._onRowAction(`${key}Action${index + 1}`, row)}\"\n aria-label=\"Self action ${index + 1}\"\n ?disabled=${disabled || deleted}\n >\n <span class=\"dss-icon\">${icon}</span>\n </button>\n `)}\n </div>\n </td>\n `;\n }\n _resetRowsTabIndex() {\n const currentTabIndex = this.renderRoot.querySelector(`.table-body-row[tabindex=\"0\"]`);\n currentTabIndex === null || currentTabIndex === void 0 ? void 0 : currentTabIndex.setAttribute('tabindex', '-1');\n const row = this.renderRoot.querySelectorAll(`.table-body-row`);\n row[0].setAttribute('tabindex', '0');\n }\n _generateDefaultTableBody() {\n let tableBodyData;\n let isFirstRow = true;\n if (this._data && this._data.length > 0) {\n tableBodyData = this._pipeData.map(row => {\n const isRowChecked = row.checked ? row.checked : false;\n const isRowDeleted = row.deleted ? row.deleted : false;\n const isRowDisabled = row.disabled ? row.disabled : false;\n const onFocusOut = (event) => {\n const nextFocus = event.relatedTarget;\n if (nextFocus &&\n !nextFocus.className.includes('table-body-row') &&\n !nextFocus.className.includes('table-body-row__action')) {\n this._resetRowsTabIndex();\n }\n };\n const onRowKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n moveFocusToPreviousTarget(this.renderRoot, tgt, '.table-body-row');\n flag = true;\n break;\n case 'ArrowDown':\n moveFocusToNextTarget(this.renderRoot, tgt, '.table-body-row');\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const headerTitle = e.target;\n onKeyboardEnter(this.renderRoot, headerTitle, '.table-body-row');\n if (this._multiselect || this._radioselect) {\n if (!isRowDeleted && !isRowDisabled) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n else if (this._enableRowActionsOnDeleted && isRowDeleted) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n else if (this._enableRowActionsOnDisabled && isRowDisabled) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n this.requestUpdate();\n }\n flag = true;\n break;\n case 'Escape':\n const path = e.composedPath();\n const targetElement = path.find(el => el instanceof HTMLElement &&\n el.classList.contains('table-body-row'));\n if (targetElement) {\n targetElement.focus();\n }\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const tableBodyCheckbox = this._multiselect\n ? this._generateTableTdCheckbox(row, isRowChecked, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyRadio = this._radioselect\n ? this._generateTableTdRadio(isRowChecked, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyButtons = this._hasRowButton\n ? this._generateTableTdButton(row, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyActions = this._hasRowActions\n ? this._generateTableTdActions(row, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyColumns = this._tableHeader.map(key => {\n const tableColumnClassMap = {\n 'table-body-column--number': typeof row[key] === 'number',\n };\n return html `\n <td class=\"table-td\">\n <div\n class=\"table-body-column table-body-column--custom ${classMap(tableColumnClassMap)}\"\n >\n ${row[key] === ''\n ? html `<i class=\"dss-icon dss-icon--md\">remove</i>`\n : null}\n ${typeof row[key] === 'number'\n ? html ` ${row[key]} `\n : row[key].length <= this._valueMaxLength\n ? html `${row[key]}`\n : html `${row[key]}...`}\n </div>\n </td>\n `;\n });\n const rowClassMap = {\n 'table-body-row--selected': isRowChecked,\n 'table-body-row--deleted': isRowDeleted,\n 'table-body-row--disabled': isRowDisabled,\n };\n const tableRow = html ` <tr\n class=\"table-body-row ${classMap(rowClassMap)}\"\n tabindex=\"${isFirstRow ? 0 : -1}\"\n style=${ifDefined(this._tableGridStyle)}\n @keydown=${onRowKeyDown}\n @focusout=${onFocusOut}\n >\n ${tableBodyCheckbox} ${tableBodyRadio} ${tableBodyColumns}\n ${tableBodyButtons} ${tableBodyActions}\n </tr>`;\n isFirstRow = false;\n return tableRow;\n });\n }\n return tableBodyData;\n }\n _generateCustomTableBody() {\n let tableBody;\n let isFirstRow = true;\n if (this._customData) {\n tableBody = this._pipeData.map(row => {\n const isRowChecked = row.checked ? row.checked : false;\n const isRowDeleted = row.deleted ? row.deleted : false;\n const isRowDisabled = row.disabled ? row.disabled : false;\n const onFocusOut = (event) => {\n const nextFocus = event.relatedTarget;\n if (nextFocus &&\n !nextFocus.className.includes('table-body-row') &&\n !nextFocus.className.includes('table-body-row__action')) {\n this._resetRowsTabIndex();\n }\n };\n const onRowKeyDown = (e) => {\n const tgt = e.currentTarget;\n const keyboardEvent = e;\n let flag = false;\n switch (keyboardEvent.key) {\n case 'ArrowUp':\n moveFocusToPreviousTarget(this.renderRoot, tgt, '.table-body-row');\n flag = true;\n break;\n case 'ArrowDown':\n moveFocusToNextTarget(this.renderRoot, tgt, '.table-body-row');\n flag = true;\n break;\n /* eslint no-case-declarations: \"off\" */\n case 'Enter':\n const headerTitle = e.target;\n onKeyboardEnter(this.renderRoot, headerTitle, '.table-body-row');\n if (this._multiselect || this._radioselect) {\n if (!isRowDeleted && !isRowDisabled) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n else if (this._enableRowActionsOnDeleted && isRowDeleted) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n else if (this._enableRowActionsOnDisabled && isRowDisabled) {\n if (row.checked) {\n row.checked = !row.checked;\n }\n else {\n row.checked = true;\n }\n }\n this.requestUpdate();\n }\n flag = true;\n break;\n case 'Escape':\n const path = e.composedPath();\n const targetElement = path.find(el => el instanceof HTMLElement &&\n el.classList.contains('table-body-row'));\n if (targetElement) {\n targetElement.focus();\n }\n break;\n default:\n break;\n }\n if (flag) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n const tableBodyCheckbox = this._multiselect\n ? this._generateTableTdCheckbox(row, isRowChecked, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyRadio = this._radioselect\n ? this._generateTableTdRadio(isRowChecked, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyButtons = this._hasRowButton\n ? this._generateTableTdButton(row, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyActions = this._hasRowActions\n ? this._generateTableTdActions(row, isRowDisabled, isRowDeleted)\n : html ``;\n const tableBodyColumns = this._tableHeader.map(key => {\n const onReviewChange = (itemKey) => {\n row[itemKey].value = !row[itemKey].value;\n const options = {\n detail: { action: 'review', row },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onRowAction', options));\n this.requestUpdate();\n };\n const tableColumnClassMap = {\n 'table-body-column--text': row[key].type === 'text',\n 'table-body-column--number': row[key].type === 'number',\n 'table-body-column--link': row[key].type === 'link',\n 'table-body-column--badge': row[key].type === 'badge',\n 'table-body-column--result': row[key].type === 'result',\n 'table-body-column--review': row[key].type === 'review',\n 'table-body-column--progress': row[key].type === 'progress',\n 'table-body-column--font-bold': row[key].fontType === 'bold',\n 'table-body-column--font-black': row[key].fontType === 'black',\n 'table-body-column--icon-right': row[key].iconRight,\n };\n return html `\n <td class=\"table-td\" style=\"${ifDefined(row[key].style)}\">\n <div\n class=\"table-body-column table-body-column--custom ${classMap(tableColumnClassMap)}\"\n >\n ${row[key].type === 'text'\n ? html `\n ${row[key].icon\n ? html `\n <span class=\"dss-icon dss-icon--sm column-icon\"\n >${row[key].icon}</span\n >\n `\n : null}\n ${row[key].badgeBefore\n ? html `\n <dss-badge\n size=\"md\"\n state=\"${isRowDisabled\n ? 'disabled'\n : row[key].state}\"\n text=\"${row[key].badgeBefore}\"\n outlined\n hideIcon\n >\n ${row[key].badgeTooltip\n ? html `\n <dss-tooltip slot=\"tooltip\" position=\"top\">\n <span>${row[key].badgeTooltip}</span>\n </dss-tooltip>\n `\n : null}\n </dss-badge>\n `\n : null}\n\n <span class=\"column-value\">\n <span class=\"value\">\n ${row[key].value === ''\n ? html `<i class=\"dss-icon dss-icon--md\">remove</i>`\n : null}\n ${row[key].value.length <= this._valueMaxLength\n ? html `${row[key].value}`\n : html `${row[key].value.slice(0, this._valueMaxLength)}...`}\n </span>\n ${row[key].valueTooltip\n ? html `\n <dss-tooltip position=\"top\">\n <span>${row[key].valueTooltip}</span>\n </dss-tooltip>\n `\n : null}\n </span>\n `\n : row[key].type === 'number'\n ? html `\n ${row[key].icon\n ? html `\n <span class=\"dss-icon dss-icon--sm column-icon\"\n >${row[key].icon}</span\n >\n `\n : null}\n <span class=\"column-value\">${row[key].value}</span>\n `\n : row[key].type === 'link'\n ? html `\n ${row[key].icon\n ? html `\n <span class=\"dss-icon dss-icon--sm column-icon\"\n >${row[key].icon}</span\n >\n `\n : null}\n ${isRowDisabled\n ? html `\n <span class=\"column-value\">${row[key].value}</span>\n `\n : html `\n <a\n class=\"column-value column-value--link\"\n href=\"${row[key].href}\"\n ?disabled=${isRowDisabled}\n >\n <span class=\"value\">\n ${row[key].value.length <= this._valueMaxLength\n ? html `${row[key].value}`\n : html `${row[key].value.slice(0, this._valueMaxLength)}...`}\n </span>\n ${row[key].valueTooltip\n ? html `\n <dss-tooltip position=\"top\">\n <span>${row[key].valueTooltip}</span>\n </dss-tooltip>\n `\n : null}\n </a>\n `}\n `\n : row[key].type === 'badge'\n ? html `\n <dss-badge\n size=\"md\"\n state=\"${isRowDisabled ? 'disabled' : row[key].state}\"\n text=\"${row[key].value}\"\n ></dss-badge>\n `\n : row[key].type === 'result'\n ? html `\n <dss-icon-badge\n size=\"sm\"\n state=\"${isRowDisabled ? 'disabled' : row[key].state}\"\n icon=\"${row[key].icon}\"\n bubble\n ></dss-icon-badge>\n <span class=\"column-value\">${row[key].value}</span>\n `\n : row[key].type === 'actions'\n ? this._generateTableTdSelfActions(row, key, row[key], isRowDisabled, isRowDeleted)\n : row[key].type === 'review'\n ? html `\n <input\n type=\"checkbox\"\n class=\"dss-checkbox dss-checkbox--validate\"\n ?checked=\"${row[key].value}\"\n @change=\"${() => onReviewChange(key)}\"\n ?disabled=${(isRowDisabled &&\n !this._enableRowActionsOnDisabled) ||\n (isRowDeleted && !this._enableRowActionsOnDeleted)}\n />\n `\n : row[key].type === 'progress'\n ? html `\n ${row[key].icon\n ? html `\n <span class=\"dss-icon dss-icon--sm column-icon\"\n >${row[key].icon}</span\n >\n `\n : null}\n <dss-progress-indicator\n percentage=\"23\"\n ></dss-progress-indicator>\n `\n : null}\n </div>\n </td>\n `;\n });\n const rowClassMap = {\n 'table-body-row--selected': isRowChecked,\n 'table-body-row--deleted': isRowDeleted,\n 'table-body-row--disabled': isRowDisabled,\n };\n const tableRow = html ` <tr\n class=\"table-body-row ${classMap(rowClassMap)}\"\n tabindex=\"${isFirstRow ? 0 : -1}\"\n style=${ifDefined(this._tableGridStyle)}\n @keydown=${onRowKeyDown}\n @focusout=${onFocusOut}\n >\n ${tableBodyCheckbox} ${tableBodyRadio} ${tableBodyColumns}\n ${tableBodyButtons} ${tableBodyActions}\n </tr>`;\n isFirstRow = false;\n return tableRow;\n });\n }\n return tableBody;\n }\n _generateFilterChips() {\n let filterChips;\n if (this._filters) {\n filterChips = this._filters.map(filter => {\n const onClickOption = (e) => {\n const termClicked = e.target.getAttribute('term');\n if (typeof filter === 'string') {\n this._filters = this._filters.filter(item => item !== termClicked);\n }\n else {\n this._filters = this._filters.filter(item => item.value.trim() !== (termClicked === null || termClicked === void 0 ? void 0 : termClicked.trim()));\n }\n this._emitChangeFilters();\n this.requestUpdate();\n };\n const filterType = typeof filter;\n const chip = html `\n <span tabindex=\"0\" class=\"dss-chip dss-chip--sm dss-chip--selected\">\n ${filterType === 'string'\n ? html `\n ${filter}\n <button\n class=\"dss-chip__icon-button dss-icon-button dss-icon-button--primary dss-icon-button--sm\"\n @click=\"${onClickOption}\"\n >\n <span class=\"dss-icon\" term=\"${filter}\">cancel</span>\n </button>\n `\n : html `\n <span class=\"dss-icon\">${filter.icon}</span>\n ${filter.value}\n <button\n class=\"dss-chip__icon-button dss-icon-button dss-icon-button--primary dss-icon-button--sm\"\n @click=\"${onClickOption}\"\n >\n <span class=\"dss-icon\" term=\" ${filter.value}\"\n >cancel</span\n >\n </button>\n `}\n </span>\n `;\n return chip;\n });\n }\n return filterChips;\n }\n _clearFilters() {\n this._filters = [];\n this._emitChangeFilters();\n this.requestUpdate();\n }\n _countRowsChecked() {\n let count = 0;\n for (const row of this._pipeData) {\n if (row.checked) {\n count += 1;\n }\n }\n return count;\n }\n _getRowsSelected() {\n const selectedRows = [];\n this._pipeData.forEach(row => {\n if (row.checked) {\n const removeCheckedRow = { ...row };\n delete removeCheckedRow.checked;\n selectedRows.push(removeCheckedRow);\n }\n });\n return selectedRows;\n }\n // Output events\n _emitExpandAction() {\n const options = {\n detail: this._expandTable,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onExpandTable', options));\n this._expandTable = !this._expandTable;\n this.requestUpdate();\n }\n _emitOpenFilters() {\n const options = {\n detail: true,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onOpenFilters', options));\n this.requestUpdate();\n }\n _emitChangeFilters() {\n const options = {\n detail: this._filters,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onChangeFilters', options));\n this.requestUpdate();\n }\n _emitFooterAction(action) {\n const selectedRows = this._getRowsSelected();\n const options = {\n detail: { action, selectedRows },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onFooterAction', options));\n this.requestUpdate();\n }\n render() {\n const tableClassMap = {\n 'table--max-content-width': this._maxContentWidth,\n 'table--sticky-columns': this._maxContentWidth && this._stickyColumns,\n 'table--sticky-columns--multiselect': this._maxContentWidth && this._stickyColumns && this._multiselect,\n 'table--sticky-columns--radioselect': this._maxContentWidth && this._stickyColumns && this._radioselect,\n };\n const tableBodyClassMap = {\n 'table-body--align-left': this._data.length > 0 && this._textAlign === 'left',\n 'table-body--align-center': this._data.length > 0 && this._textAlign === 'center',\n 'table-body--align-right': this._data.length > 0 && this._textAlign === 'right',\n 'table-body--align-justify': this._data.length > 0 && this._textAlign === 'justify',\n };\n return html `\n <div class=\"dss-table\">\n ${!this._hideHeader\n ? html `\n <div class=\"dss-table-header\">\n <div class=\"dss-table-header-title\">\n <div class=\"dss-table-header-title__text\">\n ${this._headerTitle}\n </div>\n <div\n class=\"dss-table-header-title__action\"\n role=\"button\"\n tabindex=\"0\"\n @click=\"${this._emitExpandAction}\"\n >\n ${this._expandTable\n ? html `\n <span class=\"dss-icon dss-icon--sm\">fullscreen</span>\n <span>${this._collapseLabel}</span>\n `\n : html `\n <span class=\"dss-icon dss-icon--sm\">fullscreen</span>\n <span>${this._expandLabel}</span>\n `}\n </div>\n </div>\n\n ${this._innerFilters\n ? html `\n <div\n class=\"dss-table-header-filters dss-table-header-filters--inner\"\n >\n <div class=\"dss-table-header-filters__filters\">\n <slot name=\"filters\"></slot>\n </div>\n <div class=\"dss-table-header-filters__actions\"></div>\n </div>\n `\n : html `\n <div\n class=\"dss-table-header-filters dss-table-header-filters--outer\"\n >\n <div class=\"dss-table-header-filters__filters\">\n <div class=\"filters-label\">\n ${this._filtersLabel}:\n </div>\n <div class=\"filters-list\">\n ${this._filters.length > 0\n ? html ` ${this._generateFilterChips()} `\n : html `\n <span class=\"filters-list-empty\">\n ${this._noFiltersLabel}\n </span>\n `}\n </div>\n <div class=\"filters-clean\">\n ${this._filters.length > 0\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--sm dss-button--secondary dss-button--icon-left\"\n @click=${this._clearFilters}\n >\n <span class=\"material-symbols-rounded\"\n >mop</span\n >${this._cleanFiltersLabel}\n </button>\n `\n : null}\n </div>\n </div>\n\n <div class=\"dss-table-header-filters__actions\">\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary dss-button--icon-left\"\n @click=${this._emitOpenFilters}\n >\n <span class=\"material-symbols-rounded\"\n >filter_list</span\n >\n ${this._openFiltersLabel}\n </button>\n </div>\n </div>\n `}\n </div>\n `\n : null}\n\n <div class=\"dss-table-main\">\n <div\n class=\"dss-table-container\"\n style=\"${ifDefined(this._tableHeight)}\"\n >\n <table\n class=\"table ${classMap(tableClassMap)}\"\n cellspacing=\"0\"\n cellpadding=\"0\"\n >\n <thead\n class=\"table-header\"\n style=${ifDefined(this._tableGridStyle)}\n >\n ${this._generateTableHeaderHTML()}\n </thead>\n <tbody class=\"table-body ${classMap(tableBodyClassMap)}\">\n ${this._customData\n ? this._generateCustomTableBody()\n : this._generateDefaultTableBody()}\n </tbody>\n </table>\n </div>\n ${this._hasPaginator\n ? html `\n <dss-table-pagination\n length=${this._customData\n ? this._customData.length\n : this._data.length}\n pagesize=${this._pageSize}\n pageSizeOptions=${this._pageSizeOptions}\n currentindex=${this._currentIndex}\n resultstext=${this._resultstext}\n rowsperpagetext=${this._rowsperpagetext}\n @onChangePage=${this._paginateTable}\n ></dss-table-pagination>\n `\n : null}\n </div>\n\n ${this._multiselect\n ? html `\n <div class=\"table-footer\">\n <div class=\"table-footer-description\">\n ${this._countRowsChecked()} ${this._selectedRowsLabel}\n </div>\n\n <div class=\"table-footer-actions\">\n ${this._footerButtons >= 3\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--subtle\"\n ?disabled=${this._countRowsChecked() <= 0}\n @click=${() => this._emitFooterAction('alternative')}\n >\n ${this._footerButtonAlternativeLabel}\n </button>\n `\n : null}\n ${this._footerButtons >= 2\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary\"\n ?disabled=${this._countRowsChecked() <= 0}\n @click=${() => this._emitFooterAction('secondary')}\n >\n ${this._footerButtonSecondaryLabel}\n </button>\n `\n : null}\n ${this._footerButtons >= 1\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--primary\"\n ?disabled=${this._countRowsChecked() <= 0}\n @click=${() => this._emitFooterAction('primary')}\n >\n ${this._footerButtonPrimaryLabel}\n </button>\n `\n : null}\n </div>\n </div>\n `\n : null}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"hasPaginator\", null);\n__decorate([\n property({ type: Array })\n], Table.prototype, \"data\", null);\n__decorate([\n property({ type: Array })\n], Table.prototype, \"customData\", null);\n__decorate([\n property({ type: Array })\n], Table.prototype, \"customTableHeader\", null);\n__decorate([\n property({ type: Array })\n], Table.prototype, \"filters\", null);\n__decorate([\n property({ type: Number })\n], Table.prototype, \"currentIndex\", null);\n__decorate([\n property({ type: Number })\n], Table.prototype, \"pageSize\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"pageSizeOptions\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"resultstext\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"rowsperpagetext\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"textAlign\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"headerTitle\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"hideHeader\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"innerFilters\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"expandTable\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"expandLabel\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"collapseLabel\", null);\n__decorate([\n property({ type: Number })\n], Table.prototype, \"rowsOnCollapsed\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"filtersLabel\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"cleanFiltersLabel\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"selectedRowsLabel\", null);\n__decorate([\n property({ type: Number })\n], Table.prototype, \"footerButtons\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"maxContentWidth\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"stickyColumns\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"multiselect\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"radioselect\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"hasRowButton\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"rowButtonLabel\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"hasRowActions\", null);\n__decorate([\n property({ type: Array })\n], Table.prototype, \"rowActionsIcons\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"footerButtonPrimaryLabel\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"footerButtonSecondaryLabel\", null);\n__decorate([\n property({ type: String })\n], Table.prototype, \"footerButtonAlternativeLabel\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"enableRowActionsOnDisabled\", null);\n__decorate([\n property({ type: Boolean })\n], Table.prototype, \"enableRowActionsOnDeleted\", null);\n__decorate([\n property({ type: Number })\n], Table.prototype, \"valueMaxLength\", null);\nTable = __decorate([\n customElement('dss-table')\n], Table);\nexport { Table };\n//# sourceMappingURL=table.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\n/* eslint-disable import/extensions */\n/* eslint-disable no-param-reassign */\n/* eslint-disable no-nested-ternary */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { badgeStyles } from './shared-styles/badge.style';\nimport { buttonStyles } from './shared-styles/button.style';\nimport { chipStyles } from './shared-styles/chip.style';\nimport { checkboxStyles } from './shared-styles/checkbox.style';\nimport { radioStyles } from './shared-styles/radio.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nlet TableHeader = class TableHeader extends LitElement {\n constructor() {\n super(...arguments);\n this._filters = [];\n this._headerTitle = '';\n this._innerFilters = false;\n this._expandTable = false;\n this._expandLabel = 'Ampliar';\n this._collapseLabel = 'Reduir';\n this._rowsOnCollapsed = 5;\n this._filtersLabel = 'Selecció';\n this._cleanFiltersLabel = 'Netejar filtres';\n this._openFiltersLabel = 'Filtres';\n this._noFiltersLabel = 'No hi ha filtres seleccionats';\n }\n static get styles() {\n return [\n symbolStyles,\n buttonStyles,\n chipStyles,\n checkboxStyles,\n radioStyles,\n iconButtonStyles,\n css `\n :host {\n display: block;\n width: 100%;\n }\n\n .dss-table-header {\n padding: var(--dss-spacing-md) 0;\n }\n\n .dss-table-header-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--dss-spacing-xs);\n margin-bottom: var(--dss-spacing-md);\n }\n\n .dss-table-header-title__text {\n color: var(--color-neutral-900);\n font-weight: var(--font-bold);\n font-size: 20px;\n }\n\n .dss-table-header-title__action {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--dss-spacing-xxs);\n font-size: 14px;\n color: var(--color-primary-700);\n cursor: pointer;\n border-radius: var(--dss-radius-xs);\n font-weight: var(--font-semibold);\n }\n\n .dss-table-header-title__action:hover {\n color: var(--color-primary-600);\n }\n\n .dss-table-header-title__action:active {\n color: var(--color-primary-400);\n }\n\n .dss-table-header-title__action:focus-visible {\n outline: var(--dss-border-width-md) solid var(--color-blue-200);\n }\n\n .dss-table-header-filters {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .dss-table-header-filters__filters {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-md);\n width: 70%;\n box-sizing: border-box;\n }\n\n .dss-table-header-filters--inner .dss-table-header-filters__filters {\n width: 80%;\n }\n\n .filters-label {\n font-size: 14px;\n font-weight: var(--font-bold);\n color: var(--color-neutral-600);\n }\n\n .filters-list {\n display: flex;\n flex-wrap: wrap;\n max-width: 60%;\n gap: var(--dss-spacing-xs);\n }\n\n .filters-list-empty {\n font-size: 14px;\n color: var(--color-neutral-600);\n }\n\n .filters-clean {\n padding-left: var(--dss-spacing-md);\n border-left: var(--dss-border-width-sm) solid var(--color-neutral-100);\n }\n\n .dss-table-header-filters__actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--dss-spacing-md);\n width: 30%;\n box-sizing: border-box;\n }\n\n .dss-table-header-filters--inner .dss-table-header-filters__actions {\n width: 20%;\n }\n\n ::slotted(div.dss-table-filters) {\n width: 100%;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n }\n `,\n badgeStyles, // Fix: Last position to override default icon badge style\n ];\n }\n set filters(filters) {\n const oldValue = this._filters;\n this._filters = filters;\n this.requestUpdate('filters', oldValue);\n }\n set headerTitle(value) {\n const oldValue = this._headerTitle;\n this._headerTitle = value;\n this.requestUpdate('headerTitle', oldValue);\n }\n set innerFilters(value) {\n const oldValue = this._innerFilters;\n this._innerFilters = value;\n this.requestUpdate('innerFilters', oldValue);\n }\n set expandTable(value) {\n const oldValue = this._expandTable;\n this._expandTable = value;\n this.requestUpdate('expandTable', oldValue);\n }\n set expandLabel(value) {\n const oldValue = this._expandLabel;\n this._expandLabel = value;\n this.requestUpdate('expandLabel', oldValue);\n }\n set collapseLabel(value) {\n const oldValue = this._collapseLabel;\n this._collapseLabel = value;\n this.requestUpdate('collapseLabel', oldValue);\n }\n set rowsOnCollapsed(value) {\n const oldValue = this._rowsOnCollapsed;\n this._rowsOnCollapsed = value;\n this.requestUpdate('rowsOnCollapsed', oldValue);\n }\n set filtersLabel(value) {\n const oldValue = this._filtersLabel;\n this._filtersLabel = value;\n this.requestUpdate('filtersLabel', oldValue);\n }\n set cleanFiltersLabel(value) {\n const oldValue = this._cleanFiltersLabel;\n this._cleanFiltersLabel = value;\n this.requestUpdate('cleanFiltersLabel', oldValue);\n }\n _generateFilterChips() {\n let filterChips;\n if (this._filters) {\n filterChips = this._filters.map(filter => {\n const onClickOption = (e) => {\n const termClicked = e.target.getAttribute('term');\n if (typeof filter === 'string') {\n this._filters = this._filters.filter(item => item !== termClicked);\n }\n else {\n this._filters = this._filters.filter(item => item.value.trim() !== (termClicked === null || termClicked === void 0 ? void 0 : termClicked.trim()));\n }\n this._emitChangeFilters();\n this.requestUpdate();\n };\n const filterType = typeof filter;\n const chip = html `\n <span tabindex=\"0\" class=\"dss-chip dss-chip--sm dss-chip--selected\">\n ${filterType === 'string'\n ? html `\n ${filter}\n <button\n class=\"dss-chip__icon-button dss-icon-button dss-icon-button--primary dss-icon-button--sm\"\n @click=\"${onClickOption}\"\n >\n <span class=\"dss-icon\" term=\"${filter}\">cancel</span>\n </button>\n `\n : html `\n <span class=\"dss-icon\">${filter.icon}</span>\n ${filter.value}\n <button\n class=\"dss-chip__icon-button dss-icon-button dss-icon-button--primary dss-icon-button--sm\"\n @click=\"${onClickOption}\"\n >\n <span class=\"dss-icon\" term=\" ${filter.value}\"\n >cancel</span\n >\n </button>\n `}\n </span>\n `;\n return chip;\n });\n }\n return filterChips;\n }\n _clearFilters() {\n this._filters = [];\n this._emitChangeFilters();\n this.requestUpdate();\n }\n // Output events\n _emitExpandAction() {\n const options = {\n detail: this._expandTable,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onExpandTable', options));\n this._expandTable = !this._expandTable;\n this.requestUpdate();\n }\n _emitOpenFilters() {\n const options = {\n detail: true,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onOpenFilters', options));\n this.requestUpdate();\n }\n _emitChangeFilters() {\n const options = {\n detail: this._filters,\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onChangeFilters', options));\n this.requestUpdate();\n }\n render() {\n return html `\n <div class=\"dss-table-header\">\n <div class=\"dss-table-header-title\">\n <div class=\"dss-table-header-title__text\">${this._headerTitle}</div>\n <div\n class=\"dss-table-header-title__action\"\n role=\"button\"\n tabindex=\"0\"\n @click=\"${this._emitExpandAction}\"\n >\n ${this._expandTable\n ? html `\n <span class=\"dss-icon dss-icon--sm\">fullscreen</span>\n <span>${this._collapseLabel}</span>\n `\n : html `\n <span class=\"dss-icon dss-icon--sm\">fullscreen</span>\n <span>${this._expandLabel}</span>\n `}\n </div>\n </div>\n\n ${this._innerFilters\n ? html `\n <div\n class=\"dss-table-header-filters dss-table-header-filters--inner\"\n >\n <div class=\"dss-table-header-filters__filters\">\n <slot name=\"filters\"></slot>\n </div>\n <div class=\"dss-table-header-filters__actions\"></div>\n </div>\n `\n : html `\n <div\n class=\"dss-table-header-filters dss-table-header-filters--outer\"\n >\n <div class=\"dss-table-header-filters__filters\">\n <div class=\"filters-label\">${this._filtersLabel}:</div>\n <div class=\"filters-list\">\n ${this._filters.length > 0\n ? html ` ${this._generateFilterChips()} `\n : html `\n <span class=\"filters-list-empty\">\n ${this._noFiltersLabel}\n </span>\n `}\n </div>\n <div class=\"filters-clean\">\n ${this._filters.length > 0\n ? html `\n <button\n type=\"button\"\n class=\"dss-button dss-button--sm dss-button--secondary dss-button--icon-left\"\n @click=${this._clearFilters}\n >\n <span class=\"material-symbols-rounded\">mop</span\n >${this._cleanFiltersLabel}\n </button>\n `\n : null}\n </div>\n </div>\n\n <div class=\"dss-table-header-filters__actions\">\n <button\n type=\"button\"\n class=\"dss-button dss-button--md dss-button--secondary dss-button--icon-left\"\n @click=${this._emitOpenFilters}\n >\n <span class=\"material-symbols-rounded\">filter_list</span>\n ${this._openFiltersLabel}\n </button>\n </div>\n </div>\n `}\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Array })\n], TableHeader.prototype, \"filters\", null);\n__decorate([\n property({ type: String })\n], TableHeader.prototype, \"headerTitle\", null);\n__decorate([\n property({ type: Boolean })\n], TableHeader.prototype, \"innerFilters\", null);\n__decorate([\n property({ type: Boolean })\n], TableHeader.prototype, \"expandTable\", null);\n__decorate([\n property({ type: String })\n], TableHeader.prototype, \"expandLabel\", null);\n__decorate([\n property({ type: String })\n], TableHeader.prototype, \"collapseLabel\", null);\n__decorate([\n property({ type: Number })\n], TableHeader.prototype, \"rowsOnCollapsed\", null);\n__decorate([\n property({ type: String })\n], TableHeader.prototype, \"filtersLabel\", null);\n__decorate([\n property({ type: String })\n], TableHeader.prototype, \"cleanFiltersLabel\", null);\nTableHeader = __decorate([\n customElement('dss-table-header')\n], TableHeader);\nexport { TableHeader };\n//# sourceMappingURL=table-header.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nlet Stepper = class Stepper extends LitElement {\n constructor() {\n super(...arguments);\n this._steps = [];\n this._currentStep = 1;\n this._column = false;\n this._circular = false;\n this._hideLabel = false;\n this._size = 'md';\n this._activeBarWidth = '0';\n this._isFirstUpdate = true;\n }\n static get styles() {\n return css `\n :host {\n display: inline-block;\n height: 100%;\n width: 100%;\n --circle: 32px;\n --circle-md: 24px;\n --circle-sm: 16px;\n --default-background: var(--color-white);\n --default-border-color: var(--color-neutral-500);\n --default-font-color: var(--color-neutral-900);\n --default-background-hover: var(--color-neutral-50);\n --default-font-color-active: var(--color-neutral-500);\n --active-background: var(--color-primary-500);\n --active-border-color: var(--color-primary-500);\n --active-font-color: var(--color-white);\n --completed-background: var(--color-primary-50);\n --disabled-background: var(--color-neutral-100);\n --disabled-border-color: var(--color-neutral-100);\n --disabled-font-color: var(--color-neutral-600);\n --line-width: 2px; /* line thickness */\n --font-size: 18px;\n --font-size-md: 16px;\n --font-size-sm: 16px;\n }\n\n .dss-circular-stepper {\n display: flex;\n gap: 16px;\n align-items: center;\n }\n\n .dss-circular-stepper__item {\n width: 3rem;\n height: 3rem;\n position: relative;\n }\n\n .dss-circular-stepper__item svg {\n width: 3rem;\n height: 3rem;\n transform: rotate(-90deg);\n }\n\n .dss-circular-stepper__counter {\n position: absolute;\n font-size: 0.9rem;\n line-height: 24px;\n left: 0;\n top: 0;\n width: 3rem;\n height: 3rem;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .dss-circular-stepper__label,\n .dss-circular-stepper__counter b {\n font-weight: 600;\n color: var(--color-neutral-700);\n font-size: 0.9rem;\n transition: 0.3s all ease-in;\n line-height: 24px;\n }\n\n .dss-circular-stepper circle {\n stroke: var(--color-neutral-200);\n stroke-dashoffset: 0;\n fill: none;\n stroke-linecap: round;\n stroke-width: 6px;\n stroke-dasharray: 100, 100;\n transition: 0.3s all ease-in;\n }\n\n .dss-circular-stepper circle:last-of-type {\n stroke: var(--color-primary-500);\n stroke-dasharray: var(--percent), 100;\n stroke-dashoffset: 0;\n }\n\n .dss-stepper {\n display: flex;\n list-style: none;\n justify-content: space-between;\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n 50% calc((var(--circle) - var(--line-width)) / 2) / 100%\n var(--line-width);\n counter-reset: step;\n margin: var(--dss-spacing-xxs) 0 var(--dss-spacing-xl);\n padding: 0;\n counter-reset: step;\n }\n\n .dss-stepper--md {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n 50% calc((var(--circle-md) - var(--line-width)) / 2) / 100%\n var(--line-width);\n }\n\n .dss-stepper--sm {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n 50% calc((var(--circle-sm) - var(--line-width)) / 2) / 100%\n var(--line-width);\n }\n\n .dss-bubble {\n display: grid;\n place-items: center;\n gap: 0;\n position: relative;\n border-radius: 50%;\n transition: 0.3s outline ease-in;\n }\n\n .dss-bubble:focus-visible {\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n /* Bubble Completed */\n .dss-bubble::before {\n /* Default bubble is completed */\n cursor: pointer;\n content: counter(step) ' ';\n counter-increment: step;\n display: grid;\n place-content: center;\n aspect-ratio: 1;\n height: var(--circle);\n box-sizing: border-box;\n border-radius: 50%;\n font-size: var(--font-size);\n font-weight: var(--font-semibold);\n font-family: var(--font-family);\n z-index: 100;\n background-color: var(--default-background);\n border: var(--line-width) solid var(--active-border-color);\n color: var(--default-font-color);\n transition: 0.3s all ease-in;\n }\n\n .dss-bubble:not(.dss-bubble--active):not(:active):hover::before {\n background-color: var(--completed-background);\n }\n\n .dss-bubble:active::before {\n }\n\n .dss-stepper--md .dss-bubble::before {\n height: var(--circle-md);\n font-size: var(--font-size-md);\n }\n\n .dss-stepper--sm .dss-bubble::before {\n content: '';\n height: var(--circle-sm);\n font-size: var(--font-size-sm);\n height: 16px;\n width: 16px;\n }\n\n /* Bubble Active */\n .dss-bubble--active::before {\n background-color: var(--active-background);\n border-color: var(--active-border-color);\n color: var(--active-font-color);\n }\n\n /* Bubble Default */\n .dss-bubble--active ~ .dss-bubble::before {\n /* Default bubble are all set after active */\n background-color: var(--default-background);\n border-color: var(--default-border-color);\n color: var(--default-font-color);\n }\n\n .dss-bubble--active ~ .dss-bubble:not(.dss-bubble--active):hover::before {\n background-color: var(--default-background-hover);\n }\n\n .dss-bubble--active ~ .dss-bubble:active::before {\n background-color: var(--default-background);\n color: var(--default-font-color-active);\n }\n\n /* Bubble Icon */\n .dss-bubble--icon::before {\n content: attr(icon);\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n }\n\n /* Bubble States */\n .dss-bubble--checked::before {\n content: 'done';\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n font-size: 24px;\n color: var(--color-primary-500) !important;\n }\n\n .dss-stepper--sm .dss-bubble--checked::before {\n content: 'check_circle';\n background-color: var(--color-primary-500);\n color: var(--color-white) !important;\n border-width: 1px !important;\n }\n\n .dss-stepper--sm .dss-bubble--checked:hover::before {\n border-color: var(--color-white);\n color: var(--color-primary-500) !important;\n }\n\n .dss-bubble--checked:active::before {\n background-color: var(--color-white);\n color: var(--color-primary-300) !important;\n border-color: var(--color-primary-500) !important;\n }\n\n .dss-stepper--sm .dss-bubble--checked:active::before {\n border-color: var(--color-white) !important;\n color: var(--color-primary-300) !important;\n }\n\n .dss-bubble--info::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--info::before {\n content: 'info_i';\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n background-color: var(--color-white);\n color: var(--color-blue-500);\n border-color: var(--color-blue-500);\n }\n\n .dss-bubble--info:hover::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--info:hover::before {\n background-color: var(--color-blue-50) !important;\n }\n\n .dss-bubble--info:active::before,\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--info:not(.dss-bubble--active):active::before {\n color: var(--color-blue-300) !important;\n background-color: var(--color-white) !important;\n }\n\n .dss-stepper--sm .dss-bubble--info::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--info::before {\n content: 'info';\n background-color: var(--color-blue-500);\n border-color: var(--color-blue-500);\n color: var(--color-white) !important;\n border-width: 1px !important;\n }\n\n .dss-stepper--sm .dss-bubble--info:hover::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--info:hover::before {\n background-color: var(--color-blue-50) !important;\n border-color: var(--color-white);\n color: var(--color-blue-500) !important;\n }\n\n .dss-stepper--sm .dss-bubble--info:active::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--info:active::before {\n background-color: var(--color-white) !important;\n border-color: var(--color-white) !important;\n color: var(--color-blue-300) !important;\n }\n\n .dss-bubble--alert {\n }\n\n .dss-bubble--alert::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--alert::before {\n content: 'priority_high';\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n background-color: var(--color-white);\n color: var(--color-yellow-800);\n border-color: var(--color-yellow-800);\n }\n\n .dss-bubble--alert:not(:active):hover::before {\n background-color: var(--color-yellow-50) !important;\n }\n\n .dss-bubble--alert:active::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--alert:active::before {\n color: var(--color-yellow-700) !important;\n background-color: var(--color-white);\n }\n\n .dss-stepper--sm .dss-bubble--alert::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--alert::before {\n content: 'error';\n background-color: var(--color-yellow-800);\n border-color: var(--color-yellow-800);\n color: var(--color-white) !important;\n border-width: 1px !important;\n }\n\n .dss-stepper--sm .dss-bubble--alert:hover::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--alert:hover::before {\n background-color: var(--color-yellow-50) !important;\n border-color: var(--color-white);\n color: var(--color-yellow-800) !important;\n }\n\n .dss-stepper--sm .dss-bubble--alert:active::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--alert:active::before {\n background-color: var(--color-white) !important;\n border-color: var(--color-white) !important;\n color: var(--color-yellow-700) !important;\n }\n\n .dss-bubble--error {\n }\n\n .dss-bubble--error::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--error::before {\n content: 'close';\n font-family: 'Material Symbols Rounded';\n font-weight: normal;\n background-color: var(--color-white);\n color: var(--color-red-500);\n border-color: var(--color-red-500);\n }\n\n .dss-bubble--error:not(:active):hover::before {\n background-color: var(--color-red-50) !important;\n }\n\n .dss-bubble--error:active::before,\n .dss-bubble--active ~ .dss-bubble.dss-bubble--error:active::before {\n color: var(--color-red-300) !important;\n background-color: var(--color-white);\n }\n\n .dss-stepper--sm .dss-bubble--error::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--error::before {\n content: 'cancel';\n background-color: var(--color-red-500);\n border-color: var(--color-red-500);\n color: var(--color-white) !important;\n border-width: 1px !important;\n }\n\n .dss-stepper--sm .dss-bubble--error:hover::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--error:hover::before {\n background-color: var(--color-red-50) !important;\n border-color: var(--color-white);\n color: var(--color-red-500) !important;\n }\n\n .dss-stepper--sm .dss-bubble--error:active::before,\n .dss-stepper--sm\n .dss-bubble--active\n ~ .dss-bubble.dss-bubble--error:active::before {\n background-color: var(--color-white) !important;\n border-color: var(--color-white) !important;\n color: var(--color-red-300) !important;\n }\n\n .dss-bubble--disabled::before {\n cursor: not-allowed;\n background-color: var(--disabled-background) !important;\n border-color: var(--disabled-border-color) !important;\n color: var(--disabled-font-color) !important;\n }\n\n /* Active Bar */\n .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n animation: animate 0.3s;\n }\n\n .dss-stepper--md .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Stepper Vertical */\n .dss-stepper--vertical {\n height: 100%;\n flex-direction: column;\n gap: 0;\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle) - var(--line-width)) / 2) 50% / var(--line-width)\n 100%;\n }\n\n .dss-stepper--vertical .dss-bubble {\n display: flex;\n width: fit-content;\n }\n\n .dss-stepper--vertical .dss-bubble:not(:first-child) {\n margin-top: var(--dss-spacing-lg);\n }\n\n .dss-stepper--vertical .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-stepper--vertical .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n animation: column-animate 0.5s;\n }\n\n .dss-stepper--md.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-md) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--sm.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-sm) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Step Label */\n .dss-stepper:not(.dss-stepper--vertical) .dss-bubble-label {\n position: absolute;\n top: calc(100% + var(--dss-spacing-xxs));\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-bubble-label {\n width: max-content;\n font-weight: var(--font-regular);\n font-size: 14px;\n color: var(--color-neutral-700);\n }\n\n .dss-bubble-label--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-bubble--active .dss-bubble-label {\n color: var(--color-neutral-700);\n font-weight: var(--font-semibold);\n }\n\n .dss-stepper--vertical .dss-bubble-label {\n position: absolute;\n left: calc(100% + var(--dss-spacing-xs));\n top: 50%;\n transform: translateY(-50%);\n }\n\n .dss-bubble-label.hide-label {\n display: none;\n }\n\n @keyframes animate {\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n }\n\n .dss-bubble--error:not(:active):hover::before {\n background-color: var(--color-red-50) !important;\n }\n\n .dss-bubble--error:active::before {\n color: var(--color-red-300) !important;\n }\n\n .dss-stepper--sm .dss-bubble--error::before {\n content: 'cancel';\n background-color: var(--color-red-500);\n border-color: var(--color-red-500);\n color: var(--color-white) !important;\n border-width: 1px !important;\n }\n\n .dss-stepper--sm .dss-bubble--error:hover::before {\n background-color: var(--color-red-50) !important;\n border-color: var(--color-white);\n color: var(--color-red-500) !important;\n }\n\n .dss-stepper--sm .dss-bubble--error:active::before {\n background-color: var(--color-white) !important;\n border-color: var(--color-white) !important;\n color: var(--color-red-300) !important;\n }\n\n .dss-bubble--disabled::before {\n cursor: not-allowed;\n background: var(--disabled-background) !important;\n border-color: var(--disabled-border-color) !important;\n color: var(--disabled-font-color) !important;\n }\n\n /* Active Bar */\n .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n animation: animate 0.3s;\n }\n\n .dss-stepper--md .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Stepper Vertical */\n .dss-stepper--vertical {\n height: 100%;\n flex-direction: column;\n gap: 0;\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle) - var(--line-width)) / 2) 50% / var(--line-width)\n 100%;\n }\n\n .dss-stepper--vertical .dss-bubble {\n display: flex;\n width: fit-content;\n }\n\n .dss-stepper--vertical .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-stepper--vertical .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n animation: column-animate 0.5s;\n }\n\n .dss-stepper--md.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-md) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--sm.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-sm) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Step Label */\n .dss-stepper:not(.dss-stepper--vertical) .dss-bubble-label {\n position: absolute;\n top: calc(100% + var(--dss-spacing-xxs));\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-bubble-label {\n width: max-content;\n font-weight: var(--font-regular);\n font-size: 14px;\n color: var(--color-neutral-700);\n }\n\n .dss-bubble-label--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-bubble--active .dss-bubble-label {\n color: var(--color-neutral-700);\n font-weight: var(--font-semibold);\n }\n\n .dss-stepper--vertical .dss-bubble-label {\n position: absolute;\n left: calc(100% + var(--dss-spacing-xs));\n top: 50%;\n transform: translateY(-50%);\n }\n\n .dss-bubble-label.hide-label {\n display: none;\n }\n\n /* Active Bar */\n .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n height: var(--line-width);\n right: 0;\n top: calc((var(--circle) - var(--line-width)) / 2);\n width: var(--active-bar-width);\n background: var(--active-background);\n animation: animate 0.3s;\n }\n\n .dss-stepper--md .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--completed:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm .dss-bubble--active:not(:first-child)::after {\n top: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Stepper Vertical */\n .dss-stepper--vertical {\n height: 100%;\n flex-direction: column;\n gap: 0;\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle) - var(--line-width)) / 2) 50% / var(--line-width)\n 100%;\n }\n\n .dss-stepper--vertical .dss-bubble {\n display: flex;\n width: fit-content;\n }\n\n .dss-stepper--vertical .dss-bubble--completed:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n }\n\n .dss-stepper--vertical .dss-bubble--active:not(:first-child)::after {\n content: '';\n position: absolute;\n width: var(--line-width);\n bottom: 0;\n left: calc((var(--circle) - var(--line-width)) / 2);\n top: auto;\n right: auto;\n height: var(--active-bar-width);\n background: var(--active-background);\n animation: column-animate 0.5s;\n }\n\n .dss-stepper--md.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-md) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--sm.dss-stepper--vertical {\n background: linear-gradient(var(--default-border-color) 0 0) no-repeat\n calc((var(--circle-sm) - var(--line-width)) / 2) 50% /\n var(--line-width) 100%;\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--completed:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n .dss-stepper--md.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-md) - var(--line-width)) / 2);\n }\n\n .dss-stepper--sm.dss-stepper--vertical\n .dss-bubble--active:not(:first-child)::after {\n left: calc((var(--circle-sm) - var(--line-width)) / 2);\n }\n\n /* Step Label */\n .dss-stepper:not(.dss-stepper--vertical) .dss-bubble-label {\n position: absolute;\n top: calc(100% + var(--dss-spacing-xxs));\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-bubble-label {\n width: max-content;\n font-weight: var(--font-regular);\n font-size: 14px;\n color: var(--color-neutral-700);\n }\n\n .dss-bubble-label--disabled {\n color: var(--color-neutral-500);\n }\n\n .dss-bubble--active .dss-bubble-label {\n color: var(--color-neutral-700);\n font-weight: var(--font-semibold);\n }\n\n .dss-stepper--vertical .dss-bubble-label {\n position: absolute;\n left: calc(100% + var(--dss-spacing-xs));\n top: 50%;\n transform: translateY(-50%);\n }\n\n .dss-bubble-label.hide-label {\n display: none;\n }\n\n @keyframes animate {\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n }\n\n @keyframes column-animate {\n 0% {\n height: 0;\n }\n 100% {\n height: 100%;\n }\n }\n `;\n }\n set steps(steps) {\n const oldValue = this._steps;\n this._steps = steps;\n if (typeof steps === 'string') {\n // eslint-disable-next-line no-eval\n this._steps = eval(`(${steps})`);\n }\n this.requestUpdate('steps', oldValue);\n }\n set currentStep(currentStep) {\n const oldValue = this._currentStep;\n this._currentStep = currentStep;\n this.requestUpdate('currentStep', oldValue);\n }\n set column(column) {\n const oldValue = this._column;\n this._column = column;\n this.requestUpdate('column', oldValue);\n }\n set circular(circular) {\n const oldValue = this._circular;\n this._circular = circular;\n this.requestUpdate('circular', oldValue);\n }\n set hideLabel(hideLabel) {\n const oldValue = this._hideLabel;\n this._hideLabel = hideLabel;\n this.requestUpdate('hideLabel', oldValue);\n }\n set size(size) {\n const oldValue = this._size;\n this._size = size;\n this.requestUpdate('size', oldValue);\n }\n async firstUpdated() {\n await this.updateComplete;\n this._setActiveBarWidth();\n this._isFirstUpdate = false;\n this.requestUpdate();\n }\n willUpdate(changedProperties) {\n if (!this._isFirstUpdate) {\n if (changedProperties.has('currentStep') ||\n changedProperties.has('steps') ||\n changedProperties.has('column')) {\n this._setActiveBarWidth();\n this.requestUpdate();\n }\n }\n }\n _setActiveBarWidth() {\n var _a;\n const stepsLength = this._steps.length;\n const stepper = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.dss-stepper');\n const rect = stepper === null || stepper === void 0 ? void 0 : stepper.getBoundingClientRect();\n const size = this._column ? rect === null || rect === void 0 ? void 0 : rect.height : rect === null || rect === void 0 ? void 0 : rect.width;\n if (size) {\n const segment = Math.floor(size / (stepsLength - 1));\n this._activeBarWidth = `${segment}px`;\n // const activeSegmentsWidth = segment * (this._currentStep - 1);\n // this._activeBarWidth = `${activeSegmentsWidth}px`;\n }\n }\n _onStepClick(step, stepNumber) {\n const disabled = step.state === 'disabled';\n if (!disabled) {\n const options = {\n detail: { step, stepNumber },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onStepClick', options));\n }\n }\n render() {\n var _a, _b;\n const totalSteps = (_a = this._steps) === null || _a === void 0 ? void 0 : _a.length;\n const percent = Math.round((this._currentStep / totalSteps) * 100);\n const stepperClass = {\n 'dss-stepper--vertical': this._column,\n 'dss-stepper--sm': this._size === 'sm',\n 'dss-stepper--md': this._size === 'md',\n };\n return html `\n ${this._circular\n ? html `\n <div class=\"dss-circular-stepper\">\n <div class=\"dss-circular-stepper__item\">\n <svg viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"33\" cy=\"33\" r=\"28\" pathLength=\"100\"></circle>\n <circle\n cx=\"33\"\n cy=\"33\"\n r=\"28\"\n style=\"--percent: ${percent}\"\n pathLength=\"100\"\n ></circle>\n </svg>\n <span class=\"dss-circular-stepper__counter\">\n <b>${this._currentStep}</b>/${totalSteps}\n </span>\n </div>\n <span class=\"dss-circular-stepper__label\">\n ${this._steps[this._currentStep - 1].label}\n </span>\n </div>\n `\n : html `\n <style>\n :host {\n --active-bar-width: ${this._activeBarWidth};\n }\n </style>\n <ol class=\"dss-stepper ${classMap(stepperClass)}\">\n ${(_b = this._steps) === null || _b === void 0 ? void 0 : _b.map((step, i) => {\n const stepNumber = i + 1;\n const onKeyDown = (e) => {\n const keyboardEvent = e;\n if (keyboardEvent.key === 'Enter') {\n this._onStepClick(step, stepNumber);\n }\n };\n const disabled = step.state === 'disabled';\n const bubbleClass = {\n 'dss-bubble--active': stepNumber === this._currentStep,\n 'dss-bubble--completed': stepNumber < this._currentStep,\n 'dss-bubble--checked': step.state === 'checked' &&\n stepNumber !== this._currentStep,\n 'dss-bubble--error': step.state === 'error' && stepNumber !== this._currentStep,\n 'dss-bubble--info': step.state === 'info' && stepNumber !== this._currentStep,\n 'dss-bubble--alert': step.state === 'alert' && stepNumber !== this._currentStep,\n 'dss-bubble--disabled': step.state === 'disabled',\n 'dss-bubble--icon': !!(step === null || step === void 0 ? void 0 : step.icon) && this._size !== 'sm',\n };\n const hideLabel = {\n 'dss-bubble-label--disabled': step.state === 'disabled',\n 'hide-label': this._hideLabel,\n };\n return html `\n <li\n class=\"dss-bubble ${classMap(bubbleClass)}\"\n icon=\"${(step === null || step === void 0 ? void 0 : step.icon) || ''}\"\n tabindex=\"${disabled ? -1 : 0}\"\n aria-label=\"Step ${step === null || step === void 0 ? void 0 : step.state}\"\n @click=${() => this._onStepClick(step, stepNumber)}\n @keydown=${onKeyDown}\n >\n <span class=\"dss-bubble-label ${classMap(hideLabel)}\"\n >${step.label}</span\n >\n </li>\n `;\n })}\n </ol>\n `}\n `;\n }\n};\n__decorate([\n property({ type: [] })\n], Stepper.prototype, \"steps\", null);\n__decorate([\n property({ type: Number })\n], Stepper.prototype, \"currentStep\", null);\n__decorate([\n property({ type: Boolean })\n], Stepper.prototype, \"column\", null);\n__decorate([\n property({ type: Boolean })\n], Stepper.prototype, \"circular\", null);\n__decorate([\n property({ type: Boolean })\n], Stepper.prototype, \"hideLabel\", null);\n__decorate([\n property({ type: String })\n], Stepper.prototype, \"size\", null);\nStepper = __decorate([\n customElement('dss-stepper')\n], Stepper);\nexport { Stepper };\n//# sourceMappingURL=stepper.js.map","import { __decorate } from \"tslib\";\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nlet Tooltip = class Tooltip extends LitElement {\n constructor() {\n super(...arguments);\n this._position = 'top';\n this._align = 'left';\n this._hide = false;\n this._noHeightLimit = false;\n }\n static get styles() {\n return [\n symbolStyles,\n css `\n .dss-tooltip {\n position: absolute;\n display: flex;\n width: 264px;\n z-index: 900;\n }\n\n .dss-tooltip-box {\n position: relative;\n box-sizing: border-box;\n width: fit-content;\n height: fit-content;\n padding: var(--dss-spacing-xs) var(--dss-spacing-md);\n background-color: var(--color-neutral-800);\n border-radius: var(--dss-radius-sm);\n box-shadow: 0 4px 8px 3px rgba(0 0 0 / 5%),\n 0 1px 3px rgba(0 0 0 / 10%);\n font-size: 14px;\n color: var(--color-white);\n }\n\n .dss-tooltip--top {\n justify-content: center;\n bottom: calc(100% + var(--dss-spacing-md));\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-tooltip--right {\n justify-content: flex-start;\n left: calc(100% + var(--dss-spacing-md));\n top: 50%;\n transform: translateY(-50%);\n }\n\n .dss-tooltip--bottom {\n justify-content: center;\n top: calc(100% + var(--dss-spacing-md));\n left: 50%;\n transform: translate(-50%);\n }\n\n .dss-tooltip--left {\n justify-content: flex-end;\n right: calc(100% + var(--dss-spacing-md));\n top: 50%;\n transform: translateY(-50%);\n }\n\n .dss-tooltip--right > .dss-tooltip-box::before {\n content: '';\n position: absolute;\n display: block;\n width: 0px;\n left: 0;\n top: 50%;\n border: 8px solid transparent;\n border-left: 0;\n border-right: 8px solid var(--color-neutral-800);\n transform: translate(-100%, -50%);\n }\n\n .dss-tooltip--bottom > .dss-tooltip-box::before {\n content: '';\n position: absolute;\n display: block;\n width: 0px;\n left: 50%;\n top: 0;\n border: 8px solid transparent;\n border-top: 0;\n border-bottom: 8px solid var(--color-neutral-800);\n transform: translate(-50%, -100%);\n }\n\n .dss-tooltip--left > .dss-tooltip-box::before {\n content: '';\n position: absolute;\n display: block;\n width: 0px;\n right: 0;\n top: 50%;\n border: 8px solid transparent;\n border-right: 0;\n border-left: 8px solid var(--color-neutral-800);\n transform: translate(100%, -50%);\n }\n\n .dss-tooltip--top > .dss-tooltip-box::before {\n content: '';\n position: absolute;\n display: block;\n width: 0px;\n left: 50%;\n bottom: 0;\n border: 8px solid transparent;\n border-bottom: 0;\n border-top: 8px solid var(--color-neutral-800);\n transform: translate(-50%, 100%);\n }\n\n .dss-tooltip-container {\n max-width: 232px;\n max-height: 96px;\n overflow: hidden;\n }\n\n .dss-tooltip--no-height-limit .dss-tooltip-container {\n max-height: max-content;\n }\n\n .dss-tooltip--align-left {\n text-align: left;\n }\n\n .dss-tooltip--align-right {\n text-align: right;\n }\n\n .dss-tooltip--align-center {\n text-align: center;\n }\n\n .dss-tooltip--align-justify {\n text-align: justify;\n }\n\n .dss-tooltip--hidden {\n display: none;\n }\n `,\n ];\n }\n set position(position) {\n const oldValue = this._position;\n this._position = position;\n this.requestUpdate('position', oldValue);\n }\n set align(align) {\n const oldValue = this._align;\n this._align = align;\n this.requestUpdate('align', oldValue);\n }\n set hide(value) {\n const oldValue = this._hide;\n this._hide = value;\n this.requestUpdate('hide', oldValue);\n }\n set noHeightLimit(value) {\n const oldValue = this._noHeightLimit;\n this._noHeightLimit = value;\n this.requestUpdate('noHeightLimit', oldValue);\n }\n render() {\n const tooltipClassMap = {\n 'dss-tooltip--top': this._position === 'top',\n 'dss-tooltip--right': this._position === 'right',\n 'dss-tooltip--bottom': this._position === 'bottom',\n 'dss-tooltip--left': this._position === 'left',\n 'dss-tooltip--align-left': this._align === 'left',\n 'dss-tooltip--align-right': this._align === 'right',\n 'dss-tooltip--align-center': this._align === 'center',\n 'dss-tooltip--align-justify': this._align === 'justify',\n 'dss-tooltip--hidden': this._hide,\n 'dss-tooltip--no-height-limit': this._noHeightLimit,\n };\n return html `\n <div class=\"dss-tooltip ${classMap(tooltipClassMap)}\">\n <div class=\"dss-tooltip-box\">\n <div class=\"dss-tooltip-container\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: String })\n], Tooltip.prototype, \"position\", null);\n__decorate([\n property({ type: String })\n], Tooltip.prototype, \"align\", null);\n__decorate([\n property({ type: Boolean })\n], Tooltip.prototype, \"hide\", null);\n__decorate([\n property({ type: Boolean })\n], Tooltip.prototype, \"noHeightLimit\", null);\nTooltip = __decorate([\n customElement('dss-tooltip')\n], Tooltip);\nexport { Tooltip };\n//# sourceMappingURL=tooltip.js.map","import { css } from 'lit';\n// Icon Buttons variations\nexport const decorativeIconStyles = css `\n .dss-decorative-icon {\n height: 24px;\n width: 24px;\n min-width: 24px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: var(--dss-radius-xxs);\n background-color: var(--color-primary-50);\n color: var(--color-primary-800);\n font-size: 16px;\n }\n\n .dss-decorative-icon--md {\n height: 32px;\n width: 32px;\n min-width: 32px;\n font-size: 18px;\n border-radius: var(--dss-radius-xs);\n }\n\n .dss-decorative-icon--lg {\n height: 40px;\n width: 40px;\n min-width: 40px;\n font-size: 24px;\n border-radius: var(--dss-radius-sm);\n }\n\n .dss-decorative-icon--xl {\n height: 48px;\n width: 48px;\n min-width: 48px;\n font-size: 30px;\n border-radius: var(--dss-radius-sm);\n }\n\n .dss-decorative-icon--disabled {\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-500);\n }\n\n .dss-decorative-icon--success {\n background-color: var(--color-green-50);\n color: var(--color-green-800);\n }\n\n .dss-decorative-icon--error {\n background-color: var(--color-red-50);\n color: var(--color-red-800);\n }\n`;\n//# sourceMappingURL=decorative-icon.style.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable lit-a11y/click-events-have-key-events */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { decorativeIconStyles } from './shared-styles/decorative-icon.style';\nlet Tile = class Tile extends LitElement {\n constructor() {\n super(...arguments);\n this._type = 'default';\n this._icon = '';\n this._tileTitle = 'Title';\n this._description = 'Lorem ipsum.';\n this._selected = false;\n this._disabled = false;\n this._hasLogo = false;\n this._logoURL = '';\n }\n static get styles() {\n return [\n symbolStyles,\n decorativeIconStyles,\n css `\n :host {\n display: block;\n height: 104px;\n min-width: 320px;\n width: 100%;\n }\n\n .dss-tile {\n box-sizing: border-box;\n height: 104px;\n min-width: 320px;\n width: 100%;\n overflow: hidden;\n background-color: var(--color-white);\n border-radius: var(--dss-radius-sm);\n padding: var(--dss-spacing-md);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: var(--dss-spacing-md);\n border: var(--dss-border-width-md) solid var(--color-neutral-100);\n transition: all 0.3s ease-in;\n }\n\n .dss-tile-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 48px;\n width: 48px;\n height: 48px;\n margin: 0;\n padding: 0;\n overflow: hidden;\n border-radius: var(--dss-radius-xs);\n }\n\n .dss-tile-logo__image {\n width: 100%:\n max-width: 100%;\n margin: 0;\n padding: 0;\n }\n\n .dss-tile-content {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--dss-spacing-md);\n flex: 1 1 100%;\n min-width: 0;\n }\n \n .dss-tile-content .dss-tile-content__text {\n overflow: hidden;\n }\n \n .dss-tile-title {\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical; \n max-height: 24px;\n line-height: 24px;\n font-size: 14px;\n font-weight: var(--font-semibold);\n color: var(--color-neutral-900);\n margin: 0;\n overflow: hidden;\n }\n \n .dss-tile-description {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n max-height: 48px;\n line-height: 24px;\n font-size: 14px;\n color: var(--color-neutral-500);\n margin: 0;\n }\n\n .dss-tile--button:not(.dss-tile--disabled),\n .dss-tile--selector:not(.dss-tile--disabled) {\n cursor: pointer;\n border-color: var(--color-primary-600);\n }\n\n .dss-tile--selected:not(.dss-tile--disabled),\n .dss-tile--button:not(.dss-tile--disabled):hover,\n .dss-tile--selector:not(.dss-tile--disabled):hover {\n background-color: var(--color-primary-50);\n }\n \n .dss-tile--button:not(.dss-tile--disabled):active,\n .dss-tile--selector:not(.dss-tile--disabled):active {\n background-color: var(--color-primary-100);\n }\n\n .dss-tile--button:not(.dss-tile--disabled):focus-visible,\n .dss-tile--selector:not(.dss-tile--disabled):focus-visible {\n border-color: var(--color-blue-200);\n outline: var(--dss-border-width-lg) solid var(--color-blue-200);\n }\n \n .dss-tile--disabled {\n cursor: not-allowed;\n background-color: var(--color-neutral-50);\n }\n \n .dss-tile--disabled .dss-tile__title {\n color: var(--color-neutral-500);\n }\n\n ::slotted(.dss-tile-action-group) {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--dss-spacing-md);\n }\n `,\n ];\n }\n set type(value) {\n const oldValue = this._type;\n this._type = value;\n this.requestUpdate('type', oldValue);\n }\n set icon(value) {\n const oldValue = this._icon;\n this._icon = value;\n this.requestUpdate('icon', oldValue);\n }\n set tileTitle(value) {\n const oldValue = this._tileTitle;\n this._tileTitle = value;\n this.requestUpdate('tileTitle', oldValue);\n }\n set description(value) {\n const oldValue = this._description;\n this._description = value;\n this.requestUpdate('description', oldValue);\n }\n set selected(value) {\n const oldValue = this._selected;\n this._selected = value;\n this.requestUpdate('selected', oldValue);\n }\n set disabled(value) {\n const oldValue = this._disabled;\n this._disabled = value;\n this.requestUpdate('disabled', oldValue);\n }\n set hasLogo(value) {\n const oldValue = this._hasLogo;\n this._hasLogo = value;\n this.requestUpdate('hasLogo', oldValue);\n }\n set logoURL(value) {\n const oldValue = this._logoURL;\n this._logoURL = value;\n this.requestUpdate('logoURL', oldValue);\n }\n _generateTileIconHTML() {\n const iconClassMap = {\n 'dss-decorative-icon--disabled': this._disabled,\n };\n return html `\n <div\n class=\"dss-decorative-icon dss-decorative-icon--xl ${classMap(iconClassMap)}\"\n >\n <i class=\"dss-icon\">${this._icon}</i>\n </div>\n `;\n }\n _generateTileLogoHTML() {\n return html `\n <div class=\"dss-tile-logo\">\n <img\n class=\"dss-tile-logo__image\"\n src=\"${this._logoURL}\"\n alt=\"Tile Logo\"\n />\n </div>\n `;\n }\n _generateTileContentHTML() {\n return html `\n <div class=\"dss-tile-content\">\n <div class=\"dss-tile-content__text\">\n <h4 class=\"dss-tile-title\">${this._tileTitle}</h4>\n <p class=\"dss-tile-description\">${this._description}</p>\n </div>\n ${this._type === 'action' ? html ` <slot name=\"action\"></slot> ` : null}\n </div>\n `;\n }\n _onClick() {\n if (this._type === 'selector') {\n this._selected = !this._selected;\n this.requestUpdate();\n }\n const options = {\n detail: { title: this._tileTitle },\n bubbles: true,\n composed: true,\n };\n this.dispatchEvent(new CustomEvent('onTileClick', options));\n }\n render() {\n const tileClassMap = {\n 'dss-tile--button': this._type === 'button',\n 'dss-tile--selector': this._type === 'selector',\n 'dss-tile--selected': this._type === 'selector' && this._selected,\n 'dss-tile--action': this._type === 'action',\n 'dss-tile--disabled': this._disabled,\n };\n let tile = html ``;\n if (this._type === 'button' || this._type === 'selector') {\n tile = html `\n <div\n class=\"dss-tile ${classMap(tileClassMap)}\"\n tabindex=\"${this._disabled ? -1 : 0}\"\n role=\"button\"\n @click=${this._onClick}\n >\n ${this._icon && !this._hasLogo ? this._generateTileIconHTML() : null}\n ${this._hasLogo ? this._generateTileLogoHTML() : null}\n ${this._generateTileContentHTML()}\n </div>\n `;\n }\n else {\n tile = html `\n <div class=\"dss-tile ${classMap(tileClassMap)}\">\n ${this._icon && !this._hasLogo ? this._generateTileIconHTML() : null}\n ${this._hasLogo ? this._generateTileLogoHTML() : null}\n ${this._generateTileContentHTML()}\n </div>\n `;\n }\n return tile;\n }\n};\n__decorate([\n property({ type: String })\n], Tile.prototype, \"type\", null);\n__decorate([\n property({ type: String })\n], Tile.prototype, \"icon\", null);\n__decorate([\n property({ type: String })\n], Tile.prototype, \"tileTitle\", null);\n__decorate([\n property({ type: String })\n], Tile.prototype, \"description\", null);\n__decorate([\n property({ type: Boolean })\n], Tile.prototype, \"selected\", null);\n__decorate([\n property({ type: Boolean })\n], Tile.prototype, \"disabled\", null);\n__decorate([\n property({ type: Boolean })\n], Tile.prototype, \"hasLogo\", null);\n__decorate([\n property({ type: String })\n], Tile.prototype, \"logoURL\", null);\nTile = __decorate([\n customElement('dss-tile')\n], Tile);\nexport { Tile };\n//# sourceMappingURL=tile.js.map","import { __decorate } from \"tslib\";\n/* eslint-disable wc/guard-super-call */\n/* eslint-disable wc/no-self-class */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { symbolStyles } from './shared-styles/symbol.style';\nimport { buttonStyles } from './shared-styles/button.style';\nimport { iconButtonStyles } from './shared-styles/icon-button.style';\nconst ANIMATION_DURATION = 250;\nlet Modal = class Modal extends LitElement {\n static get styles() {\n return [\n symbolStyles,\n buttonStyles,\n iconButtonStyles,\n css `\n :host {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n visibility: hidden;\n opacity: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: opacity ${ANIMATION_DURATION}ms;\n z-index: 999;\n }\n\n :host([open]) {\n visibility: visible;\n }\n\n :host(.show) {\n opacity: 1;\n }\n\n :host(.hide) {\n opacity: 0;\n }\n\n .dialog {\n width: 50%;\n min-width: 400px;\n max-height: 80%;\n background: var(--color-white);\n padding: var(--dss-spacing-lg);\n border-radius: var(--dss-radius-lg);\n box-shadow: 0 8px 12px 6px rgba(0 0 0 / 5%),\n 0 4px 4px rgba(0 0 0 / 10%);\n visibility: hidden;\n }\n\n :host(.show) .dialog {\n visibility: visible;\n }\n\n .dialog-header {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n gap: var(--dss-spacing-xs);\n padding-bottom: var(--dss-spacing-lg);\n }\n\n .dialog--has-divider .dialog-header {\n border-bottom: var(--dss-border-width-sm) solid\n var(--color-neutral-100);\n }\n\n .dialog-body {\n padding: var(--dss-spacing-lg) 0;\n }\n\n .dialog-footer {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--dss-spacing-md);\n padding-top: var(--dss-spacing-lg);\n }\n\n .dialog--has-divider .dialog-footer {\n border-top: var(--dss-border-width-sm) solid var(--color-neutral-100);\n }\n\n ::slotted(div.dss-modal-footer) {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--dss-spacing-md);\n }\n\n .dialog-header-state--success {\n color: var(--color-green-800);\n }\n\n .dialog-header-state--error {\n color: var(--color-red-800);\n }\n\n .dialog-header-state--alert {\n color: var(--color-yellow-800);\n }\n\n .dialog-header-state--info {\n color: var(--color-blue-800);\n }\n\n .dialog-header-title {\n font-size: 20px;\n line-height: 30px;\n font-weight: var(--font-bold);\n }\n\n .dialog-header-close {\n position: absolute;\n top: -4px;\n right: -4px;\n }\n\n /* Breakpoints */\n\n @media screen and (min-width: 1440px) and (max-width: 1919px) {\n .dialog {\n width: 60%;\n max-width: 960px;\n }\n }\n\n @media only screen and (min-width: 1024px) and (max-width: 1439px) {\n .dialog {\n width: 75%;\n max-width: 864px;\n }\n }\n\n @media only screen and (max-width: 1023px) {\n .dialog {\n width: calc(100% - 48px);\n max-width: 768px;\n min-width: 300px;\n }\n }\n `,\n ];\n }\n set open(value) {\n const oldValue = this._open;\n this._open = value;\n this.requestUpdate('open', oldValue);\n }\n set modalTitle(value) {\n const oldValue = this._modalTitle;\n this._modalTitle = value;\n this.requestUpdate('modalTitle', oldValue);\n }\n set state(value) {\n const oldValue = this._state;\n this._state = value;\n this.requestUpdate('state', oldValue);\n }\n set hasDivider(value) {\n const oldValue = this._hasDivider;\n this._hasDivider = value;\n this.requestUpdate('hasDivider', oldValue);\n }\n constructor() {\n super();\n this._open = true;\n this._modalTitle = 'Title';\n this._state = '';\n this._hasDivider = false;\n this._handleKeydown = this._handleKeydown.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n }\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n }\n updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this._open) {\n this._showDialog();\n }\n else {\n this._hideDialog();\n }\n }\n }\n _showDialog() {\n this.classList.add('show');\n this.classList.remove('hide');\n setTimeout(() => {\n this.classList.add('show');\n this.style.visibility = 'visible';\n }, 0);\n document.addEventListener('keydown', this._handleKeydown);\n }\n _hideDialog() {\n this.classList.add('hide');\n this.classList.remove('show');\n setTimeout(() => {\n this.classList.remove('hide');\n this.style.visibility = 'hidden';\n document.removeEventListener('keydown', this._handleKeydown);\n }, ANIMATION_DURATION);\n }\n _close() {\n this.open = false;\n this._hideDialog();\n this.requestUpdate();\n const event = new Event('onModalClosed');\n this.dispatchEvent(event);\n }\n _getStateIcon() {\n let icon = '';\n switch (this._state) {\n case 'success':\n icon = 'check_circle';\n break;\n case 'error':\n icon = 'cancel';\n break;\n case 'alert':\n icon = 'report';\n break;\n case 'info':\n icon = 'info';\n break;\n default:\n icon = '';\n }\n return icon;\n }\n _handleKeydown(event) {\n if (event.key === 'Escape') {\n this._close();\n }\n }\n _handleOutsideClick(event) {\n var _a;\n if (this._open) {\n const dialog = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.dialog');\n const path = event.composedPath();\n if (dialog && path.includes(this) && !path.includes(dialog)) {\n this._close();\n }\n }\n }\n render() {\n const dialogClassMap = {\n 'dialog--has-divider': this._hasDivider,\n };\n const stateClassMap = {\n 'dialog-header-state--success': this._state === 'success',\n 'dialog-header-state--error': this._state === 'error',\n 'dialog-header-state--alert': this._state === 'alert',\n 'dialog-header-state--info': this._state === 'info',\n };\n return html `\n <div\n class=\"dialog ${classMap(dialogClassMap)}\"\n role=\"dialog\"\n aria-labelledby=\"dialog-title\"\n aria-modal=\"true\"\n >\n <div class=\"dialog-header\">\n <button\n class=\"dss-icon-button dss-icon-button--default dss-icon-button--lg dialog-header-close\"\n @click=\"${this._close}\"\n >\n <span class=\"dss-icon\">close</span>\n </button>\n ${this._state\n ? html `\n <div class=\"dialog-header-state ${classMap(stateClassMap)}\">\n <i class=\"dss-icon dss-icon--fill dss-icon--xl \"\n >${this._getStateIcon()}</i\n >\n </div>\n `\n : null}\n <div id=\"dialog-title\" class=\"dialog-header-title\">\n ${this._modalTitle}\n </div>\n </div>\n\n <div class=\"dialog-body\">\n <slot name=\"body\"></slot>\n </div>\n\n <div class=\"dialog-footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n};\n__decorate([\n property({ type: Boolean })\n], Modal.prototype, \"open\", null);\n__decorate([\n property({ type: String })\n], Modal.prototype, \"modalTitle\", null);\n__decorate([\n property({ type: String })\n], Modal.prototype, \"state\", null);\n__decorate([\n property({ type: Boolean })\n], Modal.prototype, \"hasDivider\", null);\nModal = __decorate([\n customElement('dss-modal')\n], Modal);\nexport { Modal };\n//# sourceMappingURL=modal.js.map","export default \"data:image/svg+xml,%3csvg%20width='94'%20height='24'%20viewBox='0%200%2094%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.36109%200.0906219C4.28803%200.0906219%200.175049%204.88609%200.175049%2010.8006C0.175049%2016.7148%204.28803%2021.5103%209.36109%2021.5103C14.4341%2021.5103%2018.5471%2016.7148%2018.5471%2010.8006C18.5471%204.88609%2014.4341%200.0906219%209.36109%200.0906219Z'%20fill='%23ED192D'/%3e%3cpath%20d='M2.94731%2016.1348C2.06504%2014.6225%201.54761%2012.784%201.54761%2010.8007C1.54761%208.81751%202.06504%206.97893%202.94731%205.46631V16.1348Z'%20fill='white'/%3e%3cpath%20d='M4.92041%203.11644C5.42915%202.69532%205.98132%202.34559%206.56749%202.07705V19.5234C5.98132%2019.2553%205.42915%2018.9048%204.92041%2018.4844V3.11644Z'%20fill='white'/%3e%3cpath%20d='M8.54004%201.5129C8.81008%201.47928%209.08354%201.46191%209.36076%201.46191C9.63986%201.46191%209.91557%201.47966%2010.1871%201.51365V20.087C9.91557%2020.121%209.63986%2020.1392%209.36076%2020.1392C9.08354%2020.1392%208.81008%2020.1214%208.54004%2020.0882V1.5129Z'%20fill='white'/%3e%3cpath%20d='M12.1604%202.07993C12.7469%202.34884%2013.2991%202.70008%2013.8075%203.12119V18.4797C13.2991%2018.9012%2012.7469%2019.2521%2012.1604%2019.521V2.07993Z'%20fill='white'/%3e%3cpath%20d='M15.7808%205.47645C16.6596%206.98681%2017.1752%208.82161%2017.1752%2010.8007C17.1752%2012.7797%2016.6596%2014.6142%2015.7808%2016.1245V5.47645Z'%20fill='white'/%3e%3cpath%20d='M0.944824%2010.8007C0.944824%208.34538%201.69906%206.09853%202.94769%204.36383V4.94963C1.89848%206.56989%201.27454%208.59843%201.27454%2010.8007C1.27454%2013.0026%201.89848%2015.0311%202.94769%2016.6514V17.2368C1.69906%2015.5025%200.944824%2013.2557%200.944824%2010.8007Z'%20fill='white'/%3e%3cpath%20d='M15.7808%2016.6428C16.8266%2015.0241%2017.4486%2012.9989%2017.4486%2010.8008C17.4486%208.6027%2016.8266%206.57755%2015.7808%204.9588V4.37226C17.0264%206.10545%2017.7776%208.34928%2017.7776%2010.8008C17.7776%2013.252%2017.0264%2015.4958%2015.7808%2017.229V16.6428Z'%20fill='white'/%3e%3cpath%20d='M18.3143%2020.3882C18.377%2020.1193%2018.5042%2019.844%2018.6523%2019.6241C18.4623%2019.5309%2018.3022%2019.4606%2018.1371%2019.3175C18.5012%2018.7675%2018.5919%2018.391%2018.6515%2017.7289L18.6259%2013.9857C18.3856%2015.0742%2017.8044%2016.5018%2017.3025%2017.2481C17.1559%2017.4664%2017.0913%2017.6047%2017.0007%2017.7501C16.9486%2017.8343%2016.6536%2018.3204%2016.6611%2018.9156C16.4553%2018.9571%2016.2665%2018.9496%2016.0274%2018.9318C16.0569%2019.1909%2016.0727%2019.2276%2016.0047%2019.6521C15.0972%2019.7223%2014.8328%2020.2666%2013.7571%2020.8482C13.2314%2021.1326%2012.8903%2021.2621%2012.104%2021.5492C13.9324%2021.5273%2015.275%2021.7871%2016.4243%2021.0144C16.555%2021.1874%2016.6521%2021.3554%2016.7382%2021.559C16.8964%2021.4348%2017.2069%2021.2814%2017.4649%2021.2149C17.7606%2021.5061%2018.1568%2021.6209%2018.6644%2021.5752C18.7361%2021.1666%2018.6345%2020.6643%2018.3143%2020.3882Z'%20fill='%23ED192D'/%3e%3cpath%20d='M18.4518%2019.6968C18.3101%2019.7546%2017.6431%2020.0008%2017.6431%2020.0008L17.6341%2020.0103C17.6307%2019.9517%2017.6167%2019.8939%2017.5922%2019.8395L17.5884%2019.8271C17.8456%2019.6734%2018.0072%2019.4558%2018.011%2019.4222C18.0091%2019.4195%2018.008%2019.4177%2018.0095%2019.418C18.0106%2019.4184%2018.011%2019.4199%2018.011%2019.4222C18.0329%2019.452%2018.2524%2019.6556%2018.4518%2019.6968Z'%20fill='white'/%3e%3cpath%20d='M17.9002%2016.5344C18.5691%2015.055%2018.4116%2015.1192%2018.5596%2014.5051C18.54%2014.8008%2018.5211%2015.174%2018.4792%2015.4444C18.1876%2017.0563%2017.7687%2018.2506%2017.2653%2019.5683C17.2653%2019.5683%2017.1271%2019.5566%2017.0576%2019.5698C16.9356%2019.4293%2016.8974%2019.2348%2016.8974%2019.2348C16.6633%2018.2634%2017.3918%2017.6584%2017.9002%2016.5344Z'%20fill='white'/%3e%3cpath%20d='M16.2266%2019.1308L16.8509%2019.652L16.8528%2019.6569C16.8339%2019.6709%2016.8154%2019.6868%2016.798%2019.7038C16.7667%2019.7355%2016.7402%2019.7699%2016.7195%2019.8069L16.7157%2019.8159C16.3977%2019.6614%2016.1851%2019.655%2016.1851%2019.655C16.2651%2019.3106%2016.2266%2019.1308%2016.2266%2019.1308Z'%20fill='white'/%3e%3cpath%20d='M13.3914%2021.3775C13.0776%2021.4493%2012.8241%2021.4459%2012.6262%2021.4546L13.2909%2021.2487C14.7314%2020.7087%2015.0982%2019.8725%2016.0711%2019.8532C16.2988%2019.8551%2016.4854%2019.9148%2016.6542%2020.0096L16.6561%2020.0356C16.6493%2020.0979%2016.655%2020.1614%2016.6731%2020.2222L16.6735%2020.2313C16.0016%2020.5648%2014.4655%2021.1313%2013.3914%2021.3775Z'%20fill='white'/%3e%3cpath%20d='M16.8149%2021.334C16.7764%2021.2309%2016.7228%2021.0643%2016.574%2020.8996C16.7745%2020.7297%2016.8157%2020.6383%2016.8829%2020.4721L16.8878%2020.4744C16.9509%2020.5118%2017.0208%2020.5333%2017.0914%2020.539L17.0997%2020.5378L16.8149%2021.334Z'%20fill='white'/%3e%3cpath%20d='M16.9431%2020.2505C16.8324%2020.1391%2016.8328%2019.9589%2016.9442%2019.8479C17.0556%2019.7372%2017.2354%2019.7376%2017.3464%2019.8494C17.4571%2019.9604%2017.4567%2020.1406%2017.3453%2020.2512C17.2339%2020.3619%2017.0537%2020.3615%2016.9431%2020.2505Z'%20fill='white'/%3e%3cpath%20d='M17.5617%2021.0476C17.4147%2020.8765%2017.3517%2020.7443%2017.2961%2020.5128C17.369%2020.4916%2017.4548%2020.4474%2017.5061%2020.3757L18.5032%2021.3883C18.1248%2021.4234%2017.7973%2021.3342%2017.5617%2021.0476Z'%20fill='white'/%3e%3cpath%20d='M18.6644%200.00993252C18.1568%20-0.0361447%2017.7606%200.0786629%2017.4649%200.369858C17.2069%200.303385%2016.8964%200.150051%2016.7382%200.0257921C16.6521%200.229364%2016.555%200.397053%2016.4243%200.57041C15.275%20-0.202332%2013.9324%200.057518%2012.104%200.0352345C12.8903%200.322652%2013.2314%200.452191%2013.7571%200.736588C14.8328%201.31822%2015.0972%201.86208%2016.0047%201.93271C16.0727%202.35723%2016.0569%202.39349%2016.0274%202.65334C16.2665%202.63521%2016.4553%202.62765%2016.6611%202.6692C16.6536%203.26405%2016.9486%203.75051%2017.0007%203.83436C17.0913%203.98014%2017.1559%204.11839%2017.3025%204.33669C17.8044%205.08299%2018.3856%206.51026%2018.6259%207.59912L18.6515%203.8559C18.5919%203.19382%2018.5012%202.81726%2018.1371%202.26735C18.3022%202.12421%2018.4623%202.05396%2018.6523%201.96067C18.5042%201.74086%2018.377%201.46515%2018.3143%201.19661C18.6345%200.920149%2018.7361%200.41821%2018.6644%200.00993252Z'%20fill='%23ED192D'/%3e%3cpath%20d='M18.4518%201.88761C18.3101%201.82982%2017.6431%201.58358%2017.6431%201.58358L17.6341%201.57414C17.6307%201.6323%2017.6167%201.69047%2017.5922%201.74485L17.5884%201.75732C17.8456%201.91104%2018.0072%202.12857%2018.011%202.16219C18.0091%202.16521%2018.008%202.16709%2018.0095%202.16634C18.0106%202.16558%2018.011%202.16445%2018.011%202.16219C18.0329%202.13273%2018.2524%201.92878%2018.4518%201.88761Z'%20fill='white'/%3e%3cpath%20d='M17.9002%205.05029C18.5691%206.52968%2018.4116%206.46547%2018.5596%207.07959C18.54%206.78386%2018.5211%206.41034%2018.4792%206.14067C18.1876%204.52834%2017.7687%203.33408%2017.2653%202.01596C17.2653%202.01596%2017.1271%202.02806%2017.0576%202.01484C16.9356%202.15534%2016.8974%202.34985%2016.8974%202.34985C16.6633%203.32125%2017.3918%203.9263%2017.9002%205.05029Z'%20fill='white'/%3e%3cpath%20d='M16.2266%202.45361L16.8509%201.9324L16.8528%201.92749C16.8339%201.91352%2016.8154%201.89766%2016.798%201.88067C16.7667%201.84932%2016.7402%201.81419%2016.7195%201.77793L16.7157%201.76812C16.3977%201.92297%2016.1851%201.929%2016.1851%201.929C16.2651%202.27345%2016.2266%202.45361%2016.2266%202.45361Z'%20fill='white'/%3e%3cpath%20d='M13.3914%200.207236C13.0776%200.135476%2012.8241%200.138873%2012.6262%200.130187L13.2909%200.336013C14.7314%200.876102%2015.0982%201.71229%2016.0711%201.73193C16.2988%201.72967%2016.4854%201.67%2016.6542%201.5752L16.6561%201.54914C16.6493%201.48682%2016.655%201.42337%2016.6731%201.36257L16.6735%201.35351C16.0016%201.01964%2014.4655%200.453108%2013.3914%200.207236Z'%20fill='white'/%3e%3cpath%20d='M16.8149%200.250924C16.7764%200.354032%2016.7228%200.52059%2016.574%200.685261C16.7745%200.855219%2016.8157%200.946612%2016.8829%201.11279L16.8878%201.11091C16.9509%201.07314%2017.0208%201.05162%2017.0914%201.04557L17.0997%201.04709L16.8149%200.250924Z'%20fill='white'/%3e%3cpath%20d='M16.9431%201.3342C16.8324%201.446%2016.8328%201.62577%2016.9442%201.73643C17.0556%201.84747%2017.2354%201.84672%2017.3464%201.73568C17.4571%201.62388%2017.4567%201.44411%2017.3453%201.33345C17.2339%201.22279%2017.0537%201.22316%2016.9431%201.3342Z'%20fill='white'/%3e%3cpath%20d='M17.5617%200.537082C17.4147%200.708173%2017.3517%200.84035%2017.2961%201.07187C17.369%201.09302%2017.4548%201.13722%2017.5061%201.20898L18.5032%200.19641C18.1248%200.161286%2017.7973%200.25042%2017.5617%200.537082Z'%20fill='white'/%3e%3cpath%20d='M0.0217433%2021.5752C0.529351%2021.6209%200.925543%2021.5061%201.22127%2021.2149C1.47923%2021.2814%201.78968%2021.4348%201.94831%2021.559C2.03405%2021.3554%202.13149%2021.1874%202.26217%2021.0144C3.41146%2021.7871%204.75375%2021.5273%206.58213%2021.5492C5.79579%2021.2621%205.45474%2021.1326%204.929%2020.8482C3.85335%2020.2666%203.58935%2019.7223%202.6814%2019.6521C2.61379%2019.2276%202.62927%2019.1909%202.65873%2018.9318C2.42004%2018.9496%202.2312%2018.9571%202.02536%2018.9156C2.03291%2018.3204%201.73794%2017.8343%201.68545%2017.7501C1.5948%2017.6047%201.5306%2017.4664%201.38368%2017.2481C0.882111%2016.5018%200.300853%2015.0742%200.0602679%2013.9857L0.0345879%2017.7289C0.0942621%2018.391%200.185284%2018.7675%200.549372%2019.3175C0.383946%2019.4606%200.224185%2019.5309%200.0342099%2019.6241C0.181884%2019.844%200.30954%2020.1193%200.372236%2020.3882C0.0515815%2020.6643%20-0.049639%2021.1666%200.0217433%2021.5752Z'%20fill='%23ED192D'/%3e%3cpath%20d='M0.234375%2019.6968C0.376007%2019.7546%201.04338%2020.0008%201.04338%2020.0008L1.05244%2020.0103C1.05546%2019.9517%201.06981%2019.8939%201.09436%2019.8395L1.09777%2019.8271C0.84094%2019.6734%200.678912%2019.4558%200.675512%2019.4222C0.677401%2019.4195%200.678535%2019.4177%200.676647%2019.418C0.675514%2019.4184%200.675135%2019.4199%200.675512%2019.4222C0.653229%2019.452%200.43417%2019.6556%200.234375%2019.6968Z'%20fill='white'/%3e%3cpath%20d='M0.785417%2016.5344C0.116538%2015.055%200.274029%2015.1192%200.125977%2014.5051C0.145238%2014.8008%200.164123%2015.174%200.206424%2015.4444C0.497996%2017.0563%200.916471%2018.2506%201.4203%2019.5683C1.4203%2019.5683%201.55816%2019.5566%201.62765%2019.5698C1.74964%2019.4293%201.78779%2019.2348%201.78779%2019.2348C2.02195%2018.2634%201.29378%2017.6584%200.785417%2016.5344Z'%20fill='white'/%3e%3cpath%20d='M2.45945%2019.1308L1.83552%2019.652L1.83325%2019.6569C1.85251%2019.6709%201.87064%2019.6868%201.88801%2019.7038C1.91936%2019.7355%201.9458%2019.7699%201.96657%2019.8069L1.97035%2019.8159C2.28836%2019.6614%202.50137%2019.655%202.50137%2019.655C2.42093%2019.3106%202.45945%2019.1308%202.45945%2019.1308Z'%20fill='white'/%3e%3cpath%20d='M5.29439%2021.3775C5.60825%2021.4493%205.86167%2021.4459%206.05958%2021.4546L5.39524%2021.2487C3.95437%2020.7087%203.58764%2019.8725%202.61472%2019.8532C2.38736%2019.8551%202.2004%2019.9148%202.03158%2020.0096L2.03007%2020.0356C2.03649%2020.0979%202.03082%2020.1614%202.01307%2020.2222L2.0127%2020.2313C2.68422%2020.5648%204.22063%2021.1313%205.29439%2021.3775Z'%20fill='white'/%3e%3cpath%20d='M1.8712%2021.334C1.90973%2021.2309%201.96336%2021.0643%202.11254%2020.8996C1.91199%2020.7297%201.87044%2020.6383%201.80359%2020.4721L1.79831%2020.4744C1.73561%2020.5118%201.66574%2020.5333%201.59473%2020.539L1.58643%2020.5378L1.8712%2021.334Z'%20fill='white'/%3e%3cpath%20d='M1.74254%2020.2505C1.85358%2020.1391%201.85282%2019.9589%201.74178%2019.8479C1.63037%2019.7372%201.45021%2019.7376%201.33955%2019.8494C1.22889%2019.9604%201.22927%2020.1406%201.34068%2020.2512C1.4521%2020.3619%201.63188%2020.3615%201.74254%2020.2505Z'%20fill='white'/%3e%3cpath%20d='M1.1243%2021.0476C1.27122%2020.8765%201.33429%2020.7443%201.39019%2020.5128C1.31729%2020.4916%201.23156%2020.4474%201.17982%2020.3757L0.183105%2021.3883C0.561545%2021.4234%200.888999%2021.3342%201.1243%2021.0476Z'%20fill='white'/%3e%3cpath%20d='M0.372236%201.19661C0.30954%201.46515%200.181884%201.74086%200.0342099%201.96067C0.224185%202.05396%200.383946%202.12421%200.549372%202.26735C0.185284%202.81726%200.0942621%203.19382%200.0345879%203.8559L0.0602679%207.59912C0.300853%206.51026%200.882111%205.08299%201.38368%204.33669C1.5306%204.11839%201.5948%203.98014%201.68545%203.83436C1.73794%203.75051%202.03291%203.26405%202.02536%202.6692C2.2312%202.62765%202.42004%202.63521%202.65873%202.65334C2.62927%202.39349%202.61379%202.35723%202.6814%201.93271C3.58935%201.86208%203.85335%201.31822%204.929%200.736588C5.45474%200.452191%205.79579%200.322652%206.58213%200.0352345C4.75375%200.057518%203.41146%20-0.202332%202.26217%200.57041C2.13149%200.397053%202.03405%200.229364%201.94831%200.0257921C1.78968%200.150051%201.47923%200.303385%201.22127%200.369858C0.925543%200.0786629%200.529351%20-0.0361447%200.0217433%200.00993252C-0.049639%200.41821%200.0515815%200.920149%200.372236%201.19661Z'%20fill='%23ED192D'/%3e%3cpath%20d='M0.234375%201.88761C0.376007%201.82982%201.04338%201.58358%201.04338%201.58358L1.05244%201.57414C1.05546%201.6323%201.06981%201.69047%201.09436%201.74485L1.09777%201.75732C0.84094%201.91104%200.678912%202.12857%200.675512%202.16219C0.677401%202.16521%200.678535%202.16709%200.676647%202.16634C0.675514%202.16558%200.675135%202.16445%200.675512%202.16219C0.653229%202.13273%200.43417%201.92878%200.234375%201.88761Z'%20fill='white'/%3e%3cpath%20d='M0.785417%205.05029C0.116538%206.52968%200.274029%206.46547%200.125977%207.07959C0.145238%206.78386%200.164123%206.41034%200.206424%206.14067C0.497996%204.52834%200.916471%203.33408%201.4203%202.01596C1.4203%202.01596%201.55816%202.02806%201.62765%202.01484C1.74964%202.15534%201.78779%202.34985%201.78779%202.34985C2.02195%203.32125%201.29378%203.9263%200.785417%205.05029Z'%20fill='white'/%3e%3cpath%20d='M2.45945%202.45361L1.83552%201.9324L1.83325%201.92749C1.85251%201.91352%201.87064%201.89766%201.88801%201.88067C1.91936%201.84932%201.9458%201.81419%201.96657%201.77793L1.97035%201.76812C2.28836%201.92297%202.50137%201.929%202.50137%201.929C2.42093%202.27345%202.45945%202.45361%202.45945%202.45361Z'%20fill='white'/%3e%3cpath%20d='M5.29439%200.207236C5.60825%200.135476%205.86167%200.138873%206.05958%200.130187L5.39524%200.336013C3.95437%200.876102%203.58764%201.71229%202.61472%201.73193C2.38736%201.72967%202.2004%201.67%202.03158%201.5752L2.03007%201.54914C2.03649%201.48682%202.03082%201.42337%202.01307%201.36257L2.0127%201.35351C2.68422%201.01964%204.22063%200.453108%205.29439%200.207236Z'%20fill='white'/%3e%3cpath%20d='M1.8712%200.250924C1.90973%200.354032%201.96336%200.52059%202.11254%200.685261C1.91199%200.855219%201.87044%200.946612%201.80359%201.11279L1.79831%201.11091C1.73561%201.07314%201.66574%201.05162%201.59473%201.04557L1.58643%201.04709L1.8712%200.250924Z'%20fill='white'/%3e%3cpath%20d='M1.74254%201.3342C1.85358%201.446%201.85282%201.62577%201.74178%201.73643C1.63037%201.84747%201.45021%201.84672%201.33955%201.73568C1.22889%201.62388%201.22927%201.44411%201.34068%201.33345C1.4521%201.22279%201.63188%201.22316%201.74254%201.3342Z'%20fill='white'/%3e%3cpath%20d='M1.1243%200.537082C1.27122%200.708173%201.33429%200.84035%201.39019%201.07187C1.31729%201.09302%201.23156%201.13722%201.17982%201.20898L0.183105%200.19641C0.561545%200.161286%200.888999%200.25042%201.1243%200.537082Z'%20fill='white'/%3e%3cpath%20d='M13.8075%202.35891V2.77588C13.2961%202.37516%2012.7443%202.04129%2012.1604%201.7856V1.42263C12.7417%201.66473%2013.2931%201.98047%2013.8075%202.35891Z'%20fill='white'/%3e%3cpath%20d='M9.36076%200.858693C9.63949%200.858693%209.91519%200.875302%2010.1871%200.906272V1.24316C9.91557%201.21068%209.63986%201.19369%209.36076%201.19369C9.08391%201.19369%208.81008%201.21031%208.54004%201.2428V0.905904C8.81046%200.874933%209.08391%200.858693%209.36076%200.858693Z'%20fill='white'/%3e%3cpath%20d='M6.56749%201.42051V1.78309C5.98396%202.03802%205.43217%202.37152%204.92041%202.77148V2.35454C5.43519%201.97648%205.98699%201.66185%206.56749%201.42051Z'%20fill='white'/%3e%3cpath%20d='M4.92041%2019.2462V18.8296C5.43217%2019.2295%205.98396%2019.5626%206.56749%2019.818V20.1802C5.98699%2019.9388%205.43519%2019.6246%204.92041%2019.2462Z'%20fill='white'/%3e%3cpath%20d='M9.36076%2020.7427C9.08391%2020.7427%208.81046%2020.7264%208.54004%2020.6955V20.3582C8.81008%2020.3907%209.08391%2020.4073%209.36076%2020.4073C9.63986%2020.4073%209.91557%2020.3903%2010.1871%2020.3574V20.6947C9.91519%2020.7261%209.63949%2020.7427%209.36076%2020.7427Z'%20fill='white'/%3e%3cpath%20d='M12.1604%2020.1777V19.8152C12.7443%2019.5598%2013.2961%2019.226%2013.8075%2018.8252V19.2415C13.2931%2019.6206%2012.7417%2019.936%2012.1604%2020.1777Z'%20fill='white'/%3e%3cpath%20d='M28.4893%205.86063H31.8881V10.2455H30.7554L30.5855%209.22543C30.1545%209.72398%2029.5317%2010.4604%2028.0474%2010.4604C26.0876%2010.4604%2024.3083%209.05546%2024.3083%206.20054C24.3083%203.98014%2025.5434%201.884%2028.2854%201.89533C30.7781%201.89533%2031.7635%203.51559%2031.8541%204.63693H30.1545C30.1545%204.31968%2029.577%203.29994%2028.376%203.29994C27.1636%203.29994%2026.0423%204.13839%2026.0423%206.22321C26.0423%208.44399%2027.2547%209.02185%2028.41%209.02185C28.7839%209.02185%2030.0303%208.87418%2030.3815%207.23163H28.4893V5.86063Z'%20fill='%23231F20'/%3e%3cpath%20d='M36.9077%208.47762C36.7831%208.90856%2036.3298%209.13517%2035.888%209.13517C34.6076%209.13517%2034.517%208.11505%2034.4716%207.6622H38.6069V7.37894C38.6069%204.62562%2036.9644%204.05946%2035.7746%204.05946C33.135%204.05946%2032.8857%206.38184%2032.8857%207.107C32.8857%209.58839%2034.1884%2010.4038%2035.888%2010.4038C36.9187%2010.4038%2038.1201%209.9283%2038.5389%208.47762H36.9077ZM34.517%206.63113C34.6076%205.83799%2035.0042%205.36211%2035.752%205.36211C36.2619%205.36211%2036.885%205.65671%2036.9757%206.63113H34.517Z'%20fill='%23231F20'/%3e%3cpath%20d='M45.1106%2010.2456H43.5243V6.58585C43.5243%206.14396%2043.5017%205.39614%2042.4933%205.39614C41.7908%205.39614%2041.2469%205.87202%2041.2469%206.78979V10.2456H39.6606V4.21776H41.1793V5.10155H41.2016C41.4172%204.73898%2041.8701%204.05951%2043.0145%204.05951C44.1928%204.05951%2045.1106%204.7503%2045.1106%206.07597V10.2456Z'%20fill='%23231F20'/%3e%3cpath%20d='M50.1294%208.47762C50.0047%208.90856%2049.5515%209.13517%2049.1096%209.13517C47.8293%209.13517%2047.7386%208.11505%2047.6933%207.6622H51.829V7.37894C51.829%204.62562%2050.186%204.05946%2048.9963%204.05946C46.3567%204.05946%2046.1074%206.38184%2046.1074%207.107C46.1074%209.58839%2047.4104%2010.4038%2049.1096%2010.4038C50.1407%2010.4038%2051.3417%209.9283%2051.7606%208.47762H50.1294ZM47.7386%206.63113C47.8293%205.83799%2048.2258%205.36211%2048.9737%205.36211C49.4835%205.36211%2050.1063%205.65671%2050.1974%206.63113H47.7386Z'%20fill='%23231F20'/%3e%3cpath%20d='M52.8713%204.21776H54.3893V5.26017H54.4123C54.7405%204.64832%2055.1031%204.05951%2056.0662%204.05951C56.1681%204.05951%2056.2701%204.07047%2056.3721%204.08217V5.69073C56.2361%205.66807%2056.0662%205.66808%2055.9189%205.66808C54.6842%205.66808%2054.4572%206.43854%2054.4572%207.10704V10.2456H52.8713V4.21776Z'%20fill='%23231F20'/%3e%3cpath%20d='M62.1731%205.80399C62.1731%204.31969%2060.6208%204.05946%2059.771%204.05946C58.5363%204.05946%2057.256%204.31969%2057.0747%206.16657H58.6039C58.6496%205.81532%2058.7856%205.32849%2059.5787%205.32849C59.9866%205.32849%2060.6208%205.3621%2060.6208%206.0306C60.6208%206.37051%2060.3152%206.47249%2060.066%206.50648L58.6379%206.72177C57.6295%206.86907%2056.8821%207.46959%2056.8821%208.64796C56.8821%209.89394%2057.8112%2010.4038%2058.7172%2010.4038C59.794%2010.4038%2060.3035%209.90526%2060.6661%209.53135C60.7001%209.87165%2060.7227%209.9623%2060.8134%2010.2456H62.5243V10.0072C62.3317%209.93926%2062.1731%209.78101%2062.1731%209.06681V5.80399ZM60.6208%208.08144C60.6208%208.81792%2059.9073%209.27076%2059.2045%209.27076C58.8989%209.27076%2058.4684%209.10118%2058.4684%208.54598C58.4684%207.88881%2058.9552%207.74151%2059.5448%207.63954C60.2015%207.53756%2060.4622%207.4356%2060.6208%207.31096V8.08144Z'%20fill='%23231F20'/%3e%3cpath%20d='M65.2206%2010.2456H63.6343V2.11066H65.2206V10.2456Z'%20fill='%23231F20'/%3e%3cpath%20d='M68.371%203.50394H66.7852V2.03136H68.371V3.50394ZM68.371%204.21776V10.2456H66.7852V4.21776H68.371Z'%20fill='%23231F20'/%3e%3cpath%20d='M71.6672%204.21763H72.653V5.35069H71.6672V8.62522C71.6672%208.97609%2071.6785%209.11243%2072.3244%209.11243C72.426%209.11243%2072.5397%209.1011%2072.653%209.0894V10.2904C72.4037%2010.3018%2072.154%2010.3135%2071.9052%2010.3135H71.7012C70.3302%2010.3135%2070.0809%209.79189%2070.0809%209.01047V5.35069H69.2651V4.21763H70.0809V2.58642H71.6672V4.21763Z'%20fill='%23231F20'/%3e%3cpath%20d='M78.5445%205.80399C78.5445%204.31969%2076.9926%204.05946%2076.1428%204.05946C74.9078%204.05946%2073.6278%204.31969%2073.4461%206.16657H74.9758C75.0211%205.81532%2075.1574%205.32849%2075.9502%205.32849C76.3581%205.32849%2076.9926%205.3621%2076.9926%206.0306C76.9926%206.37051%2076.6867%206.47249%2076.4374%206.50648L75.0098%206.72177C74.0013%206.86907%2073.2539%207.46959%2073.2539%208.64796C73.2539%209.89394%2074.1826%2010.4038%2075.0891%2010.4038C76.1655%2010.4038%2076.6753%209.90526%2077.0379%209.53135C77.0719%209.87165%2077.0942%209.9623%2077.1852%2010.2456H78.8961V10.0072C78.7031%209.93926%2078.5445%209.78101%2078.5445%209.06681V5.80399ZM76.9926%208.08144C76.9926%208.81792%2076.2788%209.27076%2075.5763%209.27076C75.2704%209.27076%2074.8398%209.10118%2074.8398%208.54598C74.8398%207.88881%2075.327%207.74151%2075.9162%207.63954C76.5734%207.53756%2076.834%207.4356%2076.9926%207.31096V8.08144Z'%20fill='%23231F20'/%3e%3cpath%20d='M81.7398%204.21763H82.7256V5.35069H81.7398V8.62522C81.7398%208.97609%2081.7515%209.11243%2082.3974%209.11243C82.499%209.11243%2082.6123%209.1011%2082.7256%209.0894V10.2904C82.4759%2010.3018%2082.227%2010.3135%2081.9778%2010.3135H81.7738C80.4028%2010.3135%2080.1536%209.79189%2080.1536%209.01047V5.35069H79.3381V4.21763H80.1536V2.58642H81.7398V4.21763Z'%20fill='%23231F20'/%3e%3cpath%20d='M30.0527%2013.4412H28.4664V16.3301H28.4438C28.1945%2015.9449%2027.7186%2015.39%2026.6989%2015.39C25.3732%2015.39%2024.1948%2016.4094%2024.1948%2018.4938C24.1948%2020.1485%2024.943%2021.7344%2026.7329%2021.7344C27.39%2021.7344%2028.0925%2021.4968%2028.4778%2020.817H28.5004V21.5761H30.0527V13.4412ZM25.8264%2018.6075C25.8264%2017.6558%2026.1663%2016.7607%2027.1751%2016.7607C28.2625%2016.7607%2028.5344%2017.7351%2028.5344%2018.6978C28.5344%2019.5933%2028.1378%2020.4318%2027.1294%2020.4318C26.1097%2020.4318%2025.8264%2019.3213%2025.8264%2018.6075Z'%20fill='%23231F20'/%3e%3cpath%20d='M35.0151%2019.8082C34.8905%2020.2387%2034.4373%2020.4657%2033.9954%2020.4657C32.7154%2020.4657%2032.6244%2019.4456%2032.5791%2018.9928H36.7143V18.7095C36.7143%2015.9562%2035.0718%2015.39%2033.8821%2015.39C31.2421%2015.39%2030.9932%2017.7124%2030.9932%2018.4376C30.9932%2020.919%2032.2958%2021.7344%2033.9954%2021.7344C35.0265%2021.7344%2036.2271%2021.2589%2036.6467%2019.8082H35.0151ZM32.6244%2017.9617C32.7154%2017.1686%2033.1116%2016.6927%2033.8594%2016.6927C34.3693%2016.6927%2034.9925%2016.9873%2035.0831%2017.9617H32.6244Z'%20fill='%23231F20'/%3e%3cpath%20d='M46.2321%2016.1035C46.0958%2015.6163%2045.8356%2014.6985%2044.4306%2014.6985C43.6148%2014.6985%2042.4137%2015.2427%2042.4137%2017.5425C42.4137%2019.0041%2042.9916%2020.3184%2044.4306%2020.3184C45.3706%2020.3184%2046.0282%2019.7859%2046.2321%2018.7888H47.9313C47.5914%2020.556%2046.4361%2021.791%2044.3962%2021.791C42.2325%2021.791%2040.6802%2020.3298%2040.6802%2017.5198C40.6802%2014.6762%2042.3231%2013.2259%2044.4193%2013.2259C46.8549%2013.2259%2047.8407%2014.9024%2047.9313%2016.1035H46.2321Z'%20fill='%23231F20'/%3e%3cpath%20d='M53.9813%2017.1346C53.9813%2015.6503%2052.429%2015.39%2051.5792%2015.39C50.3442%2015.39%2049.0642%2015.6503%2048.8826%2017.4971H50.4122C50.4575%2017.1459%2050.5935%2016.6591%2051.3866%2016.6591C51.7945%2016.6591%2052.429%2016.6927%2052.429%2017.3612C52.429%2017.7011%2052.1231%2017.8031%2051.8738%2017.8371L50.4466%2018.0523C49.4381%2018.1996%2048.6899%2018.8002%2048.6899%2019.9785C48.6899%2021.2245%2049.619%2021.7344%2050.5259%2021.7344C51.6019%2021.7344%2052.1118%2021.2358%2052.4743%2020.8619C52.5083%2021.2022%2052.531%2021.2929%2052.6216%2021.5761H54.3326V21.3378C54.1399%2021.2698%2053.9813%2021.1116%2053.9813%2020.3974V17.1346ZM52.429%2019.412C52.429%2020.1485%2051.7152%2020.6013%2051.0131%2020.6013C50.7068%2020.6013%2050.2766%2020.4317%2050.2766%2019.8765C50.2766%2019.2194%2050.7638%2019.0721%2051.3526%2018.9701C52.0098%2018.8681%2052.2704%2018.7662%2052.429%2018.6415V19.412Z'%20fill='%23231F20'/%3e%3cpath%20d='M57.1766%2015.5482H58.1627V16.6813H57.1766V19.9558C57.1766%2020.3067%2057.1879%2020.443%2057.8338%2020.443C57.9357%2020.443%2058.0494%2020.4317%2058.1627%2020.42V21.621C57.9131%2021.6323%2057.6638%2021.644%2057.4145%2021.644H57.211C55.84%2021.644%2055.5907%2021.1225%2055.5907%2020.341V16.6813H54.7749V15.5482H55.5907V13.917H57.1766V15.5482Z'%20fill='%23231F20'/%3e%3cpath%20d='M64.0532%2017.1346C64.0532%2015.6503%2062.5013%2015.39%2061.6515%2015.39C60.4165%2015.39%2059.1361%2015.6503%2058.9548%2017.4971H60.4844C60.5298%2017.1459%2060.6654%2016.6591%2061.4589%2016.6591C61.8668%2016.6591%2062.5013%2016.6927%2062.5013%2017.3612C62.5013%2017.7011%2062.195%2017.8031%2061.9461%2017.8371L60.5184%2018.0523C59.51%2018.1996%2058.7622%2018.8002%2058.7622%2019.9785C58.7622%2021.2245%2059.6913%2021.7344%2060.5977%2021.7344C61.6738%2021.7344%2062.184%2021.2358%2062.5466%2020.8619C62.5806%2021.2022%2062.6029%2021.2929%2062.6939%2021.5761H64.4044V21.3378C64.2118%2021.2698%2064.0532%2021.1116%2064.0532%2020.3974V17.1346ZM62.5013%2019.412C62.5013%2020.1485%2061.7875%2020.6013%2061.085%2020.6013C60.779%2020.6013%2060.3485%2020.4317%2060.3485%2019.8765C60.3485%2019.2194%2060.8357%2019.0721%2061.4249%2018.9701C62.0817%2018.8681%2062.3427%2018.7662%2062.5013%2018.6415V19.412Z'%20fill='%23231F20'/%3e%3cpath%20d='M67.1014%2021.5762H65.5151V13.4412H67.1014V21.5762Z'%20fill='%23231F20'/%3e%3cpath%20d='M74.0578%2021.5761H72.5395V20.7263H72.5169C72.1543%2021.3718%2071.5201%2021.7344%2070.6817%2021.7344C69.492%2021.7344%2068.6309%2021.0545%2068.6309%2019.514V15.5483H70.2168V19.2874C70.2168%2020.2165%2070.761%2020.3974%2071.2478%2020.3974C71.769%2020.3974%2072.4715%2020.1028%2072.4715%2019.0268V15.5483H74.0578V21.5761Z'%20fill='%23231F20'/%3e%3cpath%20d='M80.9916%2021.5762H79.4053V17.9164C79.4053%2017.4745%2079.3827%2016.7267%2078.3742%2016.7267C77.6721%2016.7267%2077.1279%2017.2026%2077.1279%2018.1204V21.5762H75.542V15.5483H77.0603V16.4321H77.0826C77.2982%2016.0695%2077.7514%2015.3901%2078.8955%2015.3901C80.0738%2015.3901%2080.9916%2016.0809%2080.9916%2017.4065V21.5762Z'%20fill='%23231F20'/%3e%3cpath%20d='M85.5378%2021.4741C84.7896%2023.7058%2084.586%2024%2083.2037%2024C82.9884%2024%2082.7165%2023.989%2082.4903%2023.9777V22.7091C82.5579%2022.72%2082.6598%2022.7317%2082.7958%2022.7317C83.3737%2022.7317%2083.6909%2022.652%2083.8382%2021.8253L81.6174%2015.5482H83.385L84.6767%2019.9894H84.6993L85.9344%2015.5482H87.6109L85.5378%2021.4741Z'%20fill='%23231F20'/%3e%3cpath%20d='M93.0864%2017.1346C93.0864%2015.6503%2091.5345%2015.39%2090.6847%2015.39C89.4493%2015.39%2088.1693%2015.6503%2087.988%2017.4971H89.5173C89.563%2017.1459%2089.6989%2016.6591%2090.4917%2016.6591C90.8996%2016.6591%2091.5345%2016.6927%2091.5345%2017.3612C91.5345%2017.7011%2091.2282%2017.8031%2090.9789%2017.8371L89.5516%2018.0523C88.5432%2018.1996%2087.7954%2018.8002%2087.7954%2019.9785C87.7954%2021.2245%2088.7241%2021.7344%2089.631%2021.7344C90.707%2021.7344%2091.2168%2021.2358%2091.5794%2020.8619C91.6138%2021.2022%2091.6361%2021.2929%2091.7271%2021.5761H93.4376V21.3378C93.245%2021.2698%2093.0864%2021.1116%2093.0864%2020.3974V17.1346ZM91.5345%2019.412C91.5345%2020.1485%2090.8203%2020.6013%2090.1182%2020.6013C89.8119%2020.6013%2089.3817%2020.4317%2089.3817%2019.8765C89.3817%2019.2194%2089.8689%2019.0721%2090.4577%2018.9701C91.1152%2018.8681%2091.3755%2018.7662%2091.5345%2018.6415V19.412Z'%20fill='%23231F20'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='80'%20height='24'%20viewBox='0%200%2080%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.51539%2023.4832H0L8.22624%200.518679H10.7412L2.51539%2023.4832Z'%20fill='%236AAAE4'/%3e%3cpath%20d='M20.1573%2024C17.1695%2024%2014.8372%2023.3218%2013.1604%2021.9659C11.4836%2020.6095%2010.633%2018.5906%2010.6094%2015.9092H13.4169C13.4812%2019.6737%2015.7275%2021.5563%2020.1573%2021.5563C22.0287%2021.5563%2023.4647%2021.1901%2024.4642%2020.4587C25.4641%2019.7269%2025.9643%2018.6581%2025.9643%2017.2522C26.0073%2016.2425%2025.5399%2015.2791%2024.7212%2014.6874C23.8941%2014.0743%2022.449%2013.5427%2020.3853%2013.091L18.3511%2012.6389C16.028%2012.0994%2014.2875%2011.3204%2013.128%2010.3019C11.969%209.28302%2011.393%207.84942%2011.4004%206.00159C11.35%204.28135%2012.1493%202.64663%2013.5381%201.63049C14.9439%200.544998%2016.844%200.00226593%2019.2383%200.00226593C20.6576%20-0.0236225%2022.0722%200.172396%2023.4314%200.582922C24.4817%200.885733%2025.4406%201.44557%2026.2209%202.21115C26.858%202.86207%2027.3573%203.63505%2027.6883%204.48384C28.0096%205.35251%2028.1797%206.26925%2028.1908%207.19525H25.4156C25.2875%205.55869%2024.7554%204.35948%2023.8197%203.59668C22.8835%202.83434%2021.3566%202.4534%2019.2383%202.4534C17.623%202.4534%2016.3808%202.76592%2015.5116%203.39049C14.6573%203.97947%2014.1645%204.96464%2014.2038%206.00159C14.1492%206.99831%2014.5612%207.96359%2015.3193%208.61313C16.0484%209.2377%2017.4732%209.78646%2019.5943%2010.2589L21.6289%2010.7115C24.1651%2011.2718%2025.9925%2012.0721%2027.1113%2013.1127C28.2301%2014.1529%2028.7881%2015.5352%2028.7858%2017.2596C28.7858%2019.3446%2028.0235%2020.9895%2026.4988%2022.1938C24.9736%2023.3976%2022.86%2024%2020.1573%2024Z'%20fill='%236AAAE4'/%3e%3cpath%20d='M36.6945%2021.677C38.0098%2021.6978%2039.2894%2021.2521%2040.3074%2020.4195C41.3356%2019.6026%2041.8515%2018.4302%2041.8538%2016.9033V14.9366C41.1997%2015.3647%2040.4434%2015.6107%2039.6625%2015.6495L37.2437%2015.938C35.8434%2016.1123%2034.8495%2016.4331%2034.2582%2016.907C33.6558%2017.4039%2033.3262%2018.1579%2033.371%2018.9374C33.3313%2019.7025%2033.6401%2020.444%2034.212%2020.954C34.7783%2021.4348%2035.6261%2021.677%2036.6945%2021.677ZM45.2841%2021.3779H46.2175V23.4763C45.746%2023.5438%2045.2693%2023.5757%2044.7927%2023.5725C43.0498%2023.5725%2042.1146%2022.7768%2041.9893%2021.1856C40.8345%2022.9766%2039.0305%2023.8716%2036.5776%2023.8716C34.7464%2023.8716%2033.3142%2023.4444%2032.2703%2022.5965C31.2264%2021.7487%2030.7063%2020.5476%2030.7063%2019.0017C30.7063%2015.9879%2032.7594%2014.2668%2036.866%2013.8396L39.2529%2013.583C40.9935%2013.3884%2041.864%2012.6246%2041.864%2011.2923C41.864%2010.3658%2041.5792%209.69872%2041.0092%209.29005C40.4392%208.88368%2039.4771%208.67749%2038.1235%208.67749C36.6982%208.67749%2035.6298%208.91975%2035.0099%209.38991C34.3899%209.86007%2034.0159%2010.7292%2033.941%2011.9548H31.3512C31.5648%208.27807%2033.8213%206.43995%2038.1198%206.43995C42.2907%206.43995%2044.3762%208.05292%2044.3762%2011.278V20.58C44.3794%2021.1176%2044.6822%2021.3779%2045.2841%2021.3779Z'%20fill='%236AAAE4'/%3e%3cpath%20d='M50.8951%2023.4832H48.3159V0.518679H50.8951V23.4832Z'%20fill='%236AAAE4'/%3e%3cpath%20d='M65.7337%2016.2584V6.83891H68.3129V23.4832H65.8618V20.9896C64.5937%2022.9109%2062.8517%2023.8716%2060.6359%2023.8716C58.7876%2023.8716%2057.3471%2023.3658%2056.3143%2022.3543C55.281%2021.3423%2054.7642%2019.9175%2054.7642%2018.0789V6.83891H57.3581V17.8403C57.3581%2020.3127%2058.6262%2021.549%2061.1629%2021.549C62.3718%2021.5531%2063.5304%2021.0631%2064.3694%2020.1916C65.2788%2019.2915%2065.7337%2017.9804%2065.7337%2016.2584Z'%20fill='%236AAAE4'/%3e%3cpath%20d='M79.4708%206.83878V9.09759H76.0544V19.903C76.0544%2020.8507%2076.6882%2021.3279%2077.9568%2021.3279H79.4708V23.4905C78.7584%2023.5548%2078.1459%2023.5867%2077.6323%2023.5867C74.8607%2023.5867%2073.4748%2022.436%2073.4748%2020.1346V9.09066H70.7314V6.83878H73.4748V2.13992H76.0544V6.83878H79.4708Z'%20fill='%236AAAE4'/%3e%3c/svg%3e\"","import \"@uxland/primaria-ui-components\";\n//import \"../../../../../../dss/design-system-salut/src/index\";\n//import \"../../../../../../dss/design-system-salut/css/main.css\";\nimport \"@salut/design-system-salut\";\nimport \"@salut/design-system-salut/css/main.css\";\nimport { html } from \"lit\";\nimport gencatLogo from \"../../../UI/images/Gencat_Logotip.svg\";\nimport salutLogo from \"../../../UI/images/Salut_Logotip.svg\";\nimport { PrimariaShell } from \"./primaria-shell\";\nimport { shellApi } from \"../../../api/api\";\n\nconst handleInteraction = () => {\n shellApi.interactionManager.notify({\n message: \"Prova Toast!!\",\n type: \"danger\",\n });\n};\n\n// const handleBasicConfirmation = () => {\n// shellApi.interactionManager\n// .doConfirm({\n// title: \"Confirmation title\",\n// type: \"success\",\n// message: \"Això és missatge de confirmacio\",\n// acceptLabel: \"Acceptar\",\n// cancelLabel: \"Cancelar\",\n// })\n// .then((r) => console.log(r));\n// };\n\n// const handleComponentConfirmation = () => {\n// shellApi.interactionManager\n// .doCustomConfirm({\n// title: \"Confirmation title\",\n// type: \"danger\",\n// componentConstructor: TitleView,\n// acceptLabel: \"Acceptar\",\n// cancelLabel: \"Cancelar\",\n// properties: { title: \"HOLAAA\" },\n// })\n// .then((r) => console.log(r));\n// };\n// const handleComponentConfirmation = () => {\n// shellApi.interactionManager\n// .doCustomConfirm({\n// title: \"Exportar a PDF\",\n// type: \"success\",\n// componentConstructor: ExportPdfModal,\n// acceptLabel: \"Acceptar\",\n// cancelLabel: \"Cancelar\",\n// properties: { text: \"Hola custom text\" },\n// })\n// .then((r) => console.log(r));\n// };\n// const handleComponentConfirmation2 = () => {\n// shellApi.interactionManager\n// .doCustomConfirm({\n// title: \"Eliminar curs clínic\",\n// type: \"danger\",\n// componentConstructor: DeleteClinicalCourseModal,\n// acceptLabel: \"Eliminar\",\n// cancelLabel: \"Cancelar\",\n// properties: { text: \"Hola custom text\" },\n// })\n// .then((r) => console.log(r));\n// };\n\nexport const template = (props: PrimariaShell) => html`\n<div class=\"container\">\n <div class=\"header\">\n <div class=\"header__left\">\n <div class=\"header-logo\">\n <img src=${salutLogo} alt=\"logo\" />\n </div>\n <primaria-content-switcher id=\"header-region-container\"></primaria-content-switcher>\n </div>\n <div class=\"header__right\">\n <div id=\"header-actions-region-container\"></div>\n </div>\n </div>\n <div class=\"main-container\">\n <div class=\"sidebar\">\n <div id=\"menu-region-container\"></div>\n <div id=\"quick-actions-region-container\"></div>\n </div>\n <div class=\"content\">\n <div id=\"floating-region-container\"></div>\n <primaria-content-switcher id=\"main-region-container\"></primaria-content-switcher>\n </div>\n </div>\n <div class=\"footer\">\n <div class=\"footer-logo\">\n <img src=${gencatLogo} alt=\"logo\" />\n </div>\n </div>\n</div>`;\n","import { IRegion, region } from \"@uxland/regions\";\nimport { LitElement, css, html, unsafeCSS } from \"lit\";\nimport { PrimariaRegionHost } from \"../../../api/api\";\nimport { customElement } from \"lit/decorators.js\";\nimport { shellRegions } from \"../../../regions\";\nimport styles from \"./styles.scss?inline\";\nimport { template } from \"./template\";\n\n//@ts-ignore\n@customElement(\"primaria-shell\")\nexport class PrimariaShell extends PrimariaRegionHost(LitElement) {\n render() {\n return html`${template(this)}`;\n }\n\n static styles = css`\n ${unsafeCSS(styles)}\n `;\n\n @region({ targetId: \"header-region-container\", name: shellRegions.header })\n headerRegion: IRegion | undefined;\n\n @region({ targetId: \"header-actions-region-container\", name: shellRegions.headerActions })\n headerActionsRegion: IRegion | undefined;\n\n @region({ targetId: \"menu-region-container\", name: shellRegions.menu })\n menuRegion: IRegion | undefined;\n\n @region({ targetId: \"main-region-container\", name: shellRegions.main })\n mainRegion: IRegion | undefined;\n\n @region({ targetId: \"quick-actions-region-container\", name: shellRegions.quickActions })\n quickActionsRegion: IRegion | undefined;\n\n @region({ targetId: \"floating-region-container\", name: shellRegions.floating })\n floatingRegion: IRegion | undefined;\n}\n","const themeCSSVariables = `\n :root{\n --primaria-primary-color: #0054A8;\n }\n `;\n\nexport const appendTheme = () => {\n const styleElement = document.createElement(\"style\");\n styleElement.appendChild(document.createTextNode(themeCSSVariables));\n document.head.appendChild(styleElement);\n};\n","export const primariaShellId = \"primaria-shell\";\nexport const clinicalMonitoringId = \"clinical-monitoring\";\n","import { setLanguage } from \"@uxland/localization\";\nimport { PrimariaApi } from \"./api/api\";\nimport { clinicalMonitoringId, primariaShellId } from \"./constants\";\n\nlet shellLocaleManager;\n\nexport const initializeLocalization = async (api: PrimariaApi) => {\n setLanguage(\"ca\");\n const localeManager = await api.createLocaleManager(locales);\n shellLocaleManager = localeManager;\n};\n\nexport { shellLocaleManager };\n\nexport const locales = {\n ca: {\n [primariaShellId]: {\n title: \"Estació de Treball Clínica\",\n },\n [clinicalMonitoringId]: {\n title: \"Seguiment Clínic\",\n },\n },\n};\n","import { PrimariaMenuItem } from \"@uxland/primaria-ui-components/src/primaria-menu-item/primaria-menu-item\";\nimport { selectableAdapterFactory as factory, regionAdapterRegistry } from \"@uxland/regions\";\nimport { ClinicalMonitoring } from \"./UI/components/clinical-monitoring/clinical-monitoring\";\nimport { PrimariaShell } from \"./UI/components/primaria-shell/primaria-shell\";\nimport { appendTheme } from \"./UI/styles/theme/apply-theme\";\nimport { shellApi } from \"./api/api\";\nimport { initializeLocalization } from \"./locales\";\nimport { shellRegions } from \"./regions\";\nimport { clinicalMonitoringId } from \"./constants\";\n\nexport const initializeShell = async (element: HTMLElement) => {\n initializeLocalization(shellApi);\n regionAdapterRegistry.registerAdapterFactory(\"primaria-content-switcher\", factory);\n const shell = new PrimariaShell();\n element.appendChild(shell as any);\n appendTheme();\n registerViews();\n};\n\nconst registerViews = () => {\n shellApi.regionManager.registerMainView(\n {\n id: clinicalMonitoringId,\n factory: () => {\n const mainItem = new ClinicalMonitoring();\n return Promise.resolve(mainItem as unknown as HTMLElement);\n },\n },\n \"Seguiment Clínic\",\n );\n shellApi.regionManager.registerMenu({\n id: clinicalMonitoringId,\n factory: () => {\n const menuItem = new PrimariaMenuItem(\"add_box\", \"Seguiment clínic\", () => {\n shellApi.regionManager.activateView(shellRegions.main, \"clinical-monitoring\");\n });\n return Promise.resolve(menuItem);\n },\n });\n};\n","import { bootstrapPlugins as pluginBootstrapper } from \"@uxland/harmonix\";\nimport type { PluginDefinition, Plugin as PluginType } from \"@uxland/harmonix\";\nexport type { PluginDefinition, PluginInfo } from \"@uxland/harmonix\";\nimport { PrimariaApi, primariaApiFactory } from \"./api/api\";\n\nexport const bootstrapPlugins = (plugins: PluginDefinition[]) =>\n pluginBootstrapper(plugins, primariaApiFactory);\n\nexport type Plugin = PluginType<PrimariaApi>;\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?k:\"?\"===e[1]?H:\"@\"===e[1]?I:R}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),E.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function N(t,i,s=t,e){if(i===w)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=N(t,h._$AS(t,i.values),h,e)),i}class S{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);E.currentNode=e;let h=E.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new M(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new L(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=E.nextNode(),o++)}return E.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class M{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=T,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=N(this,t,i),c(t)?t===T||null==t||\"\"===t?(this._$AH!==T&&this._$AR(),this._$AH=T):t!==this._$AH&&t!==w&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==T&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=V.createElement(C(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new S(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new V(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new M(this.S(l()),this.S(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class R{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=T,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=N(this,e[s+n],i,n),r===w&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===T?t=T:t!==T&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===T?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class k extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===T?void 0:t}}class H extends R{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==T)}}class I extends R{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=N(this,t,i,0)??T)===w)return;const s=this._$AH,e=t===T&&s!==T||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==T&&(s===T||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class L{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}}const z={P:e,A:h,C:o,M:1,L:P,R:S,D:u,V:N,I:M,H:R,N:H,U:I,B:k,F:L},Z=t.litHtmlPolyfillSupport;Z?.(V,M),(t.litHtmlVersions??=[]).push(\"3.1.3\");const j=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,h=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},j=o=>{o._$AR()};export{n as TemplateResultType,j as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,h as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","import { html } from \"lit\";\nimport { PrimariaBreadcumbs } from \"./primaria-breadcumbs\";\nimport { repeat } from \"lit/directives/repeat.js\";\n\nexport const template = (props: PrimariaBreadcumbs) => html`\n<div class=\"container\">\n ${repeat(\n props.breadcumbs,\n (breadcumb, index) => html`\n <div class=\"breadcumb\" @click=${() => props._breadcumbClick(breadcumb)} ?selected=${index === props.breadcumbs.length - 1}>\n <div class=\"label\">${breadcumb.label}</div>\n <span ?hidden=${index === props.breadcumbs.length - 1}>></span>\n </div> `,\n )}\n</div>`;\n","import { LitElement, css, html, unsafeCSS } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport styles from \"./styles.scss?inline\";\nimport { template } from \"./template\";\nimport { shellApi } from \"../../../api/api\";\n\n@customElement(\"primaria-breadcumbs\")\nexport class PrimariaBreadcumbs extends LitElement {\n render() {\n return html`${template(this)}`;\n }\n\n static styles = css`\n ${unsafeCSS(styles)}\n `;\n\n @property()\n breadcumbs: any[] = [];\n\n _breadcumbClick(breadcumb) {\n shellApi.regionManager.activateMainView(breadcumb.view);\n }\n}\n"],"names":["template","props","t","e","o","s","r","n","S","c","i","h","a","l","p","d","u","f","y","_a","b","icon","label","callbackFn","styles","__decorateClass","customElement","_isPlaceholder","require$$0","_curry1","fn","f1","require$$1","_curry2","f2","_b","_concat","set1","set2","idx","len1","len2","result","_arity","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_curryN","length","received","combined","argsIdx","left","combinedIdx","require$$2","require$$3","curryN","_isArray","val","_isTransformer","obj","_dispatchable","methodNames","xf","args","transducer","_xfBase","_map","functor","len","_isString","x","_isArrayLike","XWrap","acc","_xwrap","bind","thisObj","_arrayReduce","list","_iterableReduce","iter","step","_methodReduce","methodName","symIterator","_reduce","XMap","input","_xmap","_has","prop","toString","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","contains","item","keys","nIdx","ks","checkArgsLength","require$$4","require$$5","require$$6","map","key","ap","applyF","applyX","isNil","liftN","arity","lifted","lift","not","f3","_c","pairs","pair","T","E","A","L","g","exports","TYPE","isLiteralElement","el","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","isNumberSkeleton","isDateTimeSkeleton","createLiteralElement","value","createNumberElement","style","__extends","this","extendStatics","__","__assign","types_1","_super","SyntaxError","message","expected","found","location","_this","hex","ch","literalEscape","classEscape","describeExpectation","expectation","escapedParts","part","describeExpected","expected1","descriptions","j","describeFound","found1","options","peg$FAILED","peg$startRuleFunctions","peg$parsestart","peg$startRuleFunction","peg$c0","parts","peg$c1","messageText","insertLocation","peg$c2","peg$c3","peg$literalExpectation","peg$c4","peg$c5","peg$otherExpectation","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$classExpectation","peg$c14","peg$anyExpectation","peg$c15","peg$c16","peg$c17","peg$c18","option","peg$c19","peg$c20","stem","peg$c21","tokens","peg$c22","peg$c23","peg$c24","skeleton","peg$c25","messageCtx","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","type","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","pattern","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","pluralType","offset","all","id","optionLocation","error","text","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","peg$c65","peg$c66","peg$c67","peg$c68","peg$c69","peg$c70","peg$c71","peg$c72","negative","num","peg$c74","peg$c75","peg$c76","peg$c77","peg$c78","escapedChar","quotedChars","peg$c79","isInPluralOption","isNestedMessageText","peg$c80","peg$c81","peg$c82","peg$c83","peg$c84","peg$c85","peg$c86","peg$c87","peg$c88","peg$c89","peg$c90","peg$c91","peg$c92","digits","peg$c93","peg$currPos","peg$savedPos","peg$posDetailsCache","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","peg$result","peg$computeLocation","location1","peg$buildSimpleError","text1","ignoreCase","inverted","peg$endExpectation","description","peg$computePosDetails","pos","details","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$buildStructuredError","s0","peg$parsemessage","s1","peg$parsemessageElement","peg$parseliteralElement","peg$parseargumentElement","peg$parsesimpleFormatElement","peg$parsepluralElement","peg$parseselectElement","peg$parsepoundElement","peg$parsemessageText","s2","peg$parsedoubleApostrophes","peg$parsequotedString","peg$parseunquotedString","s3","s4","s5","peg$parse_","peg$parseargNameOrNumber","peg$parsenumberSkeletonId","peg$parsewhiteSpace","peg$parsenumberSkeletonTokenOption","peg$parsenumberSkeletonToken","peg$parsenumberSkeleton","peg$parsenumberArgStyle","peg$parsenumberFormatElement","s6","s7","s8","s9","s10","s11","s12","peg$parsedateTimeSkeletonLiteral","peg$parsedateTimeSkeletonPattern","peg$parsedateTimeSkeleton","peg$parsedateOrTimeArgStyle","peg$parsedateOrTimeFormatElement","s13","s14","s15","peg$parsenumber","peg$parsepluralOption","peg$parseselectOption","peg$parsepluralRuleSelectValue","peg$parseargName","peg$parsepatternSyntax","peg$parseargNumber","peg$parseescapedChar","__spreadArrays","il","k","jl","els","opt","matchingLiteralElIndex","literalEl","el_1","newValue","newEls","match","unit","str","_","g1","g2","signOpts","_i","tokens_1","token","__export","m","parser_1","normalize_1","parse","opts","inputs","FormatConstructor","cache","cacheId","format","intl_messageformat_parser_1","FormatError","msg","variableId","lastPart","locales","formatters","formats","values","currentPluralValue","originalMessage","els_1","varName","rule","objectParts","tagName","outerHTML","textContent","childNodes","isVoidElement","formatFnOrValue","chunks","child","formattedMessage","content","tagsToFormat","caseSensitiveTags","c1","c2","defaultConfig","configs","IntlMessageFormat","overrideFormats","core_1","assocPath","path","nextObj","arr","getter","setter","toFunctorFn","target","focus","pathsArray","paths","pathAr","lens","mergeDeepWithKey","lObj","rObj","lVal","rVal","pluginId","translations","localizer","localizerFactory","getLanguage","setLocales","variables","getLocales","language","titleText","property","pluginInfo","regionManager","regionName","view","viewId","region","title","titleView","broker","to","from","pack","ar","OrderMappings","mapping","NotificationMappings","handlerName","mediatorSettings","notification","handlers","all_1","handler","items","BehaviorMappings","behaviors","all_2","Dispatcher","HandlerInstance","name","Resolver","handlerFx","fx","MediatrSettings","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","rejected","body","verb","v","op","Mediator","request","currentBehaviorIndex","next","behaviorClass","behavior","events","payload","eventPayload","event","eventType","requestType","eventName","eventConstructor","requestName","requestConstructor","clazz","classPrefix","className","url","data","decorators","desc","oldValue","surname","imageUrl","size","cssClass","changedProperties","initials","$","C","V","w","N","H","z","R","Z","M","I","argument","argStr","date","_date","month","interval","startDate","endDate","reversed","endTime","currentDate","dates","selectedDate","minDate","maxDate","showTime","showButtons","leftLabel","rightLabel","days","daysOfMonth","firstDayOfMonth","day","_today","onCancel","_d","_e","_day","_month","_hours","_mins","onDateChange","dateLength","selectedTime","selectedMonth","year","yearsRange","moveFocusToOption","currentOption","moveFocusToPreviousOption","index","availableOptions","lastIndex","availableOption","moveFocusToNextOption","onKeyDown","tgt","keyboardEvent","flag","yearElement","tabIndexOption","currentYear","yearOptionClass","classMap","monthElement","currentMonth","monthOptionClass","placeHolder","required","disabled","readonly","invalid","currentValue","_f","stringDate","hours","mins","formattedDate","_year","_hour","_min","containerClass","ifDefined","mutationList","mutation","inputPlaceholder","validity","relatedTarget","inputGroupClass","helpClass","calendarClass","clearable","showError","maxLength","minLength","max","min","pageSize","currentIndex","firstPageIndex","leftSiblingIndex","rightSiblingIndex","shouldShowLeftDots","shouldShowRightDots","firstPage","lastPage","DOTS","leftRange","rightRange","middleRange","startIndex","endIndex","pageIndex","orient","orientClass","tempValue","newPosition","onDssSliderValueChange","checked","switchCssClassmap","booleanType","multiple","tick","deselectable","elements","element","filtre","labelSelectAll","labelDeselectAll","selectAll","elementsSelected","sel","checkedValues","detail","parentForm","selectedValues","elementValues","selected","divClasses","inputClasses","tickVisibility","htmlTick","clickEvent","keyEvent","prev","start","end","abans","sub","despres","lis","lis2","pageSizeOptions","rowsPerPageText","resultsText","_lastCount","_select","previousFirstItem","reload","textarea","_g","openWithSearch","boxStyle","inputStyle","filtro","elemento","dropdown","firstTime","matchingObjects","objeto","matchingValues","selectorContainerClass","tab","firstDefined","selectedPanel","panel","panelId","currentTab","state","inputValue","limit","separator","output","hour","minutes","predefinedHour","hourStr","minStr","customOptions","isFirstOption","isCustomList","onClickOption","clicked","optionInput","stateClass","radioInput","inputName","optionParent","minuteOption","selectButton","checkedOptions","checkedOption","inputText","foundMatch","optionValue","minutesText","dropdownClass","status","maxlength","placeholder","filter","inputReadOnly","dssSelector","dssButtonArrow","badgeClassMap","currentSearch","chipsCounter","term","termClicked","chipClass","isFirstItem","currentItem","availableItems","availableItem","itemElement","tabIndexItem","itemClass","itemHtml","searchBarClass","splitButtonClassMap","innerButtonClassMap","checkbox","accordionClassMap","root","currentTarget","selector","availableTargets","currentTabIndex","filters","icons","tableHeight","collapsedHeight","tableKeys","disabledIndex","deletedIndex","lastSort","valueA","valueB","tableHeaderCheckbox","tableHeaderRadio","tableHeaderButtons","tableHeaderActions","isFirstTh","tableHeaderData","onClick","headerTitle","columnType","tableThClassMap","tableHeaderColumnClassMap","dssTh","row","action","deleted","checkboxTd","radioTd","cell","tableBodyData","isFirstRow","isRowChecked","isRowDeleted","isRowDisabled","onFocusOut","nextFocus","onRowKeyDown","targetElement","tableBodyCheckbox","tableBodyRadio","tableBodyButtons","tableBodyActions","tableBodyColumns","tableColumnClassMap","tableRow","tableBody","onReviewChange","itemKey","filterChips","count","selectedRows","removeCheckedRow","tableClassMap","tableBodyClassMap","currentStep","column","circular","hideLabel","stepsLength","stepper","rect","segment","stepNumber","totalSteps","percent","stepperClass","bubbleClass","position","align","tooltipClassMap","iconClassMap","tileClassMap","tile","dialog","dialogClassMap","stateClassMap","styleElement","api","setLanguage","factory","shell","mainItem","menuItem","plugins","pluginBootstrapper","repeat","breadcumb"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GCAf,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","x_google_ignoreList":[1,2,3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,98,99,100,101,102,103,104,105,109,110,111,112,115,116,117,118,119,120,121,122,126,171,172,173,174]}